【问题标题】:Ollydbg, F7, waitting for user input from dialog?Ollydbg,F7,等待来自对话框的用户输入?
【发布时间】:2014-06-19 23:45:10
【问题描述】:

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

【问题讨论】:

  • 你想管理按钮点击吗?

标签: debugging reverse-engineering ollydbg


【解决方案1】:

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

我假设您的查询意味着一旦提供输入并进一步处理
通过单击按钮等如何重新进入用户模式代码

假设您正在使用不会主动阻止任何人调试的simple application
pasuing ollydbg 和viewing call stack 中的应用程序就足够了

press f12(这里假设是单线程程序或者你需要选择正确的线程)

暂停被调试者

press ctrl+k查看调用堆栈

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

select any one of the call 在用户代码中跟随并设置断点或

use execute till retn

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

before pressing ok pause (f12)  and view call stack (ctrl+k)

查看类似于图片的call 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    相关资源
    最近更新 更多