6年前貌似用钩子是可以的,现在没有一款游戏能让你轻松使用键盘钩子或消息钩子就把号盗去了。内存截密才是王道。先要反汇编目标程序,分析出哪段代码是对保存密码的变量进行声明。记录下该代码的特征码或偏移地址。
截密过程如下:
1.查找目标进程是否存在
2.根据先前的分析破解进程保护。现在很多游戏都用驱动hook NtOpenProcess之类的函数保护自己。破解保护要恢复这些内核函数,通常也需要写驱动程序。这一步很关键。
3.使用OpenProcess打开进程
4.使用VirtualAllocEx在目标进程里申请内存
5.使用WriteProcessMemory把劫持代码写入目标进程
6.使用WriteProcessMemory修改汇编分析出的保存密码的代码(暴力搜索或计算偏移),一般是改为Jmp指令,跳转到劫持代码,先执行劫持代码,劫持代码获取到密码,并保存到某一位置
7.使用ReadProcessMemory读取密码
8.劫持代码执行完之后,Jmp回原地址继续运行,避免影响原程序的流
截密过程如下:
1.查找目标进程是否存在
2.根据先前的分析破解进程保护。现在很多游戏都用驱动hook NtOpenProcess之类的函数保护自己。破解保护要恢复这些内核函数,通常也需要写驱动程序。这一步很关键。
3.使用OpenProcess打开进程
4.使用VirtualAllocEx在目标进程里申请内存
5.使用WriteProcessMemory把劫持代码写入目标进程
6.使用WriteProcessMemory修改汇编分析出的保存密码的代码(暴力搜索或计算偏移),一般是改为Jmp指令,跳转到劫持代码,先执行劫持代码,劫持代码获取到密码,并保存到某一位置
7.使用ReadProcessMemory读取密码
8.劫持代码执行完之后,Jmp回原地址继续运行,避免影响原程序的流