[email protected] 讀寫別⼈人的 Process boringGame.exe Process Id = 1 0xdead: 01 23 00 00 gameHacker.exe Process Id = 2 我想寫入 Process id = 1 的 Process 記憶體 0xdead 處連續 4 個 byte 的內容 可以ㄇ WriteProcessMemory
[email protected] boringGame.exe Process Id = 1 0xdead: 01 23 00 00 我想寫入 Process id = 1 的 Process 記憶體 0xdead 處連續 4 個 byte 的內容 可以ㄇ WriteProcessMemory 不可以ㄛ 跨 Process 讀/寫/創建 Thread 要先申請權限ㄏㄏ gameHacker.exe Process Id = 2 讀寫別⼈人的 Process
[email protected] 讀寫別⼈人的 Process boringGame.exe Process Id = 1 0xdead: 01 23 00 00 OpenProcess() gameHacker.exe Process Id = 2 Token WriteProcessMemory(Token, ...)
[email protected] 實際上運作 boringGame.exe Process Id = 1 ntdll!ZwOpenProcess: 我可不可以申請 Process Id = 1 Process 的存取寫入權限R? gameHacker.exe (Ring3) 好R,你要 Token 就給你R,有何不可ㄋ Windows Kernel (Ring0)
[email protected] 實際上運作 boringGame.exe Process Id = 1 ntdll!ZwOpenProcess: 我可不可以申請 Process Id = 1 Process 的存取寫入權限R? gameHacker.exe (Ring3) ㄜ... 有個驅動程式控制ㄌ我, 它跟我說不能給你 Token, Sorry :( Windows Kernel (Ring0)
[email protected] 偽造 ImagePath boringGame.exe Process Id = 1 ntdll!ZwOpenProcess: 我可不可以申請 Process Id = 1 Process 的存取寫入權限R? ㄜ...你是⼯工作管理理員喔, 好ㄅ,可能遊戲當掉了了玩家想強制關閉遊戲, Token 給你吧 Windows Kernel (Ring0)
[email protected] DLL Entry Game Process Game.exe (PE) 0x400000+ ntdll.dll KUSER_SHARED_DATA 0x7ffe000+ user32.dll kernel32.dll ... ... “An optional entry point into a dynamic-link library (DLL). When the system starts or terminates a process or thread, it calls the entry-point function for each loaded DLL using the first thread of the process. ” -- MSDN (DllMain entry point) .text: DllEntry .text: DllEntry .text: DllEntry