我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合生肖表 > 反编译器 >

打造自己的ollydbg调试器 (2)反汇编引擎的选择与改造

归档日期:04-19       文本归类:反编译器      文章编辑:爱尚语录

  开发调试器,必然就会涉及反汇编,反汇编引擎的功能和性能的指标也是其中最主要的部分,势必就会涉及到对反汇编引擎的对比于选择。

  ud_set_pc(u, 0);设置内存的段的基址,相当于PE文件的基址。

  ud_disassemble里调用ud_decode函数来实现解码分析操作,然后使用translator函数对解码的结果做指令翻译操作翻译成可读的intel或者AT&T的语法字符串。

  如果设置了sym_resolver接口,就会调用这个接口反汇的符号字符串来替代地址值的反汇编字符串。

  纵观以上udis86提供不少的功能但是在冒些情况下有很多不足之处,比如在一块很大的内存进行反汇编解码时没有预解码的函数接口,会导致使用者误认为效率不高,还有其他情况与我们使用ollydbg不同的语法风格也需要我们去改造。

  这个函数在分析解析过程速度非常快,效率非常高,这个函数用处主要在预分析,确定当前内存数据能反汇编出多少行指令,方便后续界面显示时分页显示,因为它少了translator过程,预分析过程效率提高了几百上千倍。

  这个应该属于bug显示问题,所以我们需要做以下修改,问题主要在ud_syn_print_mem_disp

  其他还有一些小的细节和ollydbg有细微差别,这里就不再赘述了,读者可以自行去发现,经过一些改造与加工我们就能得到一个性能与结果完美的反汇编引擎,后面的一些界面显示的速度性能等等一些调试器的交互工作就会事半功倍了。返回搜狐,查看更多

本文链接:http://oms15.com/fanbianyiqi/121.html