逆向分析_DLL基礎(4)

DLL基礎(4) 變量導出
dll項目,名稱:dllvar

dllvar.h

//dllvar.h
#include<windows.h>

#ifdef DLLVAR_EXPORTS
#define DLLVAR_API __declspec(dllexport)
#else
#define DLLVAR_API __declspec(dllimport)
#endif

extern DLLVAR_API int nDllvar;

nDllvar全局導出變量

dllvar.cpp

//dllvar.cpp
#include<windows.h>
#include "dllvar.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			//nDllvar = 100;
			break;
		case DLL_THREAD_ATTACH:
		case DLL_THREAD_DETACH:
		case DLL_PROCESS_DETACH:
			break;
    }
    return TRUE;
}

DLLVAR_API int nDllvar = 10;
創建win32 console項目加載dll

把dllvar.lib dllvar.dll複製到該項目下。
dllvar_main.cpp

//dllvar_main.cpp
#include <stdio.h>
#pragma comment(lib,"dllvar.lib")
extern int _declspec(dllimport) nDllvar;

int main(int argc, char *argv[])
{
	printf("%d ",nDllvar);
	nDllvar = 2;
	printf("%d ",nDllvar);
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章