
Oi pessoal
Desta vez, o artigo não será técnico (embora alguns termos / momentos técnicos se encontrem nele), mas sim autobiográfico, se assim posso dizer. Este artigo é sobre como eu chegou a uma vida Vim para a engenharia reversa que li, o que me interessava, onde a usava etc. E, por algum motivo, tenho certeza de que minha história terá muitas diferenças da sua. Vamos lá ...
Iniciar
E tudo começou ainda na infância distante. Eu acho que, como muitos caras (e talvez garotas), eu sempre me interessei em saber como tudo funciona, por que funciona, por que não funciona etc.
Primeiro, comecei a desmontar todos os carros movidos a bateria que eu tinha (mesmo aqueles que meu irmão tinha). Obviamente, nem sempre foi possível coletar, mas o interesse estava acima. Então, ele encontrou um velho gravador de rádio de seu pai na despensa e também o desmontou. Havia também tamagotchi . Mas não consegui entender nada: microcircuito, queda e tela. Embora sim, coloquei a tela em camadas.
Claro, por tudo que não foi coletado, recebi um chapéu.
Sega mega drive

Meu pai comprou no meu aniversário: um pirata comum, porque não havia licença na época, além do cartucho Contra: Hard Corps
. Tenho certeza de que o tempo de compra do decodificador para muitas crianças dos anos 90 não foi esquecido até agora (romhackers e retro-gamers - olá!) E foi para mim que também se tornou uma chave no futuro. Mas as primeiras coisas primeiro.
O tempo passou, eu cresci. A escola sempre se interessou por ciência da computação e física (também química). Assembler lá, é claro, não foi ensinado, mas a programação no ambiente algorítmico do
(um desenvolvimento bielorrusso para escolas) é muito equilibrada. E, foi um choque para mim quando fui à Olimpíada regional em ciência da computação, e todos, exceto eu, tinham janelas azuis Turbo Pascal e eu - branco
. Mas, então, tomei um terceiro lugar honroso.
11ª série

( nota do autor: o mesmo computador, apenas muito mais tarde)
No outono de 2005, comprei um computador. Desde os primeiros dias, comecei a jogar. Estudar na escola afundou, mas manteve-se em um nível normal para o ginásio. E depois de seis meses, estou cansado de jogar. Então o ponto de virada aconteceu!
Nonheimer
Foi então, em 2006, como me parece, o boom do warez começou. Um monte de sites com rachaduras, keygens, patches. Todos tentaram reembalar o instalador dessa maneira (olá para as compilações do Windows) para que o downloader não precisasse fazer nada extra: ele estava instalado e funcionando, embora às vezes adicionasse algo dele.
E eu era assim. É verdade que ele não NFO
" tablets ", apenas os encontrou, desenhou uma caixa de NFO
, NFO
o instalador (na maioria das vezes era o Inno Setup
) e então você sabe.

Tradutor

Então, por algum motivo, eu não gostei que nem todos os programas foram traduzidos para o russo, e eu queria corrigi-lo. Fiz upload de vários editores de recursos, como o Resource Hacker
, comecei a abrir todos os arquivos exe
e dll
dos programas que encontrei nos Program Files
e verifiquei quais recursos de string podem ser traduzidos. .lng
-o, empacotei-o no arquivo .RUS
ou .RUS
do instalador e .RUS
-o (não sabia como esses arquivos rus funcionavam). Mas isso continuou até eu encontrar arquivos compactados e protegidos.
cracklab.ru
Agora exelab.ru
. Foi lá que eu aprendi que os arquivos executáveis são compactados (e às vezes protegidos), além de como lidar com isso. E, como os autores frequentemente mencionavam itens como " montador ", " desmontagem ", " lista de distribuição Kalashnikov " em seus artigos, tive que me aprofundar no material.
Eu baixei um par de “ crackmakes ” para experimentos (programas especialmente escritos para serem revertidos enquanto aprendemos a hackear e proteção ) Eu tentei - gostei muito! Tudo acabou na primeira vez, e fiquei incrivelmente feliz.
Como resultado, defesas simples foram removidas uma ou duas vezes com a ajuda de aplicação de patches (da palavra patch - um patch), mas com as mais difíceis (decidi experimentar damas e brindes eróticos ), de alguma forma, já ficou difícil, e eu parei, decidi voltar para traduções.

