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