|
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).
void SF_DEBUG() {
printf("==DEBUG==\n");
//解密函数地址sub_BD6CC50
uint64_t UWorld = GameMemory.Read<uint64_t>(GameMemory._base + 0x12650638);
uint64_t ULevel = GameMemory.Read<uint64_t>(UWorld + 0x110);
int EncLevel = GameMemory.Read<int>(UWorld + 0x110 + 8);
int func_index = GameMemory.Read<int>(GameMemory._base + 0x12F504C0);
long open_enc = GameMemory.Read<int>(GameMemory._base + 0x12F504C4);
int enc_param = GameMemory.Read<int>(GameMemory._base + 0x12F504C8);
if (EncLevel < 0x20 && _bittest(&open_enc, EncLevel)) {
func_index = func_index + EncLevel;
if (func_index > 0xC9) {
func_index = 200;
}
uint64_t func_addr = GameMemory._base + 0x1264EF60 + func_index * 8;
uint64_t func_ptr = GameMemory.Read<uint64_t>(func_addr);//解密call
//申请可执行内存
PVOID address = VirtualAlloc(0, 64, MEM_COMMIT, 64);
*(BYTE*)address = 0xC3;
typedef uint64_t(__fastcall* SFCALL)(int addr);
SFCALL pSFCALL = (SFCALL)address;
//读取具体内容
GameMemory.ReadMemory(func_ptr, address, 64);
uint64_t result = pSFCALL(enc_param);
ULevel = ULevel ^ result;
printf("ULevel %llx\n", ULevel);
printf("ULevelID %llx\n", GameMemory.Read<uint64_t>(ULevel + 0x01D8));
printf("Actor %llx\n", GameMemory.Read<uint64_t>(ULevel + 0x0B0));
printf("Count %llx\n", GameMemory.Read<int>(ULevel + 0x0B8));
}
printf("World %llx\n", UWorld);
printf("==DEBUG==\n");
}
联系我时,请说是在 挂海论坛 上看到的,谢谢! |
上一篇: 注意驱动骗子!Bitte·驱动交流群1037581272 专业出租垃圾驱动!卖各种源码欺骗!下一篇: 首发(硬件机器码)内核驱动读写修改源码
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。
|