大家好今天是第18天, 我們要學習漫畫分上下集哈哈哈哈(其實是沒有稿),昨天講了一下概念操作方法,那今天我們就來實作看看吧,廢話不多說我們直接進入程式碼。
#include <Windows.h>
#include <iostream>
typedef void (*ccc)();
int main() {
HMODULE hmodule = LoadLibrary("Dll5.dll");
printf("%X", hmodule);
if (hmodule == NULL) {
MessageBox(NULL,"沒抓到","標題", MB_OK);
return -1;
}
ccc a = (ccc)GetProcAddress(hmodule, "ccc");
a();
getchar();
return 0;
}
首先呢我們需要先講一下這個print("%X",hmoudule)的意思是甚麼
這個X呢是表達我們輸出要使用16進位的方式輸出輸出後你會發現視窗跳出一個位址
這就是DLL存放在裡面的一個位址而這個位置我們要用在哪裏呢
在CreateRemoteThread(hProcess, NULL, 0, lpStartAddress, Return, 0, NULL);這條裡面的Return
原先這裡是申請一個記憶體給DLL存放那現在我們要從程式中移除DLL
那當然是放他的所存在的記憶體位址
所以這邊會打上return=0x7BD60000
我們先分兩篇上下來講述強制卸載DLL,最近要忙看書又要上班真的好後悔前面沒有先備稿QQ,好了話不多說了先跑去看書,我們明天見。