看流星社区

 找回密码
 注册账号
查看: 3516|回复: 8

智能更懂你的心:智能虚拟Api,一行代码搞定!

[复制链接]

该用户从未签到

发表于 2011-3-12 09:11:39 | 显示全部楼层 |阅读模式
介绍 :本源码介绍了Api Inline Hook的妙用,通过Api Hook被动找到编译器加载我们Dll的时候,然后自己内存加载,避免被OD等调试器查到Dll。
该技术的原理很简单,不过实现需要Hook的Api比较多,因为采用了虚拟Api,原有Api查找dll很吃力,Hook了3个函数:
GetModuleHandleA
GetProcProcess
LoadLibraryExA
作用当然是模拟了整个加载过程以及函数处理
不知道是易语言的问题还是神马,总之Hook了这3个以后才能正常执行,汗颜。。。。
例程演示了以下内容:
1.智能虚拟API
2.使用原来的api声明,照样可以调用dll,避免了一个一个的写call,麻烦!

只需启动执行一行代码:Install_Hide()即可搞定所有问题咯~!

UpDate To  V1.1.0.0 :

增加SDK配套演示,进行了一些简单的升级。

修正了一些概念,增加了UnInstall_Hide功能,用于释放资源。该功能使用后

将自动释放已经被虚拟的dll部分,并且释放所有钩子。

针对先前版本出现的未知异常进行修复,目前测试版本无异常问题。

名称:智能虚拟Api模块

作者:ps520[LCG]&[UpK]&[DFJG]&[SyS]
功能:
所有经由LoadLibraryExA(LoadLibraryA)加载的dll,如果在本代码执行之前未被加载,将被自动
虚拟化加载。
目的:
替换凌月保护插件.ec中不给力的2个API保护函数。

描述:
通过InlineHook挂接3个api函数:
1.LoadLibraryExA(LoadLibraryA)
2.GetModuleHandleA
3.GetProcAddress
分别实现功能。

LoadLibraryExA:获得所需加载的库地址
GetModuleHandleA:拦截Api调取,通过查表的形式找到已经存储在内存中的DllHandle。
GetProcAddress:模拟GetProcAddress,主要是系统函数太不给力了,必须稍微模拟下。[代码貌似写复杂了,可以直接用我内置的汇编函数返回]

基本流程就是这样:

LoadLibraryA转向自己的函数,函数内模拟dll,并把相关信息填充到一个表里,表里有dll name和dll handle。
GetModuleHandleA判断是否为自己虚拟化的函数,如果是,返回handle。
GetProcAddress被调用后,主要是用来强化一下API的能力,否则找不到我的Api函数。


一点都不难的模块,写了我三年,蛋疼了我三个月。完成直接放源码得了。你懂的


附加带源码了,模块是李光的apihook,感谢baby修正了一个错误

游客,如果您要查看本帖隐藏内容请回复

该用户从未签到

发表于 2011-3-12 16:40:12 | 显示全部楼层
API。

该用户从未签到

发表于 2011-3-14 09:21:09 | 显示全部楼层
一行代码搞定!

该用户从未签到

发表于 2011-8-8 19:36:56 | 显示全部楼层
jjjjjjjjjjjjjjjj

该用户从未签到

发表于 2011-8-10 10:26:12 | 显示全部楼层
来看看怎么样

该用户从未签到

发表于 2011-9-19 10:48:23 | 显示全部楼层
厉害呀,向你学习

该用户从未签到

发表于 2011-9-23 12:56:16 | 显示全部楼层
说得挺详细的,功能.简介.源码都有了,顶你

该用户从未签到

发表于 2011-10-11 06:01:06 | 显示全部楼层
功能.简介.源码都有了

该用户从未签到

发表于 2011-11-10 10:56:14 | 显示全部楼层
看看这是什么
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-29 07:16

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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