首页
社区
课程
招聘
[讨论]dump memory to file on bochsdbg
发表于: 2015-9-27 21:52 3197

[讨论]dump memory to file on bochsdbg

2015-9-27 21:52
3197
今天在逆向ultraIos制作的MBR, 发现MBR程序根据条件(硬盘是否支持int 13h 扩展), 将内存中的汇编指令动态改了.
这样导致IDA分析的被动态修改之前的MBR代码, 和修改之后的MBR代码不一样.
现在只能将修改后的MBR汇编代码Dump出来.

我是用bochsdbg单步调试的, 当代码被修改后, 需要用bochsdbg自带命令dump出来.
在自带帮助中看到有writemem命令, 但是没有调用的例子...
用google去查, 也没有发现有writemem的命令示例.

想起bochs是开源的工程,  svn url = svn://svn.code.sf.net/p/bochs/code/trunk
迁出后, 在工程中,搜索这个命令的用法.
在 \bochs\bx_debug\parser.c 中找到了命令的使用格式.

  case 215:
#line 1109 "parser.y" /* yacc.c:1646  */
    {
         dbg_printf("writemem <filename> <laddr> <len> - dump 'len' bytes of virtual memory starting from the linear address 'laddr' into the file\n");
         free((yyvsp[-2].sval));free((yyvsp[-1].sval));
       }
#line 3488 "y.tab.c" /* yacc.c:1646  */
    break;


在bochsdbg控制太中输入如下命令搞定
<bochs:164> writemem "test.bin" 0x600 512
<bochs:165> writemem "c:\test.bin" 0x600 512

其中, 文件名可以指定全路径.

看了下dump出来的bin文件, 和被动态修改后的MBR代码相同.
只能说bochs做的太贴心了, 我等屌丝要用到的功能都想到了, nice~

这样, 就可以将被动态修改后的MBR用IDA加载后,继续分析,可以分清楚不同条件下,读取磁盘扇区到内存的实现过程.

当代码被动态修改后, 大家是怎么继续分析整理逆向后的代码. 有没有更好的调试方法?

大家用bochs时,有什么好的调试命令用法组合或bochs自带帮助中没提到的用法, 请抛出砖头

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//