查看文章
 
[TIPS]用NtAddAtom来搜索shellcode
2009-12-28 13:35
目前search shellcode的主要方法还是用SEH/IsBadReadPtr()/NtDisplayString 系统调用等等,这些方法都各有利弊,例如SEH的方法就不太适用于高版本的操作系统(SafeSeh),IsBadReadPtr()搜索效率以及NtDisplayString的调用号兼容的问题。

Dave/Alex在邮件列表和Twitter上分别谈到了用NtAddAtom来实现搜索shellcode的方法,而且该系统调用在NT以上的系统的调用号都是一致的(0x08),实现起来的代码也比较小。

NTSTATUS
NTAPI
NtAddAtom(IN PWSTR AtomName,
IN ULONG AtomNameLength,
OUT PRTL_ATOM Atom)

NtAddAtom 有三个参数,分别是传入的指针,长度,和传出的Atom指针。NtAddAtom内部是用SEH和 ProbeForRead来判断传入的地址是否可读,并且把可写的指针通过第三个参数返回。

返回值如果是0xc0000033就代表返回的指针是可写的,然后我们就可以直接搜索这个指针指向的内容来判断是否是实现功能的shellcode。

类别:网络安全||添加到搜藏 |分享到i贴吧|浏览(832)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu