Ctrl+G 跳转到之前寻找的地址
F2下断点
在步骤8中点击改变数值
检查一下Eax里面是不是我们想要的值
在堆区找一下esi+0x18的值
dd esi+0x18
01717D98 000001A9
esi - 0x18 找谁给Esi赋值的
往上找 感觉可疑就下断 然后执行看断不断下来
。。。我直接找到了基址
为了记笔记,装作没找到
004285F4 8B35 E0666500 mov esi,dword ptr ds:[0x6566E0]
00428638 8B76 0C mov esi,dword ptr ds:[esi+0xC]
0042867C 8B76 14 mov esi,dword ptr ds:[esi+0x14] ; esi 存储 01717D80
004286BD 8D76 00 lea esi,dword ptr ds:[esi] ; ESI 存储 01717D80
004286FE 8946 18 mov dword ptr ds:[esi+0x18],eax ; 01717D80+0x18 是 Esi+0x18
汇编命令 dd [ [[esi]+0x18]+偏移]+偏移
为什么会跟丢?
没有一步一步的论证数据,中间有Jmp 有 call 很可能断不下来 所以有可能的值都要下一个断点
如果找到函数头还没找到 判断是否是参数传递进来的 通过执行到返回 或者 堆栈的返回地址 去函数的上一层去找