b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ollydbg_ollydbg入门教程_ollydbg破解注册码(25)

电脑杂谈  发布时间:2017-04-17 05:02:23  来源:网络整理

下一步,我们要设定栈中参数的个数。在这个例子中,不必做进行这个操作,因为OllyDbg已经知道了MessageBoxW函数的参数数量。但是,如果你愿意的话,也可以单击左边的复选框,改变成你认为合适的参数数量。

现在填写参数列表。这个对话框中支持至多10个参数. 参数可以是任何有效的表达式,而不必使用寄存器。如果操作数指向了内存,则参数右边的缓冲区窗口会显示内存中的数据。Loaddll.exe 有10个大小为1K的缓冲区,这些缓冲区被标记为Arg1 .. Arg10,,你可以方便自由的使用它们。另外,对话框还支持两个伪变量:由loaddll.exe创建的父窗口句柄<Hwnd>,以及loaddll的实例句柄<Hinst>。为了方便你的使用,在你第一次使用调用输出函数时,OllyDbg就已经将这两个伪变量加到了历史列表中去了。

MessageBoxW e函数需要4个参数:

l 父窗口句柄。 这里我们选择<Hwnd> ;handle of owner window. Here, we simply select <Hwnd>;

l 消息框标题的UNICODE文本的地址。选择Arg3并在Unicode式的内存中写上“Box title”;

l 消息框的风。使用常量MB_xxx进行组合.OllyDbg 可以识别这些常量。在这里我们键入:MB_OK—>MB_ICONEXCLAMATION。

这里不需要寄存器参数。

现在我们准备调用输出函数。选项“在调用时隐藏[Hide oncall]”意思是说,当函数运行时对话框将会从屏幕消失。当我们执行一个会运行很长时间的函数,或者设置了断点的时候,这个选项非常的有用。你也可以手动关闭对话框。当函数执行完毕后,OllyDbg会重新自动打开。“调用输出函数”对话框。选项“在调用后暂停[Pause after call]”意思是说,在执行完函数后,loaddll将会被暂停。

按“调用[Call]按钮”后,OllyDbg 会自动备份所有的内存、校验、参数、寄存器等信息。并隐藏对话框,然后调用 MessageBoxW 函数。和期望的一样,消息框在屏幕中出现了:

函数 MessageBoxW 不会修改参数。如果你调用的函数更新了内存,比如函数 GetWindowName,修改的字节将会在数据区里高亮。注意:EAX 返回为1,表示成功。

不幸的是,你不能通过这种方式调试OllyDbg的插件,插件关联到ollydbg.exe文件,Windows系统不能在同一个应用程序里加载并运行两个可执行文件。

二、解码提示[Decoding hints]

在某些情况下,分析器不能区分代码和数据。让我们看看下面的例子:

const char s[11] = "0123456789";

...for (i=0x30; i<0x3a; i) t[i—0x30]=s[i—0x30];

好的编译器将会将上面的代码优化成如下样子: e

for (i=0x30; i<0x3a; i)(t—0x30)=(s—0x30);

这里t—0x30 和 s—0x30 都是常量,并编译成如下形式:

MOV AL,[BYTE s_minus_30EBX]

MOV [BYTE t_minus_30EBX],AL

编译器也可能将常量字符串"0123456789"插入到执行代码中。在1.10版本中,我打算用寄存器的来决定是否的数据或代码。当遇到上面的命令,分析器将假定地址s_minus_30处包含字符数据。但事实上,可能那里是代码。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-25.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...