首页
社区
课程
招聘
[讨论]大侠们敏感API如何隐藏??????
发表于: 2009-6-7 18:43 4676

[讨论]大侠们敏感API如何隐藏??????

2009-6-7 18:43
4676
比如CreateRemoteThread
如何实现免杀呢?

貌似问这问题有点不厚道!
希望大家拿出来分享!!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 155
活跃值: (29)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
网上有篇文章上讲用字符串颠倒方法实现,
但是我觉的GetProcAddress函数的入参还是没变吧,
感觉应该没什么用
2009-6-7 18:46
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
可以不用GetProcAddress,自己从kernel32的PE头开始查找API的地址。

为了防止调试器断点,也可以查到地址后,把函数指针加上一个数,然后自己用汇编补上函数开头被跳过的指令。使用这种方法一定要注意跨平台的问题。

不过通常杀软件钩住的是Nt(Zw)系列的内核原生API,你隐藏WIN32的API,对杀软用处不大。
2009-6-8 18:46
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
4
1. 若AV特征库杀"CreateRemoteThread"字串, 则移动一下字串位置, 或xor下然后GetProcAddress
2. 若AV拦截CreateRemoteThread, 则一般都是Hook SSDT了. 这时把函数指针加2也没用, 使用shoooo
    的多次int 2e 也没用(当然shoooo的那个只是为了防跟踪).
    这时你要么进R0 恢复SSDT, 要么干掉AV~
    P.S 几条拙见, 欢迎拍砖~
2009-6-8 21:45
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
还没有完全弄明白
2009-6-8 22:28
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
补充一下 ,如果你想要跨平台的话,就必须动态定位API的地址。一般来说对你要使用的函数名进行hash运算,当从kernel32的导出表里得到所需要的API后,取出相应的RVA,然后加上动态连接库的地址,得到API的绝对地址,下来 调用API就可以了。(前提是没有被HOOK)如果被HOOK了,将kernel32 COPY出来一份重命名,在动态加载重命名的DLL文件,继续定位API,一般都能解决。能不UNHOOK尽量不,很容易蓝屏的说。
2009-6-9 00:42
0
雪    币: 155
活跃值: (29)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
貌似水平还不够
不过也要学习一下
2009-6-12 13:00
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
8
现在AV都是Hook SSDT的, 重新加载一个新kernel32库对抗R3 Hook 还行. 对抗AV就完全没意义.
2009-6-12 14:06
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
重新写输入表 或者加密输入表 让其在运行中LoadLibraryA GetProcAddress恢复输入表  
或者就新加区段  以跳转的方法来更改敏感api
抛砖结束
2009-6-17 15:01
0
游客
登录 | 注册 方可回帖
返回
//