Romhacking
Às vezes, jogando na Sega , me deparei com cartuchos em russo, nas telas de títulos de jogos nos quais havia inscrições como " SHEDEVR
Translation SHEDEVR
", " NEW-GAME.RU
Translation ". Sejam desenvolvedores ou organizações de terceiros, eu não sabia, mas eles claramente tinham acesso a alguns manuscritos, textos antigos dos sumérios, que diziam como traduzir jogos para o russo. E eu queria dominar esse conhecimento.


Então eu descobri o fórum " Obra-prima ".
Eles tinham artigos, havia programas - tudo o que é necessário para tornar o seu jogo favorito também "o seu jogo favorito em russo ". É verdade que os artigos eram apenas para NES
( Nintendo Entertainment System , ou popularmente : Dandy , Suybor ). Mas ainda é legal! E mergulhei em tópicos novos e empolgantes para mim: Romhacking e emulação de consoles retrô em um PC.

Em resumo, romhacking é qualquer alteração na imagem ou no arquivo de um jogo para qualquer finalidade: tradução, correção de código, gráficos.
Foi um processo muito divertido: sente-se, redesenhe os quadrados da fonte do jogo pixel por pixel, traduza e cole o texto com o PokePerevod
tradução PokePerevod
e veja o que aconteceu. É verdade que não há montador para você, apenas hardcore! Mas essa já era a barra pela qual poucos poderiam pular (a julgar pelo número de pessoas ativas no fórum da Obra-prima).
Eu sou professora
Depois de fazer algumas traduções "para a mesa" e algumas para as pessoas, voltei aos arquivos executáveis do Windows . Um pouco mais habilidoso em montador, percebi que agora tenho muito conhecimento " secreto " e tenho algo a contar com a minha experiência, há algo a compartilhar e o que ainda não foi descrito nos artigos disponíveis. Eu queria transferir conhecimento para os mesmos iniciantes que eu era (aparentemente, isso afeta o fato de minha mãe ser professora).
Tendo tomado o primeiro programa lançado que exigia uma licença (e quase todos os artigos sobre cracking começaram dessa maneira), decidi pesquisá-lo, enquanto me dizia o que estava fazendo. Então, não parece que o programa tenha sido retirado especificamente da versão antiga, estudada há muito tempo, quebrada, mas, pelo contrário, será uma lição nova e relevante, com capturas de tela e quase nenhum endereço absoluto, de modo a manter a relevância do artigo no momento da leitura por alguém em o futuro.
Tendo recebido feedback positivo, escrevi mais e mais, percebendo que há demanda.
As ferramentas

Ao escrever cada artigo, tentei usar apenas os programas mais recentes e convenientes da época: Olly Debugger
com plug-ins, PEiD
, PE Explorer
e muitos outros. No SoftICE
, HIEW
e DEBUG.COM
, que a maioria dos autores está acostumada a usar, embora usá-los no mundo moderno tenha sido uma dor real.
No entanto, naquela época, nunca usei o IDA Pro
. Pareceu-me complicado e incompreensível, era muito difícil depurar nele, e as coisas mais simples como FS[0x30]
e LastError
, como em Olly Debugger
, eram muito difíceis de descobrir.
Os estudantes universitários ensinam ao contrário?
Em poucas palavras, na Bielorrússia é apertado e, tanto quanto eu sei, na Rússia e na Ucrânia também. Porque Sim, porque geralmente são necessários especialistas nessa profissão em uma organização e meia e, geralmente, uma pessoa e meia. Na verdade, não há tantos professores.

