Jump to content

Debuger que mostra em tempo real a condição if, existe?


Recommended Posts

Boa noite, eu não sei nem o nome disso que eu quero mas é tipo assim, eu gostaria de saber se existe um debugger que o exato momento quando um programa pega uma informação para fazer uma comparação, por exemplo:
 

int main(){

     int idade;

     cout << "Qual a sua idade? ";
     cin >> idade;

      if(idade > 18){

           cout << "a senha é 458475847389";
           return idade;
      }
      return 0;

}

 

Aí nos compilamos, vira um exe da vida,

eu gostaria de rodar um debugger para no momento em que ele pega a minha idade e compara se é maior que 18 eu veja o código assembler exato que faz essa comparação
alguém saberia como faz isso? Os debuggers que eu vejo mostram o código todo e não o assembler exato(linha) onde é feita a comparação.

 

Link to post
Share on other sites

Olá Chacrinha,

Cara eu recomendo você testar o https://cutter.re, ele te oferece um Decompiler em tempo real baseado no Ghidra junto com um Debbuger bem bacana, porem não é mil maravilhas, o projeto ainda é bem novo, nesse quesito você vai conseguir conferir o equivalente em Assembly e Pseudo-C,  outra alternativa é usar um plugin para decompilar no seu próprio Debbuger, tem o Snowman, porem mais uma vez não é mil maravilhas, nada se compara a excelente analise do código estático, e claro aprenda Assembly o mais breve possível, e com esses plugins vai exigir uma experiência legal com C, no canal da comunidade temos excelentes vídeos sobre o assunto, espero ter ajudado, qualquer duvida manda aqui para a gente.

 


Saudações. 

Link to post
Share on other sites

Boa noite.

Então eu rodei esse programa que você sugeriu aí, com esse executavel que criei, mas nem no console que eu o chamei nem em nenhum lugar dele ele que eu consegui achar, ele mostra o assembly equivalente a entrada que o programa pede.

Eu gostaria que fosse assim: o programa acima me pergunta qual é a minha idade e fica esperando a minha entrada no teclado, nisso, o tal debuger me mostraria a saída do programa que no caso é "Qual é sua idade" e ao lado ou em outro lugar o código assembly equivalente aquela parte onde o programa parou e espera a minha interação em tempo real. O cutter me mostra várias informações mas tudo em assembly e endereçamento de memória, eu queria ver os dois em tempo real: o programa onde parou e a parte em assembly equivalente onde ele parou. Nem sei se isso é possível.

 

Obrigado.

Link to post
Share on other sites

Boa noite.

Cara se você quer ver o equivalente em Assembly, você pode usar o Visual Studio Mesmo, eu percebi que você tem o fonte, se eu interpretei corretamente você deseja analisar o Assembly do seu próprio software no qual possui o fonte e treinar com isso, veja esse recurso:

1º Passo defina onde você deseja parar e analisar o IA-32 em seu fonte, como no meu exemplo:
Capturar.thumb.PNG.107005c4d3ea09a032bf3fc141dcda66.PNG

 

2º Passo Use o atalho F9 em cima da linha que deseja analisar:

Capturar2.thumb.PNG.9d8df7af8d50c821999516077d5b7dea.PNG


3º Passo compile e inicie um Debugger com F5:
Capturar3.thumb.PNG.658d26a5a066ebe12779953d94503474.PNG

3º Passo com o seu programa pausado na instrução durante o debug, clique com o botão direito e selecione a seguinte opção:
Capturar4.thumb.png.9468ac42ed2037dea580e148898bba80.png

 

4º Passo e último Agora é só debugar e se divertir com o equivalente em Assembly e C++ igual você deseja fazer:
Capturar5.thumb.PNG.89306f76db393be3af67354cf9df79b3.PNG

Agora você pode interagir igual a um debugger normal, alterar registradores e tudo mais, para reforçar seu aprendizado leia:
https://docs.microsoft.com/pt-br/visualstudio/debugger/debugger-feature-tour?view=vs-2019

Essa é a maneira mais fácil de fazer oque você deseja, eu pontuou que se você quer fazer o mesmo, mas em um software no qual não tem o fonte, será necessário usar o x96dbg junto com o Snowman, que como te falei é o mais equivalente a isso.


Espero ter conseguido te ajudar, por favor deixe um +REP.

Saudações.

 

  • Curtir 1
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...