新版本 V0.25
RORDbg V0.25
这是一个用虚拟机技术实现的简易Debugger,主要用于外壳分析和脱壳,目前只能跑exe文件的主线程,可以跑DLL的入口程序。
这个工具仅仅可以作为分析外壳辅助手段,因为是虚拟执行每条指令,所以,速度很慢。
更新日志:
V0.25
增加了对DLL文件调试的支持,借用了ollydbg的一个loaddll.exe文件,表示感谢!
(DLL文件暂时不能makepe)
V0.24
修正了scans指令会被误判为异常的问题
修正了jmp XXXXXXXX (E9 XXXXXXXX)指令当跳转到API入口时,会出现崩溃的问题
V0.23
修正了几个BUG
V0.22
LOG中增加了指令记数提示,方便下次运行设置BPC断点
检测非常规API调用更加准确
设置了两种运行方式,能跑的程序会更多一些
makepe命令中对被抽掉的IAT表中的API做探测(还不成熟)
V0.21
换了一个程序图标
修正了界面中搜索有时出错的问题
修正了push ax,pushfw,pop ax等指令出错的问题
修正了某些机器上遇到jnz xx等类似指令出错的问题
修正了makepe命令中的一个问题,成功率提高
增加了一个API地址检测的数值选项。
V0.20
修正了MAKEPE时偶尔会死掉的BUG
增加了对VB程序脱壳的支持
V0.19
修正了MAKEPE中的一个错误
增加了命令记录功能
增加了对SYSENTER和INT 2E指令的支持
V0.18
修正了界面的几个小问题;
修正了对PUSH AX等指令的支持;
增加了对RaiseException异常的支持;
测试了TheMida 1.1.0
V0.17
Log窗口支持鼠标选择和右键菜单复制功能;
强化了MAKEPE命令,智能修复IAT(Import REC工具不能修复的,本工具也许可以)
V0.16
解决了JMP DWORD PTR [ESP-4]指令的解析出错问题;
解决了MAKEPE中重建IAT的一个BUG;
解决了导入WINMM.DLL的PlaySound不能正确MAKEPE的问题。
增加了两个热键,F8(Step),F9(Go! or Pause)
修正了界面的一些小问题
V0.15
解决了PIII机器上(也可能是XP SP2的堆栈执行保护?)遇到条件跳出错的问题;
增加了异常种类支持;
测试了Arm、ACProtect、EXEStealth、Obsidium、hying、PESpin等几种加密壳。
测试了UPX、ASPack压缩壳。
V0.14
修正了V0.13版本的重大BUG
V0.13
增加了X命令和G命令和BL命令
增加了“在OEP处暂停”选项
修正了MAKEPE命令中的BUG
修正了其他一些BUG,兼容性更好了一些
工具包中提供一个脱壳例子文件(脱壳方法:启动RORDbg(名字为Explorer.exe),加载Sample.exe,GO!...在OEP处停止后,
用makepe命令即可,然后手工修复OEP处的前三个字节)
V0.12
支持800X600屏幕分辨率
支持双击标题栏窗口收起
支持文件拖放
修正了“不记录绝对跳转指令”选中时单步迟钝的问题
V0.11
修正了“不记录绝对跳转指令”的逻辑错误
修正了“遇到API调用暂停”条件发生后不能继续GO或者不能单步越过的问题
V0.1
可以加载并运行一个Windows的EXE文件。
支持的命令:
U --反汇编(U命令参数为16进制内存地址,不支持表达式)
D --显示内存数据(显示内容并不实时更新)
G --不带参数的G命令会继续跑被调试程序,如果带了地址参数,会跑到那里停下来
X --等同于不带参数的G命令
BL --显示所有断点信息
BP --设置断点,如:
BP 401000 ;执行到401000处停下来
BP *eip==6aec8b55 ;当EIP处的数值为0x6aec8b55时停下
BP GetWindowTextA Count==8 //第8次调用GetWindowTextA时停下
BPC --指令执行多少条后停下(窗口顶部有个计数器)
R --更改寄存器的值
MAKEPE --类似TRW2000的MAKEPE,参数为希望设置的EntryPoint的地址,保存文件名字固定为
ROR-Unpacked.exe
LOG --设定执行多少条指令后开始记录执行指令,参数为十进制数字
EXP --参数为Module名字,会把这个Module的引出函数显示出来,如:EXP Kernel32.dll
? --查询一个16进制数,如果是API地址,会显示这个API名字
BD --禁止断点(只支持参数 *)
BE --开放断点(只支持参数 *)
BC --清除断点(只支持参数 *)
界面介绍:
Log窗口:左上的那个就是
DATA窗口:Log窗口的下面那个
命令窗口:在DATA下面
寄存器窗口:右上
STACK窗口:寄存器窗口下面
1、如何启动一个待调试程序
点击“打开被分析文件”按钮,按下它选择被调试文件即可
2、“GO!”按钮是让这个程序在虚拟机下跑(不是跑飞)
3、“放开跑”按钮是放开被调试程序,让它自由跑,控制权不能再收回,
这个方法可测试虚拟机是否能够正常跑这个程序,如果程序运行正常,说明在这之前虚拟机跑的都正确!
4、“单步”仅仅是step into,没有step over,以后再加
5、“结束调试”仅仅在程序没有跑飞的时候有用。
苏州工业园区视算科技有限公司
2006-1-6
附件:rordbg.rar
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!