破竹而入 发表于 2024-2-28 18:34

通过ce 找到FSTP传值,可是怎么找正确值?

本帖最后由 破竹而入 于 2024-2-28 18:47 编辑

浮点堆栈的顶部指针怎么找,求大佬提示下!!!
游戏地址:    https://wwf.lanzoue.com/iqwrp1p82iaf
https://attach.52pojie.cn//forum/202402/28/184620lifqtq4ifb7i6nip.png?l

homehome 发表于 2024-2-28 21:36

特意下载了这个游戏,用CE找出指针。
仅仅需要找两次就找到指针了
第一次,进入竞技场,找出血量的浮点地址,然后对”这个地址进行指针扫描“,”最大级别“为8,保存一下,不要关掉指针窗口。
退出竞技场,
第二次,再进入竞技场,找出血量的浮点地址,复制一下地址,在指针窗口的”指针扫描器“里,重新扫描内存。把第二次查找到的浮点地址粘贴到查找框里,再保存第二个,查找,这时仅剩下40多个地址,不要关掉指针窗口。
再退出竞技场
第三次进入竞技场
看看指针窗口,哪个指针的血量符合血量,就用哪个指针

gunxsword 发表于 2024-2-29 10:18

破竹而入 发表于 2024-2-28 21:45
这个指针有什么特殊吗?断点看了下汇编,还查了意思,还是无存下手,就是这个fstp是取堆栈值,那是不是有 ...

FSTP dest                dest <- st(0) (mem32/mem64/mem80);然后再执行一次出栈操作

你那界面上不是挺清楚的吗,ST0的值,保存到,ESI+8里面了,而ESI+8,就是你CE地址表中的地址,也就是说从这里找的话,上一级是ESI,你如果要直接补丁的话,要先看这里是不是共用代码,如果不是,你在这里就可以打,直接往ESI+8里写入就行了

gunxsword 发表于 2024-2-28 21:12

试着找找,2e4b960的指针

破竹而入 发表于 2024-2-28 21:45

gunxsword 发表于 2024-2-28 21:12
试着找找,2e4b960的指针

这个指针有什么特殊吗?断点看了下汇编,还查了意思,还是无存下手,就是这个fstp是取堆栈值,那是不是有压栈位置的代码,应该怎么找?

homehome 发表于 2024-2-28 21:46

然后继续玩了一下,发现选定的指针还是发生变化,还好没关掉指针窗口,重新找个地址就可以了
"THREADSTACK0"-0000030C+4E4+A0+638+1C0+104+84+20+28
这个基地,退出后,再进入,也是正确血量地址

破竹而入 发表于 2024-2-28 21:47

homehome 发表于 2024-2-28 21:36
特意下载了这个游戏,用CE找出指针。
仅仅需要找两次就找到指针了
第一次,进入竞技场,找出血量的浮点地 ...

不是找内存,是想用dbg直接改了打补丁。

homehome 发表于 2024-2-28 22:01

哦,你想直接改为无伤?

破竹而入 发表于 2024-2-28 22:07

homehome 发表于 2024-2-28 22:01
哦,你想直接改为无伤?

对直接补丁。

破竹而入 发表于 2024-2-29 11:23

gunxsword 发表于 2024-2-29 10:18
FSTP dest                dest

直接写入值,运行后会卡住。。现在就是不理解这个fstp堆栈中的数据是从哪里来的。
这个fstp里的数据要怎么找到赋值的位置!
页: [1] 2
查看完整版本: 通过ce 找到FSTP传值,可是怎么找正确值?