能力值:
( LV3,RANK:30 )
|
-
-
2 楼
网上有篇文章上讲用字符串颠倒方法实现,
但是我觉的GetProcAddress函数的入参还是没变吧,
感觉应该没什么用
|
能力值:
(RANK:260 )
|
-
-
3 楼
可以不用GetProcAddress,自己从kernel32的PE头开始查找API的地址。
为了防止调试器断点,也可以查到地址后,把函数指针加上一个数,然后自己用汇编补上函数开头被跳过的指令。使用这种方法一定要注意跨平台的问题。
不过通常杀软件钩住的是Nt(Zw)系列的内核原生API,你隐藏WIN32的API,对杀软用处不大。
|
能力值:
(RANK:680 )
|
-
-
4 楼
1. 若AV特征库杀"CreateRemoteThread"字串, 则移动一下字串位置, 或xor下然后GetProcAddress
2. 若AV拦截CreateRemoteThread, 则一般都是Hook SSDT了. 这时把函数指针加2也没用, 使用shoooo
的多次int 2e 也没用(当然shoooo的那个只是为了防跟踪).
这时你要么进R0 恢复SSDT, 要么干掉AV~
P.S 几条拙见, 欢迎拍砖~
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
还没有完全弄明白
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
补充一下 ,如果你想要跨平台的话,就必须动态定位API的地址。一般来说对你要使用的函数名进行hash运算,当从kernel32的导出表里得到所需要的API后,取出相应的RVA,然后加上动态连接库的地址,得到API的绝对地址,下来 调用API就可以了。(前提是没有被HOOK)如果被HOOK了,将kernel32 COPY出来一份重命名,在动态加载重命名的DLL文件,继续定位API,一般都能解决。能不UNHOOK尽量不,很容易蓝屏的说。
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
貌似水平还不够
不过也要学习一下
|
能力值:
(RANK:680 )
|
-
-
8 楼
现在AV都是Hook SSDT的, 重新加载一个新kernel32库对抗R3 Hook 还行. 对抗AV就完全没意义.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
重新写输入表 或者加密输入表 让其在运行中LoadLibraryA GetProcAddress恢复输入表
或者就新加区段 以跳转的方法来更改敏感api
抛砖结束
|
|
|