首页
社区
课程
招聘
请问 OD 中 HEX值 和 反汇编的代码 有什么关系
发表于: 2009-11-18 17:26 4900

请问 OD 中 HEX值 和 反汇编的代码 有什么关系

2009-11-18 17:26
4900
怎样通过 修改 HEX 的值 直接得到想要的反汇编代码
例如
004023AD      E8 4EDCBFFF   call    00000000
004023B2      E8 4ADCBFFF   call    00000001
004023B7      E8 46DCBFFF   call    00000002
004023BC      E8 42DCBFFF   call    00000003

004023C4      E8 37DCBFFF   call    00000000
004023C9      E8 33DCBFFF   call    00000001
004023CE      E8 2FDCBFFF   call    00000002
004023D3      E8 2BDCBFFF   call    00000003

我想通过 修改 地址004023AD 的值 直接得到 call    00000000 要怎么办?
我试验了 在不同的地方写了call    00000000  它的HEX值并不相同
请问应该怎么办

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
call dword ptr [00000000]

如果地址00000000不在.text段,要显式指明段寄存器
2009-11-18 17:52
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
举个例子就明白了:
地址00401000开始,有机器码          E8   02000000     这句话是call XXXXXXXX

XXXXXXXX怎么计算呢。系统就这样计算
XXXXXXXX=00401000h+5h(下个指令在内存中的偏移)+00000002h=00401007h。

那在地址00401000处call 00400FEE的机器码是什么呢。就是   E8  E9FFFFFF
系统会算 00400FEE(XXXXXXXX)=00401000+5h(下个指令在内存中的偏移)+(-17h).

所以楼主我想通过 修改 地址004023AD 的值 直接得到 call    00000000 要怎么办?
直接在 地址004023AD(存储的是字节E8吧),后4个字节机器码改写为  3FDCBFFF(已考虑高低位)

注意 call  00000000   与call dword ptr[00000000]机器码是不同的,call dword ptr[00000000] 人为很容易看出机器码。
2009-11-18 17:54
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢 怀特迈恩 因为第一次发贴 贴已经结 不知道怎么补分给你  实在不好意思
2009-11-18 18:05
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没事,水平有限,能帮到人就很高兴啦
2009-11-18 18:15
0
雪    币: 156
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
call和jmp指令后的操作数不是绝对地址,是相对的偏移地址,所以你想call在0x00000000地址的指令的话要计算0x00000000相对call指令所在地址的偏移量,再加上修正。

不过一般你不能call在0x00000000地址的指令,应该会引起CPU异常吧!

我认为,应该只能call在0x00401000以后的地址,不知道对不对?(因为0x00401000是.text段的起始位置)
2009-11-19 13:00
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
引用:
    我认为,应该只能call在0x00401000以后的地址,不知道对不对?(因为0x00401000是.text段的起始位置)

不是这样的。你用Virtualalloc申请内存地址,往往会申请到00401000以前的地址。我经常申请到003A0000。各种跳转都没错。
2009-11-26 22:38
0
游客
登录 | 注册 方可回帖
返回
//