|
|
|
[原创]编写自己的反汇编引擎
关注中 ............................... |
|
|
|
[原创]编写自己的反汇编引擎
个人愚昧的认为 输入的结构应该表示为: 指令+参数 然后提供一个函数把上面的结构,显示为字符串,这个主要给人看 而指令+参数的表示,很方便做指令分析 虽然保留了比较多的原始指令的解析信息很不错,但是我认为,翻译出来的指令后 我根本不关注他,有多少个前缀,有多少个opcode,有没有Modrm,是否有SIB 因为指令最终我们想知道的主要是他操作的参数,和指令表达的意思,至于解析的结构 我不必知道 比如发现一条指令,如果他是push,我就只想知道他push的是立即数,寄存器,还是地址内容 同样mov也是,我只想知道mov的目标和源,个人感觉ida的汇编引擎很牛b,od很多翻译部了,和错误 的地方,他都没问题,很想知道ida设计的输出结构,网上很多开源反汇编引擎,不是输出助记符,就是 输出,解析的opcode和mod,sib,如果我要做指令分析,或者虚拟机,前者,我必须用对比,字符串的方法 显然不可用,后者它没输出参数,只有指令结构,我可以说必须再做一次解析。 以上个人愚见。 |
|
[原创]编写自己的反汇编引擎
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,研究的很仔细,十分强大,只能拜摸,无法学习 |
|
|
|
[原创]写了个反汇编的东西,分享出来
寒 估计没什么人研究这个东西。。想讨论下都没有 |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值