Jump to content
Arthur Cypriano

Duvida OllyDbg

Recommended Posts

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! 

OllyDbg_Duvida.png

Share this post


Link to post
Share on other sites
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.

refsto.png.584f26cbfdc8e1c5c772f08a5d03d3b9.png

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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...