My Story About Programming

I would like to introduce myself; my name is Arkan, and I am a passionate programmer. When I was about 10 years old, I got an Atari with simple games like a tennis game where two bars and a dot moved from side to side. You had to hit the dot with your bar, and if you missed, the other player or the computer would win. Later, I got a computer with the “Basic” programming language, which I didn’t understand at the time. I bought a book with some programs in “Basic” that let you draw things like circles and stars using the ‘*’ character. This fascinated me, seeing how a simple program could create these images.

When I was 17 (since 1995), I got a Commodore Amiga 500 with a Motorola 68000 processor. I enjoyed its games. The shop that sold Amiga games would copy them and apply a copy protection system, which prevented me from making another copy using XCopy. This piqued my curiosity about how the protection worked.

I then got a book about assembly language for the Motorola processor used in the Amiga, but it was hard for me to understand, so I put it aside. Later, the same shop offered a course in assembly language taught by a medical student. He covered half of the book I had, and I was thrilled to finally understand how assembly language worked.

After completing the book, I noticed my teacher using ‘Amiga Monitor’ to load a game into memory without running it, then issuing a command to start it. This intrigued me, and I began learning more about ‘Amiga Monitor’. A friend gave me a list of protection systems used to prevent game copying, which I found exciting. I spent time trying to add protection to games or programs and then break it using ‘Amiga Monitor’.

Later, I acquired another book about the Amiga, which discussed interrupts, disk reader motor control, and how to encode/decode disk tracks and construct executable files in memory. With this knowledge, I started cracking protected programs, reconstructing their executable files in memory, and saving them to disk without protection.

On the Amiga, there were two data storage methods:

  1. By files
  2. By no file system (not a DOS disk), which relied on tracks, starting from the boot sector and gathering data from the disk sectors.

I wrote an assembly program that identified the type of protection and broke it if recognized.

I then bought a PC with Intel processors and learned assembly language for DOS and Windows (Win32 API). I started learning C++, including Object-Oriented Programming (OOP), polymorphism, and multiple inheritance, followed by Visual C++. I developed a CD copy protection system to protect an executable program from being copied by tools like ‘Clone CD’, hardware duplicators, or virtual CDs. The system involved placing part of the executable’s information in sector 7 on the CD, surrounded by invalid sectors, making it difficult for copying programs to read sector 7, which contained crucial data. A loader in the executable would retrieve the data from sector 7, decode the rest of the file in memory, and run it. This was in 2003, the year I stopped cracking.

I continued learning various technologies, including DirectX and ADO.Net, earning a diploma from the Game Institute (Module I) in 2007.

In 2006, I started web programming and got my first job in 2009, where I learned many new technologies.

I love programming and always will.

2 Comments

Leave a Comment

32 + = 41