首页
社区
课程
招聘
[求助][讨论]关于反汇编引擎
发表于: 2009-8-14 09:13 5027

[求助][讨论]关于反汇编引擎

2009-8-14 09:13
5027
暑假里实习工作以后,一直想写一个值得纪念的作品,而反汇编引擎也是其中的一部分。我想在毕业前写出一个完整的c/asm编译器,准备了很多工作,我知道这个过程很难,但我会一直努力,这是我的目标。我从来都不觉得MFC不好,虽然曾经因为MFC头痛过一段时期。我最初的设想是用doc/view设计程序框架,类VC界面的,这些倒不难;核心的实现部分考虑用C和ASM来实现。在没有学编译原理之前,我想先把反汇编和调试部分做出来。

   关于反汇编引擎,开源的代码很多,XDE,DISASM,OD反汇编引擎...还有论坛里各位朋友分享的自己的引擎代码。呵呵,各有各的特点,如果只是单纯的调用那肯定没问题的。不过,我也想认真学习指令编码结构,最近看了很多原理方面的东西,对着intel指令表手工翻译常用指令应该没问题。可能理解的不深入吧,现在自己写的时候,发现一些不能理解的问题,可能大家看起来很简单,不过对于我自己琢磨来说,有点晕。
   问题是这样的:对某些指令,他们可以用一组相同的解析流程和代码,而用其他的指令,则要不同的解析代码。这其中的差别在哪里了?如何观察这些指令所具有的相同特征,以及如何确定哪些指令就该用同样的解析代码?这些解析代码又该如何编写(我觉得在这个解析代码里有不变的规律,但如何发现,所以看现成的代码我可以体会到,但是如果自己看intel文档,对于新的指令,如何发现规律)?
   可能这个问题问的很突兀,总之还是自己理解的不深。知道论坛里高手有很多,希望慷慨解惑下。先谢过大家!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 392
活跃值: (89)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
讨论下也好啊,真不知道怎么做了,继续看文档,继续等答案
2009-8-14 09:56
0
雪    币: 558
活跃值: (43)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
3
仔细翻看下指令集参考就知道了。一种情况是,指令分为不同的组成部分,如某些指令只表现在ModRM部分不同,而且他们的ModRM部分是有规律的,那么这些指令可以放在一块解析。
如果你感觉做一件事情不知如何下手,说明你还没有准备好。仔细翻看下指令集参考吧,主要是第2章,附录A,B,以及第3章的前小部分。
2009-8-14 10:19
0
雪    币: 392
活跃值: (89)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
4
恩,谢谢xiep!
2009-8-14 10:53
0
雪    币: 392
活跃值: (89)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
5
貌似明白了,其实可以简单的一条一条解析,也可以找出具有一些近似相同规律的指令分为一组解析,当然区分要细节化一点。解析的时候,用不同的方法来进行区分,这取决与引擎的设计部分...终日而思,偶有所得...
2009-8-14 16:24
0
游客
登录 | 注册 方可回帖
返回
//