Sim, montador, é claro, é ensinado, mesmo em algumas faculdades. Somente um aluno, olhando para uma lista de montadores por escrito, dificilmente pode perceber que todos esses registros, operandos e códigos de operação estão de alguma forma conectados à proteção de informações, explorações, rachaduras, keygenes, patches, malware, antivírus, firmware, etc.
Por exemplo, na Bielorrússia, conheço apenas dois ou três locais onde são necessários engenheiros reversos. Na Rússia, é claro, a situação é melhor, mas também existem poucos especialistas.
Primeiro emprego
Decidi ir a uma dessas empresas para trabalhar como analista viral, percebendo que, de fato, não havia outro lugar para ir.
Você inverte o malware, cola assinaturas, estuda os princípios da operação de malware, escreve decodificadores para ransomware (se possível) e, ao longo do caminho, aprimora o kernel.
Em princípio, o trabalho não é ruim, mas só depois de um tempo percebi que não estava mais perto de observar como o malware explora quaisquer vulnerabilidades, mas de encontrá-las, ser o primeiro a fazer isso, ajudando a proteger o mundo das informações com relatórios enviados aos desenvolvedores.
Outro montador
Depois que descobri que, além do código assembler da Intel
(16, 32, 64 bits), existe outro, que a princípio parece completamente diferente daquele que você conhece. Isso aconteceu no momento em que cheguei à tradução do meu jogo favorito - " Thunder Force III
", no qual meu irmão jogou melhor que eu.

Os recursos nele foram compactados por algum empacotador desconhecido, porque Não consegui encontrar a fonte em nenhum editor de blocos ( é nesses programas que as letras dos jogos são redesenhadas com freqüência, exibidas na tela ).
Portanto, comecei a pesquisar no Google, acabei encontrando o trabalho de um francês, que acabara de descobrir o algoritmo de compressão do jogo. Entrei em contato com essa pessoa, perguntando como ele estudou o princípio do algoritmo de compressão, para o qual ele me jogou meu primeiro cartão IDB
(este é o arquivo de banco de dados IDA Pro
), no qual foram analisados muitos pontos do código do jogo, o que realmente me impressionou!
Então, mergulhei na selva do IDA Pro
e da montadora Motorola 68000
, da qual não saí (e não quero) até agora.

PS : Não traduzi o Thunder Force III
, mas escrevi um editor de níveis para ele.
Sony playstation

Sim, o próximo foi o " primeiro ferro de frisar ". Ela também tinha outro montador - MIPS
, com diferentes registros, opcodes, endereços. E nesse console ainda havia jogos com recursos colhidos que precisavam ser localizados.
O pensamento reverso e o primeiro keygen
Você sabe o que então se tornou um teste real para mim? Com apenas uma lista de códigos de montagem que descompacta algo, escreva um invólucro para ele. Aqui era necessário desenvolver o pensamento reverso, o que praticamente não era necessário durante a aplicação de “ moinhos de crack ”, e curar os programas da ganância.
Tentei ir do oposto, entendendo o que deveria estar na saída, na entrada e quais bytes de dados compactados são responsáveis pelo quê, para fazer o mesmo.
Tendo escrito muitos mais utilitários para um monte de jogos para descompactar e empacotar dados, percebi que estava pronto para escrever meu primeiro keygen, porque já aprendi a pensar pelo contrário.
Não me lembro de que tipo de programa era, mas o keygen foi um sucesso e, pelo nome de usuário, eu sempre conseguia obter o número de série correto. O que também é contado no artigo.
Artigo da Keygen
Mas escrever um artigo sobre keygen foi difícil. Mais pesado que escrever keygen. Porque é muito difícil transmitir o princípio do pensamento reverso no artigo. Como tudo o que vem com a experiência.
Equipes de cracker

