PDF下载链接:http://bbs.pediy.com/attachment.php?attachmentid=83753&d=1382016529
Nanomite – Graphical Debugger for x64 and x86 on Windows
Affinic Debugger GUI for GDB(Windows/MaxOS/Linux)
Affinic Debugger GUI, aka. ADG, uses multiple document interface(MDI) design so that it can open multiple source viewers and one assembly code viewer. The surrounding docking widgets are fully movable and provides various functionality. They are console, stack, breakpoint, source list, watch, register and command pool widgets.
Ollydbg/Immdbg Mem Viewer Source Code
开头先说句废话,有的时候软件更新后发现越更新越烂了,操,比如opera的这次更新。
这个东西是这篇文章中的源代码:http://www.h4ck.org.cn/2012/10/memviewer-1-0-for-ollydbg-v1-0-and-immunity-debugger-v1-8x/
代码地址:http://code.google.com/p/ollydbg-mem-viewer/
下载地址:http://code.google.com/p/ollydbg-mem-viewer/downloads/list
MemViewer 1.0 for OllyDbg v1.0 and Immunity Debugger v1.8x
这个插件的功能,就是创建额外的内存窗口,以便同时查看多个不同地区内存的数据。虽然strongod提供了几个不同的内存地址切换的功能,但是不是非常直观,对于数据的变化也不便于进行实时观察,效果就是上图看得到的这个样子(Immunity Debugger v1.8x)。
功能以及改变:
1.绿色区域是新创建的内存个窗口,这个是没有边界的,不能进行拖放或者设置大小的操作。
2.将左侧的内存窗口的滚动条移到了左边,以便于区分。
3.可以创建其他类型的内存窗口
Immunity Debugger 1.8x Wow64 Plugin v2.0.0.1
Immdbg的版本比较多,本来是想依靠版本号来进行区分的,但是发现得到的版本号都是110,这个版本号和Od1.1的版本号是一样的,后来想用CRC计算,但是这个方法就又麻烦了,于是想了一个灰常简单的办法,至于是什么就不说了。哈哈,说出来丢人,于是就兼容了一下1.8x版本,其实也就是1.83和1.85.上图是1.83的版本效果。
下图是1.83版本的效果:
如果有什么问题就吱一声吧,如果用的是1.7x版本的Immdbg,那么最简单的办法就是升级一下吧。说实话我也没有比较下每次升级都有什么区别,但是高版本的能用就用高版本的吧。
Immunity Debugger 1.85 Wow64 Plugin v1.0.0.1
大多数的逆向分析人士还是喜欢在XP下进行一系列的分析共做,我也是比较喜欢XP的兼容性和稳健型。但是在除此之外的时间用的基本都是Windows 7 64bit的系统,因为对于32位的XP来说,8G的内存已经成了浪费,虽然偶尔还是会切换到XP下,但是也只能识别2.3G的内存,由于平时不怎么用也就不关心这个鸟系统到底能识别多少内存了。在看雪学院有篇文章是关于如何让xp支持大内存的,但是我的测试效果是直接让膝系统分区表挂掉,于是后来也就懒得试了~
但是在Win7 64位的系统下进行调试会出现诸多的问题,比如上图就是很明显的例子,这个东西和Ollydbg 1.1遇到的状况是一样的。详细可以参考这篇文章:《OllyDbg v1.10 And Wow64》 。至于原理文章中已经解释的很清楚了,着了也就没有必要进行详细的说明了。
Immunity Debugger 1.83 SDK
虽然知道ImmDbg的调试器是从OD的源代码的基础上改进来的,SDK差别也不是很大,但是从网上找了一下却始终没有找到下载的地方。直到今天下载一个Imm插件的时候从源代码里找到了1.83的SDK,当然对于最新的ImmDbg这个sdk开发的插件也是可以用的。
其实整个SDk在OD的基础上对一些函数进行了封装,如是而已,那么如果有源代码将代码从OD迁徙到Imm还是比较容易的:
////////////////////////////////////////////////////////////////////////////////
//////////////////////////// IMPORTANT INFORMATION /////////////////////////////
// 1. Export all callback functions by name, NOT by ordinal!
// 2. Force 4 byte alignment of immDbg structures!
// 3. Set default char type to unsigned!
// 4. Read documentation!
#ifndef __PLUGIN_H__
#define __PLUGIN_H__
#pragma pack(push, 4) // Force 4 byte alignment of structures
#ifndef _CHAR_UNSIGNED // Verify that character is unsigned
#error Please set default char type to unsigned (option /J)
#endif
#define ODBG_Plugindata IMMDBG_Plugindata
#define ODBG_Plugininit IMMDBG_Plugininit
#define ODBG_Pluginmainloop IMMDBG_Pluginmainloop
#define ODBG_Pluginsaveudd IMMDBG_Pluginsaveudd
#define ODBG_Pluginuddrecord IMMDBG_Pluginuddrecord
#define ODBG_Pluginmenu IMMDBG_Pluginmenu
#define ODBG_Pluginaction IMMDBG_Pluginaction
#define ODBG_Pluginshortcut IMMDBG_Pluginshortcut
#define ODBG_Pluginreset IMMDBG_Pluginreset
#define ODBG_Pluginclose IMMDBG_Pluginclose
#define ODBG_Plugindestroy IMMDBG_Plugindestroy
#define ODBG_Paused IMMDBG_Paused
#define ODBG_Pausedex IMMDBG_Pausedex
#define ODBG_Plugincmd IMMDBG_Plugincmd
////////////////////////////////////////////////////////////////////////////////