IDA Pro 64bit 插件编译

今天偶尔打开一个64bit的ida数据库的时候提示什么加载插件失败。而问题的关键是自己并没有这几个64位的插件,只有32位的。其实问题也很容易就解决掉了,代码都是自己的,所以直接编译一个64位的插件就可以了。

1.配置管理器中新建一个配置,名称可以随便设置,只要能区分就可以了。

复制设置选择当前的解决方案配置。

Continue Reading

蛋疼的Visual Studio2012 驱动模板创建的工程竟然无法编译

其实安装Visual studio2012的一个主要原因就是原生态的驱动开发支持,但是却发现一件很蛋疼的事情。自带的模板创建的项目没办法编译,提示如下的错误:

出错的代码是如下的几行:

#ifdef SMP_ID
#define VER_SAMPLE_IDENTIFIER_STR SMP_ID
#endif

#ifndef VER_SAMPLE_IDENTIFIER
#define VER_SAMPLE_IDENTIFIER    "SAMPLE_IDENTIFIER"
#endif

#ifdef VER_SAMPLE_IDENTIFIER_STR
resname RCDATA
{
  VER_SAMPLE_IDENTIFIER,
  VER_SAMPLE_IDENTIFIER_STR
}
#endif
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

VS2012 RC installation breaks VS2010 C++ projects

问题就是上面描述的那样“fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt”,本来以为这个情况毕节特殊,后来搜索了一下却发现出现这个问题的大有人在。当然解决方案上面也提到了就是安装Visual Studio2010 sp1补丁。猛击这个链接去下载补丁安装程序:http://www.microsoft.com/zh-cn/download/details.aspx?id=23691

Continue Reading

Visual Studio 2012正式版

今天从看雪学院下载的安装镜像,其实这个东西好久之前就看到了,但是却一直没下载。先说下那个图标,我也感觉是像一个窗户被拧了一下。蛋疼的图标啊。今天在笔记本上装这个东西,由于没有带电源适配器差点电池没电了还没装完。好在比较幸运,最后还剩了14%的电量。

Continue Reading

开源是一种态度

对于开源我并没有什么太高深的理解,只是这两天的事情给我的一些启发而已。在这里简单的表述一下,首先要明确的第一件事情是开源不代表免费,也不代表你拥有代码的全部处置权。这里我不想对于对待的所有的权利进行说明,也不想讨论权利的问题。只是从开源代码的生命周期来看。

其实自从去年开始处理IDA的各种插件开始,接触到很多非常不错的插件,但是很多的插件都是停留在5.0-5.5的状态,并且很多的插件没有提供源代码。像这种插件就只能任由他死去。而对于另外一些开放源代码的插件则可以通过简单的sdk的修正和一些简单的修复就可以重新编译出来支持IDA Pro 6.x以上的版本。而这一些使得代码能够有更长远的生命,也能够让更多的人用到这个东西。于是在无形中代码就变得更加长命。而由于多年以前代码的托管并不是十分方便,于是很多的代码并没有托管到第三方的开源代码服务器上,只能下载到压缩包。

Continue Reading