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

Continue Reading

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.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

////////////////////////////////////////////////////////////////////////////////
Continue Reading

Hide Debugger for Immunity Debugger v1.8x

"""
(c) Mars Security. 2009-2012
Institute Of Information Serurity From Mars
Email:root@h4ck.ws
U{By obaby.}
"""
#sys.path.append("C:\\Program Files\\Immunity Inc\\Immunity Debugger\\Libs")

import immlib
import immutils
def main(args):
    imm = immlib.Debugger()
    #hide debugger by wipe the BeingDebugged flag in PEB struct.
    imm.writeMemory (imm.getPEBAddress() + 0x2,"\x00")
    #disable the process enume
    process32first = imm.getAddress("kernel32.Process32FirstW")
    process32next = imm.getAddress("kernel32.Process32NextW")
    function_list = [process32first, process32next]
    patch_bytes = imm.assemble("SUB EAX,EAX\nRET 8")
    for address in function_list:
        opcode = imm.disasmForward(address,nlines = 8)
        #imm.writeMemory(opcode.address,patch_bytes)
    
    return "[*] PEB BeingDebugged flag cleared ! Debugger Hided~!"

该脚本用于去掉基于IsDebugPresent函数的调试检测。将上面的内容保存为hidedbg.py放入immdbg的PyCommands目录下,然后在immdbg的命令窗口中执行即可。 smile