首页
社区
课程
招聘
[求助]反汇编引擎不知道怎么计算代码长度
发表于: 2009-1-25 18:50 7754

[求助]反汇编引擎不知道怎么计算代码长度

zhuwg 活跃值
11
2009-1-25 18:50
7754
memory compare
一个破玩意儿。。
问题是这样的。比较代码容易出现这种问题
如果一个是代码是 mov eax,1
另外一个是 call
那么就比较简单的定位到差异处,就可以反汇编了
但是这种情况下
一个是      mov dword [xxxx],1
另外一个是mov dword [xxxx],x
就会出现差异点在指令中间,这个时候引擎不好识别

src放上来,引擎大牛指点1下偶这个小菜把
工程是用一个LCDemo的例子上面改出来的

祝各位新年快乐

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
2
你需要一个尝试向后反汇编和尝试向前反汇编的算法来确定你指定的点的比较合理的指令起始位置
这样才能判断出差异在指令开头还是指令中间

如果想省事,直接调用OD的导出函数 Disassembleforward and Disassembleback

注意要调用od1.10的那个导出函数,用disasm源码里面的那个不行
2009-1-25 20:45
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
3
完全不懂
只能膜拜
2009-1-25 21:11
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=;]...[/QUOTE]
完全膜拜
只能不懂
2009-1-25 23:14
0
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
5
向上找个没有歧义的代码 找个NOP或者其他的 累加向下计算指令长度 看那条指令落在哪个范围。。

或者从OEP开始加
或者从开始地址开始加 开始地址就是要求用户输入的那地址
随便想到的 仅供参考。。
2009-1-25 23:38
0
雪    币: 98803
活跃值: (201054)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
Fully understand
Can only worship
2009-1-26 01:43
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
7
没看明白什么意思.
2009-1-26 06:29
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
这句我懂了 哈哈
2009-1-26 14:52
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
9
头像的小兔子换颜色了,哈哈
2009-1-26 19:41
0
雪    币: 383
活跃值: (41)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
10
是只老鼠....
zhuwg玩的越来越深了....
2009-1-26 21:31
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
11
附近找一个参考地址就可以了。
或者枚举一下前缀,有的话再往前推,直到没歧义为止。
2009-1-27 11:12
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
12
猪娃哥参看一下x86il.h
2009-1-27 12:37
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
完全的
看不懂
2009-1-27 13:02
0
游客
登录 | 注册 方可回帖
返回
//