No início, se você, como eu, aprendeu o inverso autodidata, você reverterá um, para si mesmo (ou para as pessoas, será assim). E combina com você. Porém, você se depara com algum tipo de lançamento da equipe do cracker (esses são os que publicam software invadido com rachaduras e keygens) e decide se juntar a eles. Lá você pode comparar seus pontos fortes com outras pessoas e, ao mesmo tempo, obter experiência com elas.
Reunidos em espírito, você escreve uma carta pedindo para participar. Eles enviam a tarefa na forma de keygenmy. Você resolve, depois do qual eles dão acesso ao time de bate-papo.
De fato, nem todos são reversores. Alguém é um artista, alguém sabe como receber software pago, alguém tem poder de computação (a capacidade de fatorar qualquer chave pública RSA-512
em dois dias, para 2013, se for necessário remover a proteção de licenciamento). Em geral, os benefícios são óbvios. Mas o software para o lançamento ainda é o escolhido por você com mais frequência. E você não recebe dinheiro para lançamentos. A verdade é
Então qual é o lucro, você pergunta? É liberar antes de outra equipe ( FFF
, CoRE
e muitas outras). Este tópico foi muito bem revelado na série da web " Scene ".
Problemas com a lei?
Sim, para a distribuição de crack e keygen ainda há uma chance de trovão (especialmente se o programa for popular e custar muito dinheiro). A qualquer momento, uma compra de teste pode ocorrer: um tio que escreve para você para " invadir o Adobe
/ 1C
escreverá para você quanto custará " (uma história real). Mas os caras querem sobreviver, principalmente se não houver trabalho, mas você quiser usar a " habilidade ", não importa onde. E eles começam a ir ao extremo ...
... agite com software quebrado, programas de crack por dinheiro.
E, naquele momento em que há um desejo de viver honestamente, o cracker vai conseguir um emprego, seu passado está sendo desenterrado lá e - " Desculpe, mas seu passado não estava a seu favor! ". Embora, da minha posição, uma pessoa com essa experiência deva ser levada com braços e pernas, porque, em primeiro lugar, você oferece a uma pessoa a oportunidade de melhorar e, em segundo lugar, direciona seus conhecimentos na direção certa. Entre meus conhecidos, realmente existem exemplos de emprego bem-sucedido no campo de antivírus, onde um camarada da previdência social disse que quebrou os programas por encomenda.
Chave de licença obtida com honestidade
Sim, e isso acontece. Até o biscoito. Havia artigos em algum lugar sobre como pedir ao desenvolvedor uma chave. E então eu tentei fazer. Não ajudou.
Naqueles anos, eu estava apenas estudando a imprensa " cega " e procurando programas adequados para isso. Shahidzhanyan explodiu o cérebro com seu
, então comecei a procurar alternativas. Tropeçou em Typing Reflex
. Ela foi paga, mas muito boa.
Depois, traduzi o programa para bielorrusso e enviei ao autor um arquivo de idioma. Pelo qual recebi em resposta uma chave de licença em meu nome! Minha primeira chave de licença.

O que vem a seguir?
Tendo jogado o suficiente como pirata, você gradualmente chega à conclusão de que tem um emprego, o salário é estável, você está fazendo a sua coisa favorita, o que significa que é hora de amarrar as coisas ruins.
Das opções para onde ir: empresas de antivírus, segurança industrial (firmware reverso, protocolos industriais, pesquisas de vulnerabilidade), departamentos especiais de algumas grandes empresas, como a Sony
, onde você precisa pesquisar a segurança de seus próprios produtos ou tornar-se forte e um engenheiro reverso independente e ganhar dinheiro com uma recompensa, falar em conferências, etc.
Também existem engenheiros reversos que são engenheiros de hardware (aqueles que invertem o hardware), mas eu sei pouco sobre eles. Embora o tópico seja muito interessante. Estou mais do lado do software.
Nirvana
Depois de analisar várias plataformas, o código do montador ( Intel
, ARM
, PowerPC
, M68K
, 6502
, MIPS
, 65c816
, Blackfin
, IA64
e alguns outros, não me lembro), você chegou à conclusão de que o princípio para todos os montadores é quase o mesmo (bem, exceto talvez Itanium) e você começa a olhar para essas listas intermináveis de uma maneira diferente: primeiro, você encontra os comandos de salto, move
comandos, retorna da função, qual lado da source
, qual dest
e, em seguida, as circunstâncias. Então você alcança o nirvana ...