Arthur Cypriano Posted October 16, 2019 Posted October 16, 2019 Olá pessoal, tudo bem? Recentemente comecei um projeto pessoal e estou precisando estudar programação e (Acho que engenharia reversa hehe) para alteração de alguns dados... Sei bem pouco de VB e um pouco mais de C#! vi um video do Papo Binario mostrando como encontrar uma função que um programa roda pelo OllyDbg (No caso era a função puts.) nesse meu exemplo, esta é uma busca que eu fiz no Olly por "/near". /near é um comando dentro do jogo em que move o seu personagem pra onde esta o outro... Então, se eu digitar /near killer123, eu me teleporto para exatamente onde o jogador "killer123" esta. a Duvida é o seguinte: Em algum lugar, deveria ter um codigo especificando o que esse /near faz, certo? como sei la, " If (TextoDigitado.text == "/near" + " " + playername) { myPosition.pos = playername.pos }; " é possivel eu encontrar isso pelo Olly? existem muitos exemplos como esse que eu gostaria de ir mais a fundo e entender como o jogo funciona OBS: na aba "Executable Modules" eu encontei a linha C:\windows\system32\msvcrt.dll. Isso significa que o jogo foi feito em C!? Anexei uma print da minha tela pra dar uma ajuda haha desde ja, Agradeço!
Administrators Fernando Mercês Posted October 17, 2019 Administrators Posted October 17, 2019 21 hours ago, Arthur Cypriano said: Em algum lugar, deveria ter um codigo especificando o que esse /near faz, certo? Certo! E você tá bem perto, olhando este print que você mandou. No hex dump você tá vendo a string "/near", no entanto, ao tentar disassemblar os bytes dessa string, o disassembler as interpreta como instruções, que não são. Por isso essa confusão de DAS, OUTS, POPAD, JB, etc. A questão é que estes bytes pertencem à string "/near" e não podem ser interpretados como código. O que você pode fazer aí é buscar por referências ao endereço 0067DFDC, ou seja, instruções que referenciem este endereço, por exemplo, um PUSH 0067DFDC, para encontrar trechos de código que utilizem essa string para fazer algo, o que provavelmente vai ter deixar perto de onde quer. Dependendo da versão do seu Olly, isso pode mudar um pouco, mas no 2.01 é clicar com o botão direito no primeiro byte aí no dump referente à string desejada, no caso, o 2F e escolher "Find references to -> Selected block" ou pressionar Ctrl+R. O Olly vai te mostrar uma lista de endereços de instruções que referenciam este endereço de alguma forma, caso existam (há outras maneiras de referência indireta). Aí é investigá-los. Há outras maneiras também. Como o que você busca é uma referência à uma constante, pode buscar por ela (Search for -> Constant) e colocar o endereço da string (0067DFDC), selecionar "Entire block" e clicar em OK. Ou "Search for -> All constants..." para ver todos os trechos de código onde este endereço aparece. 21 hours ago, Arthur Cypriano said: na aba "Executable Modules" eu encontei a linha C:\windows\system32\msvcrt.dll. Isso significa que o jogo foi feito em C!? C/C++, sim. Não vejo muito outro motivo pra carregar a biblioteca de runtime de C/C++ da Microsoft. ? Em tempo, ótimas dúvidas. Recomendo você fazer o CERO e ler o nosso livro e acompanhar o curso de Ghidra que tá rolando também. Abraços!
Recommended Posts
Archived
This topic is now archived and is closed to further replies.