如何在OllyDBG中自动执行任务?我想创建一个脚本。
我bp
在某个地址上并转到它的堆栈参数。有四个堆栈参数。我使用第二个参数的地址和第四个参数的大小,并将HEX数据转储到日志文件中。
例如:
我在512A12
处设置断点,我在堆栈中看到以下内容:
00192003 005DB123 RETURN to program.005DB123 from program.00512A12
00192011 0018F058 - 1st argument
00192028 03F48D78 - 2nd argument
00192032 03F48D78 - 3rd argument
00192036 00000500 - 4th argument
所以我从00192028 03F48D78 - 2nd argument
开始的地址转储数据,其中03F48D78
是从中开始转储的地址。
我使用第4个参数00192036 00000500 - 4th argument
的大小,其中500
是要转储的数据的大小。
数据保存在日志文件中。它是OllyDBG中转储部分的十六进制数据。
现在我想循环这个功能并自动化它。如何在Ollyscript或其他方面完成自动化?
答案 0 :(得分:2)
Afaik现有的插件都没有提供windbg的.writemem功能 上面下载的是一个从anonymouse(openrce blog)增强的ollydbg插件 使用添加的命令修改cmdline插件.writemem
下载并将dll放在ollydbg 1.10 plugin path
。
修复了可能的崩溃路径(FindModule - >如果FindModule在这种情况下返回null,则mod-name可以为null,将“unknown_module”字符串添加为sprintf_s的模块名称)
http://wikisend.com/download/750442/cmdline.dll
此插件为enhanced version of modified cmdline plugin for ollydbg 1.10 by anonymouse (openrce blog)
,并包含一个额外的命令.writemem
原始源代码的增强功能发生了很大变化,以便使用visual studio 2010 express进行编译(旧的命令未经过测试)
添加了一个额外的命令.writemem(similar to windbg's .writemem
)
usage as follows alt+f1 or plugin -> cmdline plugin
。
在对话框中输入
writemem [esp+0x4] dword [esp+0x10] c:\dumps
或可能是
writemem 0x403085 0x45 f:\foo\blah
第一个命令会将[esp + 0x10]指向的0xxxx字节从[esp + 0x4]指向的地址转储到预先存在的文件夹c:\ dumps
第二个命令会将0x40字节从0x402085转储到指定的文件夹
使用条件日志断点pass commands to plugin when paused functionality (shift+f4)
.writemem <address> <size> <folder path>
.run
当遇到断点时,将转储内存内容
另一个快照来解释下面的更好的词
答案 1 :(得分:0)
本教程可能有所帮助: http://x9090.blogspot.com/2009/07/ollyscript-tutorial-unpack-upx.html
此外,您可以仔细阅读一些脚本以了解有关Olly脚本的更多信息。
答案 2 :(得分:0)
我最终完成任务所需的实际功能如下。
它的加密/解密功能
0x1 PUSH EBP - 加载加密数据。
0x5 RETN - 数据被解密
因此,如前所述,加密/解密数据被加载到堆栈值中。
1 - 当bp达到0x1 PUSH EBP
时2 - 我们转到堆栈值
3 - 我们遵循第二个参数作为加密数据块的起始地址和第四个参数来表示数据大小。
4-我们使用来自cmdline mod的wrtiemem转储
我们也对解密数据采用相同的方法
1 - 当bp达到0x5 RETN
时2 - 我们转到堆栈值
3 - 我们遵循第二个参数作为解密数据块的起始地址和第四个参数来表示数据大小。
4-我们使用cmdline mod中的wrtiemem转储。
我想知道数据是否可以保存在一个名为encdec.txt
的文本文件中加密的十六进制值 解密的十六进制值。
例如:
ENC - 88 F4 62 71 3D 25 CD 7C 72 76 8E 14 95 0B D1 8B DEC - 3E 2E BA 24 FA 22 47 A0 00 0F A5 0E F7 B0 9C 32
如果完成上述操作,那么我需要自动执行HEX搜索并替换目标加密文件上的encdec.txt中的值。
因此自动化将检查线路&#34; ENC - 88 F4 62 71 3D 25 CD 7C 72 76 8E 14 95 0B D1 8B&#34;并在目标文件中搜索它,并用&#34; DEC - 3E 2E BA 24 FA 22 47 A0 00 0F A5 0E F7 B0 9C 32&#34;
中的十六进制值替换值