Arthur Cypriano Postado Outubro 16, 2019 em 05:29 Compartilhar Postado Outubro 16, 2019 em 05:29 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! Link para o comentário Compartilhar em outros sites More sharing options...
Fernando Mercês Postado Outubro 17, 2019 em 03:04 Compartilhar Postado Outubro 17, 2019 em 03:04 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! Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.