[转载]简析Linux与FreeBSD的syscall与shellcode
2009-05-13 04:46:18来源:未知 阅读 ()
又是一个不眠的夜晚,其实这篇文档是不应该发表的,因为保密的原则吧,但是我仔细
google了下,没有类似的文章,而且发表的这部分文档也不至于被认为是什么绝密资料,
但是我还是隐藏了很多发现的内核级别可能存在的问题:)单纯从汇编代码的结构来阐述
下linux与freebsd到底那个更好玩一些.或者说那个运行速度会更快一些:)
我想大家看完这个文档以后,或许会知道到底是Linux稳固?还是FreeBSD稳固?
在本文的最后部分,附加了shellcode的问题,但没有专门的论述.
备注:本文观点仅代表个人观点,如有不对的地方,欢迎大家指正:)以提高本人的水平.
二、编译调试
A:编译选项
Linux :gcc -gdwarf-2 ***.c -o ***
FreeBSD: cc -gdwarf-2 ***.c -o ***
为了调试方便,我使用了上面的选项.
--------------------------------------
对于一般书写shellcode的编译选项一般为:
Linux :gcc -static -o *** ***.c
FreeBSD: cc -static -o *** ***.c
B:调试工具
Linux/Unix下面的调试工具为GDB,但是GDB基于内核的调试有些力不从心,因为GDB的调试是
基于用户模式(User mode).
这里我使用了其它的调试工具,所以下面大家看到的调试代码比较特殊,在这里事先声明.
三、Linux的syscall跟踪
写过shellcode的人都知道syscall是写shellcode的必需品:)当然这种概念只在Linux/Unix
的OS下才存在.最近这段时间因为一个"小小的问题"对Linux内核与FreeBSD的内核级别进行了
跟踪和调试,然后发现一个蛮有意思的问题,自己感觉这个问题可能会与Linux下shellcode与
FreeBSD下shellcode的不同有关系,当然也和系统架构存在一些细微的关系.下面的内容是Linux
下面syscall的一些汇编代码.
在Linux下面,Application调用syscall的代码如下:
420D4330 55 PUSH EBP |
420D4331 89E5 MOV EBP,ESP |->堆栈框架
420D4333 83EC18 SUB ESP,00000018 |
420D4336 897DFC MOV dword ptr [EBP]-04,EDI |
420D4339 8B4D0C MOV ECX,dword ptr [EBP]+0c |
420D433C 8B7D08 MOV EDI,dword ptr [EBP]+08 |->syscall参数
420D433F 8975F8 MOV dword ptr [EBP]-08,ESI |
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- AT&T 汇编指令说明 2009-05-13
- 【转载】freebsd sysctl.conf配置说明 2009-05-13
- 关于转载网页/文章的说明 2009-05-13
- (转载)FreeBSD如何搭建iPhone程序开发环境 2009-05-13
- Removing dead mailing lists from Mailman 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash