吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7734|回复: 22
收起左侧

[其他转载] 【分享】我编写的DLL的内存文件加载代码

  [复制链接]
lizhirui 发表于 2016-8-2 23:20
本帖最后由 Cizel 于 2016-8-3 22:30 编辑

为了保密性,有时候我们不想将DLL释放出后进行加载,而想直接在内存中进行加载,我根据PE格式规范用了3天写了这个程序,在VS2015+WIN7 64Bit旗舰版下调试通过。本程序使用Visual C++编写完成

原理如下:
读取DLLPE头获取有关信息
将DLL加载到内存
修复IAT
修复重定向地址
将DLL加入PDR的LDR中的三个双向循环链表中

并且附带了释放函数

以下两个函数是需要外部调用的函数
char* DLLMemLoad(char* DLLFileBuf, DWORD DLLFileSize, char* MemDLLBaseName, char* MemDLLFullName);//DLL内存加载函数,注意为了保证一些DLL模块的正常运行,请保证MemDLLBaseName参数和MemDLLFullName参数的结尾是“.dll”(不区分大小写)

void DLLMemFree(char* DLLMemBaseAddress);//DLL内存释放函数,请在程序结束之前调用它释放加载的DLL,否则程序可能会异常退出


运行易语言编译的一个测试DLL的截图如下:

软件截图.png

源代码中附带了大量的注释,方便阅读。
由于附件过大,所以我将百度云的下载地址上传了,如果大家发现程序有什么BUG请回帖告诉我,我将不胜感激。
源代码下载地址.txt (48 Bytes, 下载次数: 201)

免费评分

参与人数 10吾爱币 +1 热心值 +10 收起 理由
Sa1ka + 1 + 1 谢谢@Thanks!
qaz003 + 1 用心讨论,共获提升!
yyhf + 1 热心回复!
By:刺刀 + 1 用心讨论,共获提升!
我的爱是你 + 1 鼓励转贴优秀软件安全工具和文档!
风霜 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Peace + 1 我很赞同!
StriveMario + 1 用心讨论,共获提升!
Godfather.Cr + 1 用心讨论,共获提升!
sumile + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lizhirui 发表于 2016-8-2 23:36 来自手机
稳定性目前看还不错,就是不知道为什么如果不把ldr中的三个链表恢复原样就结束程序,程序会异常结束,是不是我对链表那部分的操作有什么问题
 楼主| lizhirui 发表于 2016-8-3 09:40
这个函数返回的地址可以直接转换为HMODULE类型作为GetModuleFileName GetProcAddress等函数作为句柄参数使用
sumile 发表于 2016-8-2 23:24
邪恶博士 发表于 2016-8-2 23:27
稳定性咋样啊
cncrypt 发表于 2016-8-2 23:31
不错不错,这个是好东西,支持一下。
13977856649 发表于 2016-8-2 23:46 来自手机
问一下各位老司机,是不是每次回帖都要回答问题啊!
 楼主| lizhirui 发表于 2016-8-2 23:47 来自手机
表示很少用回答问题 你的用户组比较低吧
copit 发表于 2016-8-2 23:50
感谢分享,新手加入注释更有帮助!!
peter_king 发表于 2016-8-3 00:58
感谢!! 测试看看!!
dosnow 发表于 2016-8-3 07:22
不错不错,这个是好东西
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 14:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表