Aos novatos no universo das novels

Oss, pessoal… estou instalado meu próximo jogo alvo de hacking e enquanto isso decidi escrever um post….
Bem, eu andei navegando nos sites das outras sub e reparei que o pessoal ainda diz “não achei a tradução de jogo X” ou seja, pra mim ele nem deve saber da ferramenta muito usada vndb.org que como as iniciais dizem (Visual Novel DataBase ou “Banco de dados de visual novels”) esse site visa unir informações de traduções, lançamentos, patches oficiais ou de fãns, versões alternativas dos jogos e entre outros, é bem similar também ao MyAnimeList, porem ele exibe as “fansubs” dos jogos, la você pode saber quais jogos tem tradução e quais não tem…
E algo mais do que merecedor de citar, minha VN favorita recebeu um patch esses dias pela Meow Works, O Rewrite atualmente tem um patch com a rota da Chihaya (que terminei de ler hoje), Lucia e Kotori em português, e é claro, a commom route completa também, bem, vocês podem encontrar o link da Meow Works na lista de parceiros na home do nosso site.
Bem, estou também é claro ansioso para ver Clannad (Extreme VNs) e Little Busters (Zero Force) traduzidos, creio que lerei ambos assim que lançarem…
Alguns deve tar se perguntando, “mas como assim Rewrite é seu jogo favorito seu safado, se ta traduzindo katawa não é?”, bem eu não to traduzindo katawa kkkk, eu to administrando o projeto, nem inglês eu sei… mas é verdade, esse grupo existe atualmente graças a 1 pessoa, é claro, não estaríamos aqui graças a varias pessoas… mas se puder dizer quem é responsável por hoje existir nosso projeto de tradução, não é ninguem mais, ninguém menos que o meu grande amigo Sidney…. O Meu grande amigo sidney que pagou minha conta de internet quando não consegui pagar kkkkkk, o meu grande amigo sidney que divide seus jogos na steam comigo (apesar deu ser um hater da steam em geral), o Sidney é administrador de um grupo B**T-Chan & Visual Novel BR, ambos do facebook… bem, ele é certamente um grande amigo meu, pra ser sincero…. eu corri atrás nesse momento de um print de quando tudo aconteceu… essa foi a nossa primeira conversa:

Com isso, ele deu a ideia de abrir o site, juntar alguns membros e então tudo começou, eu na época tava na mão a sós, então se não fosse isso, já teria dropado a anos, nem ato 1 deveria ter…
Bem, voltando ao tema do título do post…
Reparei no site da zero force nos comments antigos de muito nego pedir jogos que por sua vez são para consoles, geralmente PSP…
Vou lhes dizerem o motivo de PSP não ser uma boa plataforma pra isso… Creio que muitos curiosos ja abriram programas ou seus arquivos no notepad e viram monte de merda random no bloco de notas, e mesmo se não alterasse nada, quando salvar, ele simplesmente…. corrompia… Esses arquivos nós o chamamos de Binários (sim vou começar do zero)… Vocês já ouviram falar que o computador pensa em zero e um?, isso pode parecer meio doido para alguns (coisa de filme talvez) mas sim, o computador/smartphone ou seja la o dispositivo que tu esteja usando nesse momento, ele processa somente 0 e 1…. bem, isso se chama Binário, esses monte de 0 e 1 podem ser representado em um unico “byte” que é o 0 e 1 porem convertido para “Hexadecimal” que diferente do número humano, a contagem não acaba no 9, e sim no F…
wtf? como assim?, então deixe-me explicar:
Numero humano: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9…. fim nosso numero é de 0 a 9, depois disso acontecem um loop na nossa contagem e vamos pro 10, 11, 12, 13…. bem, não é como se vocês não soubessem kkkkk
a diferença na hexadecimal é essa, o numero não acaba no 9… então onde ele acaba? obviamente não poderia por outros números nossos, se não não faria sentido… então é assim
Hexadecimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F…. e acabou… depois disso começa um loop e voltamos do inicio ficando 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21….
então, esses 0 e 1 podem ser calculados e transformados nas Hexadecimais, que geralmente citamos com um prefixo de “0x” para sabermos que é uma hexadecimal… pois se eu dizer do nada 12…. quem sabe se é um 12 ou uma hexa 12…. então botamos sempre 0x12 por exemplo, assim sabemos que é uma hexadecimal.
Bem, Independe disso, os arquivos de imagens, textos, e sons, tudo podem ser representado nessas hexadecimais, e no PSP, existe uma proteção chata pra kct chamada LBA (Logical Block Addressing), ou seja, tem um certo canto do jogo escondido onde fica uma lista de números, representando o tamanho do arquivo, a posição onde ela está escrita fisicamente no UMD ou ISO, e se alguns desses valores não baterem com os arquivos de fato, significa que ouve alguma modificação, automaticamente o PSP se recusa de ler o jogo, impossibilitando então modificações…. E por essas e outras PSP não é uma boa plataforma para tradução… claro, impossível não é, mas é chato, então poucos se dão o trabalho…
No caso de jogos de pc temos muitos mais recursos disponíveis para editar os jogos, e também se não tiver podemos fazer nós mesmos… o jeito de hacking mais “simples” que infelizmente não da pra fazer com todos os jogos é o “Brute Force” o Brute force no hacking é o método/habilidade, seja la do que você preferir chamar, de hackear/modificar um binário sem ter a source do programa/jogo ou então depurar ele em nível de Assembler…
No caso o nosso “brute force” não é o que alguns que tentam extrair arquivos do winrar sem saber a senha pensam kkkk, o “Brute Force” aqui é você tentar entender o formato do arquivo só de observar as hexadecimais dele… sim, encontrar no meio de monte de numero e letras um sentido, e então criar um programa para reconhecer essa lógica…
vou citar um exemplo, o SCN da KiriKiri (source do programa disponível no meu Github)
O Script de nekopara por exemplo então…


