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

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

2009-3-26 02:31
8567
用实例说明将IDC脚本移植为IDA plugin的方法及要点。

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

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

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

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (4)
雪    币: 141
活跃值: (1125)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
mavermaver 3 2009-3-30 16:46
2
0
原来在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;
}
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixupeng 2009-3-31 11:42
3
0
学习下。。。
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
nkspark 3 2009-3-31 12:11
4
0
这就是重写了一遍啊~~~~~

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

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