首页
社区
课程
招聘
[原创][shellcode框架(三)] 修复shellcode框架的小bug
发表于: 2017-3-27 14:18 8434

[原创][shellcode框架(三)] 修复shellcode框架的小bug

2017-3-27 14:18
8434

    在我使用这个shellcode框架的时候,发现了如下Bug 

    1.我们利用函数名hash获取函数地址时,按照我们的想法是获取一个地址这个地址就是函数的实现位置;

    但有时候返回给我的地址确实这样的

如上图,返回地址其实指向字符串。如果我们不去解决这个问题,当我们去调用这些函数的时候,就会造成崩溃。

这个问题解决的办法:

1.规避这种问题,当使用某函数是,直接使用深层提供者(dll)中的函数。如上图的WSAStartup ,直接使用ws2_32.dll提供的WSAstartup。但这种办法也有问题,看下图

有些函数如上图,提供者是kernelbase.dll,而kernelbase.dll在xp上是不存在的。这就是这种办法的尴尬之处。


2. 递归调用去自动获取深层次的地址。

    这种办法是当发现地址是字符串地址的时候,如MD5Init函数返回地址是NTDLL.MD5Init ,这里我们分别获取到dll名和函数名,去loadlibrary NTDLL,将函数名MD5Init计算为hash再次去调用利用hash获取函数地址的函数。最终会获取真正的函数实现地址。

由于编辑器显示问题,代码会乱,放附件了


这样我们就可以准确获取所需的函数地址了。

调用的时候别忘记把LoadLibarary地址一早获取,并每次都传入。


附上小工具。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 938
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主你发的代码。。。。 pNameBase=( DWORD* )( (DWORD)LibBaseAddr+pExpog-
2017-3-27 14:46
0
雪    币: 69
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
msf
3
这个编辑器问题呵呵
2017-3-27 15:57
0
雪    币: 8
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
msf 这个编辑器问题呵呵
楼主能重新编辑下这个帖子么- -
2017-3-27 16:47
0
雪    币: 3738
活跃值: (3872)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
dll转发链这个坑我也遇见了,也处理了。我是找kernel32!HeapAlloc时发现的。
2018-9-6 11:22
0
雪    币: 246
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了,大佬 !
2020-6-1 13:24
0
游客
登录 | 注册 方可回帖
返回
//