Jump to content

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


chacrinha

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 comment
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 comment
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 comment
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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...