我寫了一個hackme程序,我想掛鉤它並使bruteforce破解它(用dll注入)。 問題是當我試圖寫或讀內存時,雖然我給自己寫了一個VirtualProtect
的私鑰,但這個過程崩潰了(它發生在我身上,不僅僅是hackme程序,而是每個程序)。當我用dll注入讀/寫內存時進程崩潰
- 如果我將消息框添加到該dll,該消息框的作品。
這裏是假設從過程中要防止打印的東西(與NOPing)的dll:
#include "DLL.h"
#include <windows.h>
#include <tlhelp32.h>
BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
DWORD threadId;
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&ThreadProc, NULL, 0, &threadId);
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return true;
}
DWORD ThreadProc(LPVOID lpdwThreadParam)
{
VirtualProtect((LPVOID)0x00417D10, 5, PAGE_EXECUTE_READWRITE, NULL);
*(char *)0x00417D10 = 0x90;
*(char *)0x00417D11 = 0x90;
*(char *)0x00417D12 = 0x90;
*(char *)0x00417D13 = 0x90;
*(char *)0x00417D14 = 0x90;
return 0;
}
這裏是關於在進程的地址是我寫的信息: http://prntscr.com/2bveja (with IDA)
dll,注入器和hackme都是爲32bit編譯的。 我正在使用win7 64b。
從來沒有認爲你的DLL將在一個特定的地址被加載,系統不做任何保證,它是從安全的角度來看一個可怕的做法。如果您需要更改流程的流程,請使用[Detours](http://research.microsoft.com/en-us/projects/detours/)或Use [Hotpatching](http://msdn.microsoft.com/zh-cn/ COM/EN-US /庫/ ms173507.aspx) – Mgetz