So You Want To Be a Hacker? Part I: Abilities and Responsibilities
“I want to translate games, but I don’t know any Japanese.” If I had a byte for every time I’ve heard that, I could replace my hard drive…
Fortunately, there is another path than that of the translator — a skill-set completely different from juggling kanji and wondering where all the pronouns went. And yet, the job is equally valuable, for how can a translator translate without the script that you provide, and how can a graphic-editor edit without the images that you extract, and how can a player play without the very game that you put back together for him?
So, the question becomes, do you want to be a hacker?
Or, perhaps more to the point, do you have what it takes? The hacker (or programmer, or technical lead, or whatever) has some critical responsibilities early in the process. The first priority is to figure out a way to extract game data, specifically the script and graphics, so that the rest of the team can start work. Secondly, he must figure out a way to put the modified data back in to the game in a way which won’t cause errors. And lastly, and most annoyingly, he must often figure out a way to hack the game itself to allow proper use of the modified resources (such as, for instance, changing the game’s text engine to use half-width English characters or to enable the word-wrapping that isn’t needed in Japanese).
The extraction is sometimes easy because some other hacker may have already written a tool to pull out images from the game, in the relentless pursuit of H CGs. Reinsertion tools are far rarer, and you’ll almost always have to write your own unless your game is using an engine that other translation teams have already worked with. And before you hand that script to the translator, you need to be thinking ahead to what you will get back from him… will you be able to automatically reinsert it, or will you have to cut-and-paste each. and. every. line. yourself?
I should say, to be explicit about it, that I won’t be discussing techniques for cracking copy-protection on games merely to pirate them. Here the hacking I mean is purely for the purposes of translation of freely-distributed games, or of English patch creation for people who have already purchased the full Japanese edition.
So what do you need to know already? If you’re even considering this, I hope you know how to program, because that I can’t teach you. On the plus side, you often will not need much programming… just the basic tools are enough, and the lower-level the better: you won’t need to know how to make even a radio-button control in Windows, but you will need to know big- from little-endian integers. That, on the other hand, I can teach you.
So, think about all the languages you know. Toss out any which don’t give you easy access to things like reading and writing files into raw byte arrays. Stick with what you’re comfortable with, or maybe decide to try out something a little bit new. Personally, I mainly work in just straight C, but if I had to do it all over again, I would have given a closer look to, say, Python. Java, C++, or anything like that is also fine and common. If your favorite language is Visual Basic… well, I think it’s time you branched out a bit.
Beyond anything else, though, you will need a sense of problem-solving. The tasks you will undertake are puzzles, and they haven’t been purposefully designed by your CS professor to be easily done in one page of code or less using exactly the techniques you learned this week. On the contrary, you’re in a battle with the original Japanese programmers, who probably don’t care at all whether their data formats are reverse-engineerable — and if they do care, they’ve probably purposefully encrypted them to make your job all the harder!
So, roll up your sleeves, fire up your compiler, and put on your thinking cap. Through this series, we’ll go through the process of attacking some sample games, and hopefully you can see if the hacker role is for you… and pick up some tricks of the trade as well!
Yaaay~ I’ve only ever done the most basic of extractors and hacked on other people’s code — a tutorial series like this is most appreciated~
C? Python? JAVA?! Any fule kno that the only programming language for discriminating hackers is OCaml!
(He said, hastily hiding his C++ compiler behind his back.)
Yes! I get to learn more about hacking! We need more stuff like this.
Of course I’d like some tips about this! I’m a computer science student, and I have always wanted to help a visual novel translation project by programming!
So I’ll be eagerly waiting for this postings.
thanks
i want to becom a heacker for any other than u help me show me how to become a hacker sepcialy banking hackers
hey idont know how become a heacker can u help me i am wating for u r answer plz tell me how to become a hecker plz e mail me
Can u guys make a faq for newbies how to do hack with actual sample game!
how to become a hacker
i want to become hacker .and hack board site
pls show me how to become a hacker
what u want i can help u becaue i know how to hack
Sheesh, how can you guys be hackers if you can’t even spell properly.
And Edward, I’ll be keeping my eyes on you… Especially when you click the “I Agree” button on my future games. ☻
please i wantto learn how to become a hacker
How do i become a proper hacker…