Eorton 发表于 2019-3-26 23:44

Python 实现植物大战僵尸阳光修改

本帖最后由 Eorton 于 2019-3-27 12:43 编辑

初来乍到,还请各位大佬多多包涵!
好,首先引用老师的帖子植物大战僵尸之无限阳光
https://www.52pojie.cn/thread-864385-1-1.html
(出处: 吾爱破解论坛)
目的是找到阳光的基址

首先我们打开植物大战僵尸,我们看到是50阳光值


接下来,因为我们跳过了找基址的那个步骤了,我们已经基址了,直接上基址

阳光偏移地址PlantsVsZombies.exe+2AA00C

004537CE - int 3
004537CF - int 3
004537D0 - cmp dword ptr ,00
004537D7 - jne PlantsVsZombies.exe+537DC
004537D9 - xor al,al

0041BA72 - jg PlantsVsZombies.exe+1BA80
0041BA74 - sub esi,ebx
0041BA76 - mov ,esi
0041BA7C - mov al,01
0041BA7E - pop esi

众所周知,阳光值地址是:
第二级指针
第一级指针 = [第二级指针 + 0x768]
阳光地址 = [第一级指针 + 0x5560]

不懂的话下面详细用CE演示下就明白



我们完成赋值后,出现真实阳光数值,证明我们已经找到真实地址了
记录下地址,点OK,我们这边算得地址是 0X16E4E838

完事,基本没CE什么事了,可以out了

然后,我们开始pypypypy ????你们想什么,我说的是Python!
开撸!


# 导入一些API必须库from win32gui import *
# from win32com import *
# from win32con import *
from win32api import *
# import ctypes
from ctypes import *
from win32process import *
# import struct


# 最高权限附加进程
PROCESS_ALL_ACCESS=(0x000F0000|0x00100000|0xFFF)
kernel32 = windll.LoadLibrary("kernel32.dll")
window_handle = FindWindow(None,"植物大战僵尸中文版")
process_id_read = GetWindowThreadProcessId(window_handle)

process_handles = OpenProcess(0x1F0FFF,False,process_id_read)




# 阳光值内存修改
written = c_int(0)
sun = 9999
kernel32.WriteProcessMemory(int(process_handles),0x16E4E838,byref(c_int(sun)),4,bytes(written))
print("That is OK")



好了,我们来检验下



好了,开CE检测当然修改成功啊!我们干掉CE再来



hahahahaha修改成功了吧,本次是用Python来写的,大牛别喷我,我就一单单小白,还不会怎么在Python写偏移,谢谢大家的支持!

----------------------------------------------------------------------------------------------------------------------------------------------
回复:@循环不计次   所说的“怎么找地址很关键”
前面所说,引用前辈老师的帖子:“https://www.52pojie.cn/thread-864385-1-1.html”,所以这里不重复叙述!请移步看老师的帖子,本文是说用Python怎么实现的,谢谢!

alicc 发表于 2019-3-27 00:20

4个基质 5560 768 我都能背到了 {:1_925:}

Eorton 发表于 2019-3-27 17:15

liphily 发表于 2019-3-27 17:01
你这种修改的是绝对地址,写好的程序到别的电脑上不一定能用。
还是基址+偏移才有通用性,这是操作系统的 ...

是的,我只是实现而已,前面我也说过还不会怎么写偏移,所以还请你看完再回答

南宫乘风 发表于 2019-3-26 23:53

楼主,厉害,学习了。

心缘电脑 发表于 2019-3-27 00:16

历害了,我也要学

Eorton 发表于 2019-3-27 00:22

alicc 发表于 2019-3-27 00:20
4个基质 5560 768 我都能背到了

是可以背,但是照顾一些小白嘛。。。。。莫挨我!

alicc 发表于 2019-3-27 00:23

Eorton 发表于 2019-3-27 00:22
是可以背,但是照顾一些小白嘛。。。。。莫挨我!

哇。怎么晚居然回复了 {:1_901:}

Eorton 发表于 2019-3-27 00:24

alicc 发表于 2019-3-27 00:23
哇。怎么晚居然回复了

都是电脑手机离不了身的人,除非不想回复而已

chenyan_ll7 发表于 2019-3-27 00:50

楼主 厉害啊

暮丶辰 发表于 2019-3-27 01:34

谢谢楼主分享 学习了

vvking6 发表于 2019-3-27 06:57

页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Python 实现植物大战僵尸阳光修改