- UID
- 290224
- 帖子
- 384
- 主題
- 43
- 精華
- 0
- 積分
- 85
- 楓幣
- 282
- 威望
- 76
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 51
- 閱讀權限
- 10
- 性別
- 保密
- 在線時間
- 180 小時
- 註冊時間
- 2020-9-13
- 最後登入
- 2024-8-18
|
開篇寫在最前面,我自己沒有bypass成功,只是想把我走過的路寫出來,也算是為即將結束的32位楓之谷(冒險島)留個回憶。
ngs的完整單詞是,nexon game security ,意思就是它保護的是遊戲的安全,他要保護遊戲代碼不被修改,wz不被修改,以及檢查黑名單進程。
要ngs bypass,其實就是不讓他做這些事情,那麼怎麼才能不讓它做呢?我為此,看了一周多的windows內核編程,明白了,要hook一些內核函數,NtOpenProcess, NtQueryVirtualMemory,NtReadVirtualMemory,NtQuerySystemInformation,這時候,我寫了一個dll,hook這些函數,然後注入ngs裡, 但是一點用沒有。
截取一小段
NTSTATUS NtOpenProcess_hook(PHANDLE ProcessHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, CLIENT_ID* ClientId)
{
HMODULE hModule = NULL;
if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, reinterpret_cast<LPCSTR>(_ReturnAddress()), &hModule) && hModule == GetModuleHandle(NULL))
{
if (reinterpret_cast<DWORD64>(ClientId->UniqueProcess) != parent_process_id)
{
if (ProcessHandle)
*ProcessHandle = NULL;
return STATUS_ACCESS_DENIED;
}
}
return _NtOpenProcess(ProcessHandle, DesiredAccess, ObjectAttributes, ClientId);
}
接著我又去看別人的帖子,博客,看他們是怎麼做的,後來發現了在GMS那邊,他們是通過的wow64來進行的bypass,wow64在維基上的定義是,WoW64(Windows 32-bit on Windows 64-bit)是Microsoft Windows操作系統的一個子系統,它提供在所有Windows 64位系統上運行32位元應用程序的能力。
恰好maplestory是32位的,他在64位的windows上運行,它就要用這個wow64,那麼他正好就充當了一個很好的跳板。
待續......
寫得很亂,給自己做個回憶記錄,因為我不是大神,只是個很菜很菜的菜鳥。说不定一定哪天就把它删掉 |
[發帖際遇]: ningmeng 為了避免被「就讀腐大的咬蚊子」嗆「多讀點書」,因此購買大量書籍,花費 1 楓幣 |
幸運榜 / 衰神榜 |
-
總評分: 鑰匙 + 1
GP + 1
查看全部評分
|