吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1529|回复: 14
收起左侧

[求助] ce汇编脚本写到易语言游戏就崩溃

  [复制链接]
zcalpd 发表于 2023-2-26 13:55
请问各位大佬这段ce汇编代码写易语言需要申请新内存么?
我写的改完了游戏直接崩溃。。。研究好几天了,求个方法。 26f00d8c22f82040df4f38783ced8d7.png 1.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

939372735 发表于 2023-2-26 16:37
需要申请新内存,并在新内存写入相应的字节码,而且jmp过去需要动态计算偏移,jmp回来的偏移也要计算,很麻烦。不如找一下mov [ebp+5c],eax中的eax来源,想办法不使用jmp newmem,实现同样的功能。
gunxsword 发表于 2023-2-26 17:09
首先我不确定你那个写法对不对,因为我不用易语言,不知道你那个是不是支持,直接,89 45 5C这样写,假设你这个模块支持

其次,你发贴,应该把汇编发出来,要不有些东西看不到.

不过你这个的问题,我到是发现了,你的目的我也知道了,想法是没啥问题,但是你那个E9,这说明你是把CE注入的JMP的汇编给写进去了,你是想实现

mov [ebp+5c],0b 这样的效果,你应该直接修改ASM,不用注入,注入的话,会出现跳转,你要跳过去,才是你想要的汇编的代码

另外能不能直接修改ASM,或者说你这个想法能不能像你这样实现,要看你修改后的指令长度,你这个如果是写入BYTE也就是,只写入一个字节,像当前的0XB,是可以的,但是如果是,2个字节以上,原指令的长度
就不够用了,不够用就得看后面的代码是有多大用,能不能破坏,要不就得JMP后修改再JMP回来

不知道你听懂多少!!!

 楼主| zcalpd 发表于 2023-2-26 17:19
gunxsword 发表于 2023-2-26 17:09
首先我不确定你那个写法对不对,因为我不用易语言,不知道你那个是不是支持,直接,89 45 5C这样写,假设你这个 ...

原代码是
mov [ebp+5C],eax
mov eax,esi
fstp dword ptr [esp+18]
mov [ecx,edi]
fld    dword ptr [esp+18]
如果直接改成 mov [ebp+5C],0B的话效果是有的,但由于少了两行代码,发射子弹的位置就错乱了。
所以我想用跳转,在一个空白的游戏模块地址写了一个原有的让代码跳转,但是一跳转游戏就直接崩溃是什么原因呢?
原代码
000000001 mov [ebp+5C],eax
000000002 mov eax,esi
000000003 fstp dword ptr[esp+18]


000000001 jmp 00000010
000000003 fstp dword ptr[esp+18]
····················
000000010 mov [ebp+5C],0B
000000011 mov eax,esi
000000012 jmp 000000003
 楼主| zcalpd 发表于 2023-2-26 17:23
939372735 发表于 2023-2-26 16:37
需要申请新内存,并在新内存写入相应的字节码,而且jmp过去需要动态计算偏移,jmp回来的偏移也要计算,很麻 ...

用CE自动汇编脚本就没问题,但是写到易语言里直接修改字节集就不行,一跳转游戏就崩,不只要易语言应该怎么写才对。。。上面没找到EAX的来源,蒙死了
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov [ebp+5C],0B
mov eax,esi

exit:
jmp returnhere

"PlantsVsZombies.exe"+6C769:
jmp newmem
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"PlantsVsZombies.exe"+6C769:
mov [ebp+5C],eax
mov eax,esi
//Alt: db 89 45 5C 8B C6

明明跟自动汇编工具写的一样,我弄就崩。。
 楼主| zcalpd 发表于 2023-2-26 17:29
gunxsword 发表于 2023-2-26 17:09
首先我不确定你那个写法对不对,因为我不用易语言,不知道你那个是不是支持,直接,89 45 5C这样写,假设你这个 ...

3.png
Aurelion 发表于 2023-2-26 17:29
代码错了
 楼主| zcalpd 发表于 2023-2-26 17:39

完全按照自动汇编的写也不行,在CE里只要跳转就游戏就崩了,是因为我没申请内存么?
自己在没有数据的地址写汇编是不行的么?
asd5478 发表于 2023-2-26 19:56
易语言不是有个超级hook模块吗?
asd5478 发表于 2023-2-26 20:00
zcalpd 发表于 2023-2-26 17:39
完全按照自动汇编的写也不行,在CE里只要跳转就游戏就崩了,是因为我没申请内存么?
自己在没有数据的地 ...

崩溃就是代码错了,我以前搞过手动算。。。不过还是直接用超级hook模块吧,简单
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-11 15:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表