VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: iceboy

[原创] 【暑假礼物】挂钩实现通过API名字空间调用任意函数

[复制链接]
发表于 2012-7-6 03:51:58 | 显示全部楼层
其实不用那么复杂,直接替换类成员地址执行一段shellcode获取kernel32的基址就无敌了的,而且全程只需要一个api够了.

获取kernel32基址后根据pe结构获取loadlibrary函数地址然后全部自己call

点评

不优雅  发表于 2012-7-6 10:19
回复 支持 反对

使用道具 举报

发表于 2012-7-15 15:40:51 | 显示全部楼层
LZ的DllFunctionCall Hook再加上从内存加载DLL http://www.vbgood.com/thread-103577-1-1.html就无敌了
回复 支持 反对

使用道具 举报

发表于 2012-7-15 20:41:59 | 显示全部楼层
有啥实用价值???

点评

……  发表于 2012-7-16 00:26
回复 支持 反对

使用道具 举报

发表于 2012-7-16 03:22:14 | 显示全部楼层
特意认证了邮箱,进来回复一下。
回复 支持 反对

使用道具 举报

发表于 2012-7-16 03:24:57 | 显示全部楼层
这个是我目前看到的最好的函数任意调用的方案了。其他方式的都比这?嗦的多。包括高级编程里介绍的那个Function Delegator,得申明类型库。写实现。
不过这种方式也有不完美的地方,就是字符串参数会有问题,当然是VB本身对API调用时字符串参数强制做转换的机制造成的

点评

字符串一律不用string,而是用long,编码什么的手工搞定就好  发表于 2012-7-25 10:13
回复 支持 反对

使用道具 举报

发表于 2012-7-25 07:58:36 | 显示全部楼层
学习一下,看着不错!
回复 支持 反对

使用道具 举报

发表于 2012-7-30 10:54:01 | 显示全部楼层
Pretty~~
回复 支持 反对

使用道具 举报

发表于 2012-8-3 13:50:12 | 显示全部楼层
我也比较热衷于vb6
回复 支持 反对

使用道具 举报

发表于 2012-8-10 11:32:19 | 显示全部楼层
楼主分析的很是透彻...谢谢楼主的分享
回复 支持 反对

使用道具 举报

发表于 2012-8-13 19:32:29 | 显示全部楼层
有谁认真测试这个代码了没?
这种方法,该函数被调用一次,后面就会默认调用最初赋予的地址了。
比如,在Sub Main()中在最后加上一行,就可以测出效果了。
Sub Main()
    Call RegisterApi("mydll", "MyApiFunction", AddressOf MyApiFunctionImpl)
    Call EnableHook
    MsgBox CStr(MyApiFunction())
    Call DisableHook
    MsgBox CStr(MyApiFunction())
End Sub
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-8-10 10:56

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表