DLL加载问题
来源:互联网 发布:拍拍贷淘宝买满标流程 编辑:程序博客网 时间:2024/06/14 22:10
今天打算研究下白利用的时候出各种问题,复习下dll加载。
1.普通dll文件
int add(int a,int b){return a+b;}
查看输出表为空
2._declspec申明
_declspec(dllexport) int add(int a,int b){ return a+b;}
导出函数名为?add@@YAHHH@Z,产生一个lib文件,需要在link下添加此lib才能extern到函数,或者在调用程序中申明 _declspec(dllimport) int add(int a,int b)
3.添加DEF文件
LIBRARY 3EXPORTSadd
没发生名字改编
4.loader
#include "windows.h"#include "iostream.h"void main(){ HINSTANCE h; h=LoadLibrary("3.dll"); typedef int (*func_add)(int a,int b); func_add add=(func_add)GetProcAddress(h,"add"); cout<<add(3,5)<<endl;}
成功加载
5.动态加载message
loader
#include "windows.h"#include "iostream.h"void main(){ HINSTANCE h; h=LoadLibrary("3.dll"); typedef void (*func_sw)(HWND); func_sw sw=(func_sw)GetProcAddress(h,"ShowMessage"); sw(FindWindow(NULL,"loader"));}
dll
#include "windows.h"int add(int a,int b){ return a+b;}void ShowMessage(HWND h1){ MessageBox(h1,"1","1",NULL);}
4.dllmain中直接调用MessageBox
dll
#include "windows.h"#include "stdio.h"void ShowMessage();BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){ switch (fdwReason) { case DLL_PROCESS_ATTACH: MessageBox(NULL,"1","1",MB_OK); break; case DLL_PROCESS_DETACH: break; } return TRUE;}void ShowMessage(){ MessageBox(NULL,"1","1",MB_OK);}
成功。。。。。
5.dll中定义函数内部调用MessageBox,dllmain中调用该定义函数
dll
#include "windows.h"#include "stdio.h"void ShowMessage();BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){ switch (fdwReason) { case DLL_PROCESS_ATTACH: ShowMessage(); break; case DLL_PROCESS_DETACH: break; } return TRUE;}void ShowMessage(){ MessageBox(NULL,"1","1",MB_OK);}
loader
#include "windows.h"#include "iostream.h"void main(){ HINSTANCE h; //LoadLibrary("USER32.dll"); h=LoadLibrary("3.dll"); system("sleep");}
成功显示
阅读全文
0 0
- 混合 DLL 加载问题
- DLL加载问题
- DLL加载问题
- 问一个DLL加载问题
- 静态加载dll的问题
- 关于DLL加载的问题
- dll加载问题的解决方法
- dll文件的加载问题
- dll加载问题的解决方法
- 关于反射加载DLL的问题2
- 无法加载php_curl.dll模块的问题..
- 修复VS2008 "加载DLL时出错"问题
- 记一次加载Dll失败的问题
- C#中加载dll的问题
- 关于DLL路径加载顺序的问题
- loadlibrary加载三方dll失败问题。
- SQLite dll加载遇到的问题
- 关于DLL路径加载顺序的问题
- 逻辑回归的前因后果
- 数据结构之排序
- ubuntu 16.04 配置安装opencv3.1.0
- [UVA] 11212 Editing a Book
- RecycleView
- DLL加载问题
- Java字节流学习记录(3)--字节流InputStream及其字节输入流的子类
- LeetCode # 737 Sentence Similarity II
- Masonry学习之Layout Guides
- 极大似然估计
- [大数据-linux基础]linux ssh远程连接出现IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
- angular4中日期格式的用法
- Oracle 创建 split 和 splitstr 函数
- 在Oracle中执行动态SQL的几种方法