存档

文章标签 ‘调试’

试用pydbg

2015年10月8日 4 条评论

pydbg是基于Python实现的一个调试器框架,之前看《Python灰帽子:黑客与逆向工程师的Python编程之道》这本书的时候接触过一点,今天再次试用,记录一点使用心得。
0×01. 安装
1. 下载pydbg源码
从 https://github.com/OpenRCE/pydbg 下载 pydbg 的源码,解压后复制到 C:\Python27\Lib\site-packages 文件夹下,注意文件夹重命名为 pydbg;
2. 下载paimei源码
从 https://github.co[......]

继续阅读

分类: Python 标签: ,

DLL调试 之 当前不会命中断点,还没有为该文档加载任何符号

2013年4月5日 没有评论

最近在Visual Studio中调试DLL的时候,老是提示“当前不会命中断点,还没有为该文档加载任何符号”,在写代码写到快要发疯的时候遇到这样的事情,还有比这更糟糕的么?
网上那些乱七八糟的解决方案全然无效,比如删除工程目录下ncb文件之类的,或者配置选项确保生成调试符号之类的,都不是我想要的。后来,是这么解决问题的(其实以前就这么玩过,只是记得不太清楚了):
1. 需要自己弄一个Loader(比如自己写个EXE),这个Loader可以加载要调试的DLL;
2. 在DLL需要下断点的地方加一个[......]

继续阅读

调试器也有MagicNumer——从一个奇葩的错误说起

2013年3月16日 17 条评论

最近太忙,博客也好久没有打理了,主要是没有东西可写,呵呵~
写代码的时候,在delete的时候遇到一个错误,提示“T.exe 中的 0x002a1614 处未处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突”,立刻就被其中的0xFEEEFEEE吸引住了,显然,这样的地址在用户空间(User Space)是不可能用到的,刚好前不久看到一条微博说调试器也有Magic Number,利用16进制构造出一些很有意思的数据,于是马上Google了一下0xFEEEFEEE[......]

继续阅读

一个字节毁掉一段ShellCode

2012年11月20日 6 条评论

暂时告别了一段忙碌的生活,博客还是得打理一下……今天在测试一个FTP服务器程序时,发现仅仅一位一个特殊的字节而破坏了整段ShellCode,调了好久才找到原因,就想写篇博客记录下,顺便感慨下调试的不易。

场景:已经写好了一个Exploit针对此FTP服务器程序并成功绑定一个TCP Shell,现在需要替换为download_exec(下载并执行)ShellCode,于是使用Metasploit生成了一段download_exec的ShellCode,URL为http://localhost/test.exe,可是测试的时候被测程序总是悄然退出,用Ollydbg附加、在0x7FFA4512(jmp esp 是我用来做跳转的)处下硬件执行短点,再次出发溢出条件,发现ShellCode全然面目全非了:[......]

使用Windbg寻找高CPU占用线程

2012年2月17日 没有评论

在一个任务中使用多线程编程,程序运行一段时间后就占满了CPU,严重拖慢系统运行速度。这里所说的高CPU,意思就是一个线程占用了一个CPU的大部分运行时间,如果是单核的CPU,表现为CPU占用近100%;相应的双核的话一个线程会占到50%的CPU。
我的电脑是双核四线程的CPU,所以当一个线程死循环的时候会占用掉25%的CPU时间。具体表现为:运行程序的最开始表现正常,随后会看到CPU占用上升至25%、50%、75%等。在这样的情况下我用Windbg Attach到目标进程,并通过!runaway[......]

继续阅读

分类: 逆向调试 标签: , , ,

VMWare搭建驱动双机调试环境

2011年12月7日 2 条评论

一、虚拟机设置
以XP为例,因为XP相对Vista/Win7要小巧玲珑许多,安装方便,占用的空间也少,而且配置更加简单。在“文件夹选项”中设置显示隐藏文件和显示系统文件,打开系统盘(比如C盘),找到Boot.ini,去掉这个文件的只读属性,用记事本打开Boot.ini,大概的内容如下
二、VMWare设置
关闭虚拟机,来到VMWare之后选择对应的虚拟机,对齐进行设置。选择“Commands”栏中的“Edit Virtual Machine Settings”,单击“Add”按钮增加一个串口,也就是Serial Port,单击下一步,选择“Output to named pipe”,之后进行相应的设置
三、Windbg设置
给Windbg创建一个快捷方式,设置一下这个快捷方式的属性:在快捷方式的目标后面增加一些命令,我这里是:”C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe” -b -k com:port=\\.\pipe\com_1,baud=115200,pipe[......]

Visual Studio调试小技巧

2011年11月22日 2 条评论

记得《Windows核心编程》一书的开头部分讲到了Visual Studio中一个查看错误消息的小技巧,前几天调试程序想用一下,可一时记不起来是什么参数了,所以去网上找了下,发现还有其他小技巧,就顺便记下来,方便以后忘记的时候快速查找。

一、错误代码
不需要GetLastError()之后格式化成数字写Log,然后用Error Lookup查询;或者直接调用API查询对应语言版本的错误信息。在监视窗口中写下$err,hr即可看到详细的错误描述信息,跟Error Lookup一样的效果。[......]

What is a First Chance Exception(什么是第一轮异常)

2011年10月20日 没有评论

当你正在调试程序的时候,你是否曾经看到过消息窗口输出关于“First Chance Exception”(第一轮异常)的信息?也许有人会问,“什么是第一轮异常?”、“出现第一轮异常的提示意味着代码有问题吗?”
什么是第一轮异常?
(1)当一个程序被调试的时候,如果有异常发生调试器会得到通知,这个时候,被调试的应用程序将会被挂起并且调试器决定如何来处理这个异常。当一个异常第一次经过这种机制就是所谓的“第一轮异常”。根据调试器的设置,调试器可能会忽略这个异常并让程序继续执行,或者保持被调试程序的挂起[......]

继续阅读

分类: 逆向调试 标签: , ,

Windbg事后调试

2011年10月14日 没有评论

dump文件生成
如果需要使用Windbg生成dump文件,可以使用.dump命令,该命令可以接/m或/f来生成minidump和fulldump,/m后面还可以接更多的命令控制,如/f控制生成内存dump,通常使用.dump /mf来生成dump,这样的minidump比fulldump包含更多的调试信息。
dump句柄信息
在minidump中如果要把句柄信息业dump出来(如句柄泄漏调试可能需要用到!handle命令),则需要加上/h参数,如.dump /mfh
事后调试器设置
事后调试器[......]

继续阅读

分类: 逆向调试 标签: , ,

句柄泄漏调试经验

2011年10月12日 5 条评论

句柄泄漏检测-简单
在调试之前首先确定是不是真的发生了句柄泄漏,简单的检测方法是通过任务管理器来查看进程的句柄数是不是居高不下,任务管理器默认不显示句柄数,要查看进程的句柄数需要先切换到进程选项卡,然后单击“查看”菜单,选择“选择列”,然后勾选“句柄数”。
句柄泄漏检测-更多信息
任务管理器只能简单检测句柄数,如果要获得更详细的信息,可以使用Process Explorer(官方下载地址为http://technet.microsoft.com/en-us/sysinternals/bb8966[......]

继续阅读

分类: 逆向调试 标签: , , ,