首页
社区
课程
招聘
[原创]如何将idc脚本移植成IDA plugin程序
发表于: 2009-3-26 02:31 8888

[原创]如何将idc脚本移植成IDA plugin程序

2009-3-26 02:31
8888

用实例说明将IDC脚本移植为IDA plugin的方法及要点。

讲解文章(PDF格式): 如何将idc脚本移植成IDA plugin程序.rar

源代码及在IDA SDK 5.2下编译通过的plugin执行程序: DllEntry_plugin.rar

编译环境:
SDK安装路径为C:\Ida52Sdk\,用Microsoft VC++6.0开发工具编译。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 141
活跃值: (1135)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
2
原来在DllEntry.cpp中是这样模拟SegEnd()的:
static ea_t SegEnd(eat ea)
{
  area_t *area = segs.get_area();
  return segs.endEA;
}

后来发现可以用针对段操作的SDK API getseg(), 其原型为:
inline segment_t *getseg(ea_t ea);
它实际上返回的是(segment_t *)segs.get_area(ea);

于是可以这样构造SegEnd():
static ea_t SegEnd(eat ea)
{
  ea_tsegend_ea;

  segment_t *segm = getseg(ea);
  if(segm != NULL)
    segend_ea = segm->endEA; // API 调用正常
  else
    segend_ea = BADADDR; // 考虑出错情况
  return senend_ea;
}
2009-3-30 16:46
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习下。。。
2009-3-31 11:42
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
4
这就是重写了一遍啊~~~~~

plugin和脚本孰优孰劣?
2009-3-31 12:11
0
雪    币: 141
活跃值: (1135)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
5
plugin和脚本孰优孰劣每个人有不同的看法,不可强求。这里仅是为了学习这两种编程方法而已,想通过这个例子为进一步的学习积累一点经验。因为IDC有一些帮助信息可以参考,而IDA SDK plugins没有任何资料可查,完全靠头文件中的信息去猜想API调用的方法,因此开发难度较大。

个人认为IDC兼容性较好,但执行速度较慢。SDK plugins执行速度较快,但不同版本之间的兼容性不好。执行速度上有点像VB中的p-code与编译后的二进制程序之间的差别。
2009-3-31 12:46
0
游客
登录 | 注册 方可回帖
返回
//