如何在OD加载程序遇到入口点之前执行代码之二:静态装载DLL
来源:互联网 发布:厦门市金马甲网络 编辑:程序博客网 时间:2024/05/17 06:42
编译器:VS2010
需要的知识:DLL的编写和使用
1.dllmain.cpp
// dllmain.cpp : Defines the entry point for the DLL application.#include "stdafx.h"BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:MessageBoxA(NULL,"DLL_PROCESS_ATTACH","TEST",MB_OK);break;case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:MessageBoxA(NULL,"DLL_PROCESS_DETACH","TEST",MB_OK);break;}return TRUE;}
DLL_PROCESS_ATTACH:表示该DLL第一次装载进进程空间中执行的代码
DLL_PROCESS_DETACH:表示该DLL脱离进程空间时候执行的代码
MessageBoxA函数在windows.h头文件中
2.dllTesxt.cpp
#include "stdafx.h"#include "dllTest.h"#include <iostream>using namespace std;void Show(){MessageBoxA(0,"DIAT","",MB_OK);}3.dllTest.h
#ifndef TestDll_H_#define TestDll_H_#ifndef MYLIBDLL#define MYLIBDLL extern "C" _declspec(dllexport) #endifMYLIBDLL void Show();#endif4.dllTest.def
LIBRARY "dllTest"EXPORTSShow @1
************************************************************************************
编译链接生成两个文件dllTest.dll和dllTest.lib
建另外一个工程
1.dll.c
#include<stdio.h>#include"dll.h"#include<windows.h>int main(){MessageBoxA(0,"1","1",0);printf("1");Show();printf("2");MessageBoxA(0,"2","2",0);}
2.dll.h
#pragma comment(lib, "dllTest.lib")#ifndef TestDll_H_#define TestDll_H_#define MYLIBDLL #ifdef __cplusplus extern "C"#endif__declspec(dllimport) MYLIBDLL void Show();#endif3.编译链接生成*.exe文件,用OD载入
参考资料:
1.《windows核心编程》
2.《Windows PE权威指南》
----http://blog.csdn.net/pickupyourrevolution
- 如何在OD加载程序遇到入口点之前执行代码之二:静态装载DLL
- 如何在OD加载程序遇到入口点之前执行代码之一:线程局部存储
- VS2005 设置DLL程序无入口点
- 如何让一段程序在main函数之前执行
- 如何让一段程序在main函数之前执行的
- 如何将程序的执行文件和静态加载动态库放在不同的目录
- 如何使得代码在main函数之前/之后执行
- 如何在每个页面加载之前运行一段java代码
- 程序如何执行和程序入口
- 10.OD-强制在OEP前加载dll
- 10.OD-强制在OEP前加载dll
- 检测到 LoaderLock Message Microsoft.DirectX.dll”正试图在 OS 加载程序锁内执行托管代码。
- 在 RequireJS 之前预先装载某些代码块
- 模块shimgvw.dll已加载,但找不到入口点DllRegisterServer
- 找不到DLL入口点
- 可执行程序的入口点在哪里?
- 通过修改程序入口点实现dll注入
- OD加载程序在retn停下的问题
- 静态库和动态库编译比较
- UML类图关系表示方法
- FFMPeg代码分析:av_read_frame()函数的内部构造
- cocos2d-x 植物大战僵尸(二)
- Extjs4中的Form之文件上传filefield
- 如何在OD加载程序遇到入口点之前执行代码之二:静态装载DLL
- IOS线程
- MMU,cache,裸机嵌入式C编程还有带操作系统的编程
- C++学习连载—合并排序及其遇到的问题
- CentOS自动获取IP
- 安装php模块igbinary
- 关于LineChart使用上的一些体会与经验分享
- 文件框设置
- UITextView添加圆角边框