MemViewer 1.0 for OllyDbg v1.0 and Immunity Debugger v1.8x

这个插件的功能,就是创建额外的内存窗口,以便同时查看多个不同地区内存的数据。虽然strongod提供了几个不同的内存地址切换的功能,但是不是非常直观,对于数据的变化也不便于进行实时观察,效果就是上图看得到的这个样子(Immunity Debugger v1.8x)。

功能以及改变:

1.绿色区域是新创建的内存个窗口,这个是没有边界的,不能进行拖放或者设置大小的操作。
 
2.将左侧的内存窗口的滚动条移到了左边,以便于区分。
 
3.可以创建其他类型的内存窗口
Continue Reading

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,那么最简单的办法就是升级一下吧。说实话我也没有比较下每次升级都有什么区别,但是高版本的能用就用高版本的吧。

Continue Reading

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》 。至于原理文章中已经解释的很清楚了,着了也就没有必要进行详细的说明了。

Continue Reading

Immunity Debugger 1.83 SDK

虽然知道ImmDbg的调试器是从OD的源代码的基础上改进来的,SDK差别也不是很大,但是从网上找了一下却始终没有找到下载的地方。直到今天下载一个Imm插件的时候从源代码里找到了1.83的SDK,当然对于最新的ImmDbg这个sdk开发的插件也是可以用的。

其实整个SDk在OD的基础上对一些函数进行了封装,如是而已,那么如果有源代码将代码从OD迁徙到Imm还是比较容易的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
////////////////////////////////////////////////////////////////////////////////
//////////////////////////// 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
 
////////////////////////////////////////////////////////////////////////////////
Continue Reading