Debugging Ollydbg,F7,正在等待对话框中的用户输入?

Debugging Ollydbg,F7,正在等待对话框中的用户输入?,debugging,reverse-engineering,ollydbg,Debugging,Reverse Engineering,Ollydbg,我是逆向工程新手, 当我用F7在ollydbg中插入代码时,直到出现一个等待用户输入的对话框,我如何处理用户输入以正确编程?ollydbg 1.10用于演示2.01具有类似的功能 我假设您的查询意味着一旦提供了输入并进一步处理 通过点击一个按钮等,我们如何回到用户模式代码 假设您使用的是一个简单应用程序,它不会主动阻止任何人进行调试 pasuingollydbg中的应用程序和查看调用堆栈应该足够了 按f12(此处假定为单线程程序,或者您需要选择正确的线程) 暂停调试对象 按ctrl+k查看调用堆

我是逆向工程新手,
当我用F7在ollydbg中插入代码时,直到出现一个等待用户输入的对话框,我如何处理用户输入以正确编程?

ollydbg 1.10
用于演示
2.01
具有类似的功能

我假设您的查询意味着一旦提供了输入并进一步处理
通过点击一个按钮等,我们如何回到用户模式代码

假设您使用的是一个
简单应用程序
,它不会主动阻止任何人进行调试
pasuing
ollydbg中的应用程序和查看调用堆栈
应该足够了

按f12
(此处假定为单线程程序,或者您需要选择正确的线程)

暂停调试对象

按ctrl+k
查看调用堆栈

ollydbg将在上下文菜单(右键单击)中同时显示被调用方和调用方,并具有多个选项,包括执行直到返回到特定调用

选择用户代码跟随中的任何一个调用
,然后设置断点或

use execute till retn

snap中显示的调用堆栈代码如下MessageBox正在等待用户输入(用于按ok)

要查看与图像类似的cal lstack

matryoshka:\>dir /b     matryoshka.cpp
matryoshka:\>type matryoshka.cpp

#include <windows.h>
#pragma comment(lib, "user32.lib")
void funcg (void) {
    MessageBoxA(NULL,"Matryoshka Doll\n","Matryoshka Doll",MB_OK);    
}
void funcf (void) {
    funcg();
}
void funce (void) {
    funcf();
}
void funcd (void) {
    funce();
}
void funcc (void) {
    funcd();
}
void funcb (void) {
    funcc();
}
void funca (void) {
    funcb();
}
void main (void) {
    funca();
}
matryoshka:\>cl /Zi /analyze /W4 /nologo matryoshka.cpp /link /RELEASE
matryoshka:\>dir /b *.exe
matryoshka.exe

matryoshka:\>OLLYDBG.EXE matryoshka.exe
matryoshka:\>dir/b matryoshka.cpp
matryoshka:\>类型matryoshka.cpp
#包括
#pragma注释(lib,“user32.lib”)
无效函数(无效){
MessageBoxA(空,“Matryoshka娃娃”\n,“Matryoshka娃娃”,MB_OK);
}
无效函数(无效){
funcg();
}
无效函数(无效){
funcf();
}
void funcd(void){
funce();
}
无效函数(无效){
funcd();
}
无效函数B(无效){
func();
}
void funca(void){
funcb();
}
真空总管(真空){
funca();
}
matryoshka:\>cl/Zi/analyze/W4/nologo matryoshka.cpp/link/RELEASE
matryoshka:\>dir/b*.exe
matryoshka.exe
matryoshka:\>OLLYDBG.EXE matryoshka.EXE

是否要管理按钮单击?
matryoshka:\>dir /b     matryoshka.cpp
matryoshka:\>type matryoshka.cpp

#include <windows.h>
#pragma comment(lib, "user32.lib")
void funcg (void) {
    MessageBoxA(NULL,"Matryoshka Doll\n","Matryoshka Doll",MB_OK);    
}
void funcf (void) {
    funcg();
}
void funce (void) {
    funcf();
}
void funcd (void) {
    funce();
}
void funcc (void) {
    funcd();
}
void funcb (void) {
    funcc();
}
void funca (void) {
    funcb();
}
void main (void) {
    funca();
}
matryoshka:\>cl /Zi /analyze /W4 /nologo matryoshka.cpp /link /RELEASE
matryoshka:\>dir /b *.exe
matryoshka.exe

matryoshka:\>OLLYDBG.EXE matryoshka.exe