RORDbg 0.26版本 by Kernel64

RORDbg V0.26版本发布,此版本改进了界面设计,增加了数据窗口和异常处理功能,支持DLL调试及API地址检测。适用于外壳分析与脱壳。
RORDbg V0.26

这是一个用虚拟机技术实现的简易Debugger,主要用于外壳分析和脱壳,目前只能跑exe文件的主线程。
这个工具仅仅可以作为分析外壳辅助手段,因为是虚拟执行每条指令,所以,速度很慢。


更新日志:
V0.26
  界面进行了修饰,窗口可以缩放并可以最大化
  增加了DATA窗口,可以编辑内存数据,先使用D命令确定内存位置
  增加了一个异常的处理
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-5-31

http://bbs.pediy.com/attachment.php?s=&attachmentid=1677
1、如何启动RORDbg并调试一个程序? 答:点击“打开被分析文件”,出现Windows标准的文件打开对话框,选择欲分析的文件(必须是PE格式的EXE文件), 这时,被调试程序已经加载,可以先设置断点等调试条件,如果希望研究壳的技术,可以点选“遇到异常暂停”, 然后点击“GO!”按钮,程序就开始跑了 注意:如果您确认这个被调试程序是无害的,可以这么直接GO!,如果分析的是木马或者病毒,最好先点选“遇到API暂停”, 要小心往下跑(最好使用单步) 未来的版本会有个“安全运行”模式,即使是木马和病毒也不会造成危害。 2、如何脱壳? 答:脱壳没那么简单,现在的壳和原始程序体结合越来越紧密,找到OEP是非常困难的,即使找到了,由于IAT被加密或者代码 被抽走,而导致脱了壳的文件也不能正常运行。当然,RORDbg是可以成功脱掉一些壳的。 1)对于压缩壳来说一般相对比较容易,只要选中“在OEP处暂停”,然后GO!,耐心等待,停止后,单步走几下就是真正 OEP了,使用MakePe命令就可以成功脱掉。 2)加密壳也可以参考压缩壳的方法试一下,先脱出来,然后再手工修复。 3、为什么有时会跑飞? 如果有个异常不能正确识别,是有可能跑飞的(或者出错),这时,您要看看一共跑了多少指令,这个数字就是那个“已执行 指令数”,记下这个数字,重新开启RORDbg,再次装载这个被调试程序,下一个BPC断点(也就是跑多少条指令停下),比如, 刚才您记下的数字是11598,那么您可以下这样的断点:BPC 11500, 然后GO!,停止后,单步走,您就会发现导致最后跑飞的 那条指令是什么了,如果您觉得这个指令肯定是个异常,那么,停在这条指令上(别跑过了哦),按下“当前指令按异常处理” 按钮,然后继续跑。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值