|

分享源码
界面截图: |
- |
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 噌经滴承诺 于 2015-10-20 20:57 编辑
缺精币了,发个这几天研究出来的植物大战僵尸源码
歪瓜是我这几天才刚研究的
当然说到歪瓜,大家肯定会想到用歪瓜作坊模块啦
但是我想别人的始终是别人的,我要写个自己的
所以我又从API开始研究起
第一次写歪瓜,主要有以下的几个知识点分享给大家
API:
FindWindowA() '取窗口句柄 参数1:窗口类名 参数2:窗口标题
当我只填写一个窗口类名的时候可以取到,但只填一个窗口标题就取不到了
不知道什么原因 所以大家把两个参数都填上
GetWindowThreadProcessId() '返回线程ID
参数1:窗口句柄 参数2[传址]:返回进程ID
OpenProcess() '打开进程,上面的API返回的进程ID
参数1:权限(跟打开文件这个命令一样,权限有只读什么什么的,,)
参数2:默认(假) 我也不知道有什么用
参数3:进程ID 返回游戏句柄
ReadProcessMemory() '读取内存
‘参数1:游戏句柄
参数2:内存地址(基址)
参数3:读取的值存到变量
参数4:字符类型(4好像是正数 2好像是字节)
参数5:默认(0)
WriteProcessMemory() '写进程 ‘
参数1:游戏句柄
参数2:内存地址(基址)
参数3:写入的值到变量
参数4:字符类型(4好像是正数 2好像是字节)
参数5:默认(0)
StrToInt64ExA() '在歪瓜作坊源码里看到的,十六到十转换
基址大家应该都会找的,说一个像我这样的新手遇到的一个问题
就是我找冷却时间的时候,只找得到动态地址
搜得到的偏移地址的时候,搜不到东西
搜索结果总是0
(这个问题想了一晚,白天上班都在想)
终于想到了一可以解决的了(大鸟别喷)
就是在CE搜到这个值的话,然看右键,看读(写)这个地址的.....(我CE英文版,我也不知道是怎么说的)
然后看到有个MOV XX,[xx+偏移] 这行的时候,进去,,
然后就到了我们找到的第一个偏移,这个时候你看 MOV XX,[XX+偏移]
前边,有个内存地址 0049CE02 把这个地址记下,OD附加
CTRL+G 把这个内存地址搜两次,然后就可以看到有句 0049CE02 7E 16 jle 0049CE1A
看到JLE大家都懂了吧,我OD也不会,就把JLE百度了一下
原来是跳转,当时头脑发热,就把它改成JMP了,并把跳转的地址
改成0049CE04 也就是这行的下一句那里去了,,然后返回游戏测试
还真的成功了,,,,,,,,随后就用易语言把这句改写,就达到了HOOK了
这个内存地址,源码常量里有OD死码,别说不会用OD死码。。。。
精易图片上传不了,我也是醉了......
源码和游戏下载地址都打包一起了,
悄悄的说一句,,,,有问题别找我,我很忙,还要接着研究其它功能
继续学习歪瓜
植物大战僵尸(无尽版).zip
(7.2 KB, 下载次数: 178)
|
评分
-
查看全部评分
|