Aqui podemos ver as hexa decimais no centro, do lado direito monte de merda e misturado com um pouco de texto em inglês…. e do lado esquerdo uns números em hexa…
Esses numeros a esquerda é a posição da linha, Central sãos os valores do binário, e a Direita a representação desses valores em ACSII (uma tabela de caractere, meio que uma ordem dessas Hexadecimal representarem alguma letra…), Então podemos saber que você pode ver vários “pontos” no meio desse texto, e reparamos que esses pontos na verdade são valores nullos 0x00, que nem pode ver no centro destacado… Então, o que estou entendo ai, os textos estão tudo ai, porem separados por 0x00, o 0x00 representa o fim de um texto, sim, não teve motivos para eu denominar isso, eu simplesmente vi e percebi, esse é o famoso “Brute Force” do R. Hacking, Bem podemos reparar que o texto começa na linha 2DDD0, sendo sua posição exata: 2DDD8 (basta contar quantos byte ten antes da posição que eu queria citar… então temos o valor 0x2DDD8… o que posso fazer com isso? bem, eu não posso simplesmente reescrever os scripts pois nos arquivos temos alguns valores chamados “Offsets” que são valores que geralmente indicam a posição de Algo no script…. pra que isso?, pelo simples fato de deixar o processamento do jogo mais acelerado, e fácil. então geralmente offsets tem o tamanho de 4 bytes, e são invertidas de trás pra frente na maioria dos jogos… logo 0x02DDD8 (botei um 0 na frete para ficar par) fica 0xD8 0xDD 0x02  (eu separei também)… agora sabendo que offsets tem geralmente 4 bytes vamos arredondar para 0xD8 0xDD 0x02 0x00 (agora temos 4 bytes) e dar um CTRL + F nessa hexa decimal? e então voalá, não aconteceu porra nenhuma kkkk, então vamos tentar naquele zero antes do texto? ou seja, vamos subtrair 1 na nossa offset 0x02DDD7 agora… ficando 0xD7 0xDD 0x02 e arredondando pra 4 bytes fica 0xD7 0xDD 0x02 0x00 agora vamos dar CTRL + F e então pesquisar por essa hexa.. e voalá 1 resultado na mosca

O Programa destacou automaticamente a parte pedida para nós, então agora eu sei que na posição 0x14 fica escrito a offset de onde o texto começa…. bem, não to afim de ficar explicando o formato do script então é isso, hacking não é nenhuma magia negra, tem toda uma lógica na qual temos que trabalhar e levamos um bom tempo para conseguir, sem nem saber se vamos ter sucesso no fim de tudo… então não é muito legal da parte de vocês forçarem a barra das subs, vocês não fazem noção de quão difícil isso é… ainda mais quando um jogo usa criptografia….
Mas Então é isso, acabou de instalar o joginho aki~~ vou meter o pé…
EDIT: Meu pc não aguentou a novel…. então, HACKING FAIL