-
-
[旧帖]
[求助]关于成吉思汗3不用登录器,直接传递参数 打开游戏的问题
0.00雪花
-
发表于:
2012-10-7 17:40
1922
-
[旧帖] [求助]关于成吉思汗3不用登录器,直接传递参数 打开游戏的问题
0.00雪花
直接打开游戏 主要是获得登录器 ShellExecuteA 中的第四个参数 下面是我分析出来的参数 通过od跟踪登录器完全正确 可以调用 ShellExecuteA 还是提示 请从 Launch 启动游戏
现在我就迷茫了 参数完事正确,怎么还是打不开呢,期待高手帮忙,看下是不是我哪里写错了,或者给出直接打开游戏的方法
这个游戏的启动参数是变动的,主要是根据当前系统的远行时间的 底位和高位进行一定的运算,得出一串字符,然后传进去
FILETIME fileTime;
GetSystemTimeAsFileTime(&fileTime);
DWORD dwLowDateTime = fileTime.dwLowDateTime; // 系统时间底位
DWORD dwHighDateTime = fileTime.dwHighDateTime;// 系统时间高位
DWORD dresult;
DWORD divisor = 0x00989680;
// AfxMessageBox(cstr_hdatetime);
// 处理成数字型的
_asm{
mov edx,0x0
mov ecx,dwHighDateTime
adc ecx,0xfe624e21
mov eax,ecx
div divisor
mov eax,dwLowDateTime
add eax,0x02ac1800
div divisor
mov dresult,eax
}
char _charSerialNum[255];
_ltoa_s(dresult,_charSerialNum,10);
//转成字母型的
_asm{
mov ecx,0;
mov eax,0x0A
L1: cmp ecx,eax
jge L2
mov bl,0x4d
mov dl,al
xor dl,bl
xor byte ptr [_charSerialNum+ecx],dl
inc ecx
jmp L1
L2: mov esi,esi
}
CString p;
p = _charSerialNum;
LPCSTR lpParameters = NULL;
USES_CONVERSION;
lpParameters = T2A(p.GetBuffer(p.GetLength()));// 这是得到的参数
// 调用函数打开成3进程////
ShellExecuteA(NULL,"open","F:\\成吉思汗2\\game\\KHan3.exe",lpParameters,NULL,5);
[课程]Linux pwn 探索篇!