交流
功能说明:该程序是一个基于易语言开发的PE/DLL内存加载与动态调用工具,核心功能是:将外部DLL(如crackme.dll)以“内存加载”方式注入当前进程地址空间,绕过系统常规DLL加载机制(即不依赖LoadLibrary),并从中导出、调用指定函数(如test)。程序主界面含一个按钮,点击后调用test函数(传入参数1和2),计算结果并弹窗显示“1 + 2 = 3”;而test函数实际位于外部DLL中,其内部逻辑在被调用前会主动弹出提示框“把我去掉就可以了~”,标题为“DLL保护”,表明该DLL已植入轻量级反分析/反调试干扰逻辑(典型CrackMe风格)。程序底层通过自研PELoader_DLL类实现完整PE解析与重定位:包括校验DOS/NT头有效性、计算映像总大小、申请可执行内存、复制节数据、处理重定位表(DoRelocation)、修复导入地址表(FillRavAddress)、设置内存页权限为可执行读写,并支持DLL_PROCESS_ATTACH/DETACH生命周期管理。此外提供取函数地址(取函数)、取入口点(取入口)、取基址(取基址)等辅助接口,具备完整内存DLL加载器(In-Memory DLL Loader)能力。整体定位为逆向工程辅助工具或软件保护验证程序,用于演示DLL内存加载技术、函数动态调用及基础保护提示机制,非通用应用软件,而是面向安全研究或CrackMe练习场景的技术型小工具。
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮1_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ test
======程序集1
| |
| |------ _启动子程序
| |
| |------ test
======PELoader_DLL
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 加载
| |
| |------ 释放
| |
| |------ 取函数
| |
| |------ 取入口
| |
| |------ 取基址
| |
| |------ CheckDataValide
| |
| |------ CalcTotalImageSize
| |
| |------ GetAlignedSize
| |
| |------ CopyDLLDatas
| |
| |------ DoRelocation
| |
| |------ FillRavAddress
| |
| |
======help
| |
| |------ mAlloc
| |
| |------ mFree
| |
| |------ 取低字
| |
| |------ 取高字
| |
| |------ Call
| |
| |------ _Call
| |
| |
======程序集1
| |
| |------ _启动子程序
| |
| |
======调用的Dll
| |
| |---[dll]------ RtlMoveMemory
| |
| |---[dll]------ RtlMoveMemory_整数_1
| |
| |---[dll]------ RtlMoveMemory_整数_2
| |
| |---[dll]------ RtlMoveMemory_字节集_1
| |
| |---[dll]------ RtlMoveMemory_字节集_2
| |
| |---[dll]------ RtlMoveMemory_数组_整数_1
| |
| |---[dll]------ RtlMoveMemory_数组_整数_2
| |
| |---[dll]------ RtlMoveMemory_数组_短整_1
| |
| |---[dll]------ RtlMoveMemory_数组_短整_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_DOS_HEADER_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_DOS_HEADER_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_NT_HEADERS_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_NT_HEADERS_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_SECTION_HEADER_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_SECTION_HEADER_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_BASE_RELOCATION_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_BASE_RELOCATION_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_IMPORT_DESCRIPTOR_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_IMPORT_DESCRIPTOR_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_IMPORT_BY_NAME_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_IMPORT_BY_NAME_2
| |
| |---[dll]------ RtlMoveMemory_IMAGE_EXPORT_DIRECTORY_1
| |
| |---[dll]------ RtlMoveMemory_IMAGE_EXPORT_DIRECTORY_2
| |
| |---[dll]------ lstrcpyn_字节集
| |
| |---[dll]------ VirtualAlloc
| |
| |---[dll]------ VirtualFree
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ LoadLibrary
| |
| |---[dll]------ FreeLibrary
| |
| |---[dll]------ VirtualProtect
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ RC4
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。