能力值:
( LV9,RANK:610 )
|
-
-
2 楼
很不错 我曾经写过一个反汇编引擎 好不容易坚持下来 还有很多错误 这里的艰辛谁能知道?
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
有现成的谁自己写
|
能力值:
( LV11,RANK:190 )
在线值:

|
-
-
4 楼
掌握原理性的东西就掌握了技术的灵魂
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
自己顶一个了[QUOTE][/QUOTE]
|
能力值:
( LV5,RANK:60 )
|
-
-
6 楼
typedef struct _INSTRUCTION
{
BYTE RepeatPrefix; //重复指令前缀
BYTE SegmentPrefix; //段前缀
BYTE OperandPrefix; //操作数大小前缀0x66
BYTE AddressPrefix; //地址大小前缀0x67
BYTE Opcode1; //opcode1
BYTE Opcode2; //opcode2
BYTE Opcode3; //opcode3
BYTE Modrm; //modrm
BYTE SIB; //sib
union //displacement联合体
{
BYTE DispByte;
WORD DispWord;
DWORD DispDword;
}Displacement;
根据这个结构没看出指令参数在什么哪里
很奇怪不提供翻译成助记符的函数啊,不提供 你自己怎么测试和调bug啊
而且你提供助记符翻译模块,代码才容易看懂,不提供给不懂汇编指令翻译的人,你的代码
也无法使用啊!
有源代码么,Test_Disassembler.rar是源代码吗? 又下载不了
然后是很佩服lz,研究的很仔细,十分强大,只能拜摸,无法学习
|
能力值:
( LV9,RANK:610 )
|
-
-
7 楼
你没有仔细思考作者的方法 作者是用 opcode 来翻助记符的 指能说不太完善 但是已经很不错了
请不要说 只能膜拜无法学习之类的。
|
能力值:
( LV5,RANK:60 )
|
-
-
8 楼
个人愚昧的认为
输入的结构应该表示为: 指令+参数
然后提供一个函数把上面的结构,显示为字符串,这个主要给人看
而指令+参数的表示,很方便做指令分析
虽然保留了比较多的原始指令的解析信息很不错,但是我认为,翻译出来的指令后
我根本不关注他,有多少个前缀,有多少个opcode,有没有Modrm,是否有SIB
因为指令最终我们想知道的主要是他操作的参数,和指令表达的意思,至于解析的结构
我不必知道
比如发现一条指令,如果他是push,我就只想知道他push的是立即数,寄存器,还是地址内容
同样mov也是,我只想知道mov的目标和源,个人感觉ida的汇编引擎很牛b,od很多翻译部了,和错误
的地方,他都没问题,很想知道ida设计的输出结构,网上很多开源反汇编引擎,不是输出助记符,就是
输出,解析的opcode和mod,sib,如果我要做指令分析,或者虚拟机,前者,我必须用对比,字符串的方法
显然不可用,后者它没输出参数,只有指令结构,我可以说必须再做一次解析。
以上个人愚见。
|
能力值:
( LV5,RANK:60 )
|
-
-
9 楼
不好意思 只能拜摸 无法学习是玩笑话
不必当真
lz成果非常不错,不可否认。
|
能力值:
( LV7,RANK:110 )
在线值:

|
-
-
10 楼
这只是一个引擎模块,还有一个解析这个结构成助记符的模块,那个模块我写的太垃圾,所以没敢放,或许以后会拿出来丢人吧,全是switch case,后悔ing,当初就不应该选择这条路。。。。
不要说不翻译成给人看的助记符就没有用,要知道,反病毒引擎,VM都不是给人看的,是给机器看的,只要机器看懂了,机器就能干活了。。。后面我会给你个例子,看看这个引擎都能干什么。。。
|
能力值:
( LV5,RANK:60 )
|
-
-
11 楼
关注中 ...............................
|
能力值:
( LV9,RANK:610 )
|
-
-
12 楼
我根本不关注他,有多少个前缀,有多少个opcode,有没有Modrm,是否有SIB
因为指令最终我们想知道的主要是他操作的参数,和指令表达的意思,至于解析的结构
我不必知道
当你做虚拟机引擎的时候 你就知道这些东西是必须要知道的。而且很重要
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
楼主的成果来之不易,期待加关注!
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
mark备查
|
能力值:
( LV3,RANK:30 )
在线值:

|
-
-
15 楼
反汇编指令确实有很多现成的工具可以借鉴,难点是怎么构造确定的CFG和定位函数起始结束位置,特别是针对于被模糊过的二进制码,最近正在研究这个东西,希望有成果后跟大家分享吧
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
 研究这个东西厉害
|
能力值:
( LV5,RANK:60 )
|
-
-
17 楼
确实是这样,不过后者也重要,所以最好2个都有,但是后者要表示所有参数,我感觉更难定义,前者是解析必经的过程,可以说是把解析中的中间信息保留,感觉要容易点。
个人看法。
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
18 楼
额,ia32 指令看了。
但是不想写,觉得太麻烦了
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
提供了很多资料,感谢
|
能力值:
( LV13,RANK:540 )
|
-
-
20 楼
 里面介绍的中英文教材很不错~~ArtOfDisassembly~嘿嘿~~希望咱也能写个反汇编引擎出来!
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
学习学习...........
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
我觉得我什么都不会了
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
23 楼
打死不自己写这东西。。。
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
24 楼
浏览起来有压力,看来路还远。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
感谢楼主分享
|
|
|