百度首页 | 百度空间
 
查看文章
 
[Tips] 调试Mercury SMTPD CRAM-MD5的一些tips
2007年11月06日 星期二 下午 12:32

author: void#ph4nt0m.org
date: 2007-11-06

调试Mercury SMTPD CRAM-MD5的一些tips
-------------------------------------------------------------
1. jmp esp(机器码:FFE4)的等效指令: call esp(FFD4), push esp/ret(54C3, 54C2), mov reg,esp/jmp reg, mov reg, esp/call reg.

2. OD中,在整个ring3内存搜索机器码地址的方法:
   Alt+M切换到"内存"窗口.
   Ctrl+B输入机器码.
   od会从低-->高开始搜索,若匹配成功,od弹出机器码所在内存块的"数据"窗口.
   如果想在该块内继续搜索,Ctrl+L搜索本内存块.
   如果不想在此块内搜索,ESC键过掉,Ctrl+L搜索剩下的内存块.
   
3. .tls section(线程局部存储节)在exe启动后进行初始化,Mercury v4.01b的一个跳转地址就是从中找到的.

4. 一个想法:因为不同机器mercury的功能dll加载基址不固定,所以利用Mercury本身的dll地址进行跳转,会不稳定.
   但是这个溢出特殊在于:如果被攻击机器是用loader.exe加载mercury.exe的话,loader.exe会在mercury.exe崩溃后,重启进程.可以尝试以0x10000(64k)粒度(windows加载dll的基址粒度)来手工猜测dll的加载地址.


类别:Tips | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu