首页
社区
课程
招聘
[原创]ida7.2 dll插件编写与高亮插件实现(源码)
发表于: 2019-8-24 17:40 11567

[原创]ida7.2 dll插件编写与高亮插件实现(源码)

2019-8-24 17:40
11567

                     

  •    7.2版本插件编写注意      
           ida 在7.x版本中由于主程序都变为64位程序,所以要求插件也变为64位dll,因此在vs工程需要以下修改:
           主要列出比较重要的点和对比32位插件vs设置的变化
           1:在对应的包含目录添加sdk include目录(需要注意的是如果要对F5伪代码窗口进行操作,需要将ida程序plugin目录中hexrays.hpp防到目录下)
           2:预处理器同样是添加__NT__;__IDP__(编译64位版本需多加宏 __EA64__ )
           3:附加库目录对应要修改为lib\x64_win_vc_32(这个是编写处理32位程序的lib库,若要编写64位的那么对应变为 x64_win_vc_64)
           4:dll的名称有要求,由以前的.p64和.plw 对应64位和32位变更为 xxx64.dll 和 xxx.dll
           
           其中最主要的是ida.lib的路径,若选错,会报fatal error错误
           
  •   高亮插件实现
             实现主要功能如下 :
                1: “(”和“)”的对应点击高亮,跨行匹配
                  
                      
                2:“{” 和 “}” 段落之间双击高亮,点击{ 和 }所在行,能找到对应的段,快捷键J可以实现快速跳转
                

                3:段落之间的颜色显示可以自行选择,快捷键alt+3或者菜单按钮中选择点击,设置后重启有效
                 
                
       
                工程, 代码如附件,已上传
               githhub地址:https://github.com/RevSpBird/HightLight
            

              PS:
              2019-08-26
              1:修正崩溃问题
              2:经验证,第一行代码(函数声明)由于无颜色配置- 开头和结尾均为SCOLOR_HIDNAME   "\x17" ,没有SCOLOR_SYMBOL    "\x09"标志,应该可以塞入颜色代码,暂无添加,主要函数头的()遇到的不是很复杂。
              
           主要列出比较重要的点和对比32位插件vs设置的变化
           1:在对应的包含目录添加sdk include目录(需要注意的是如果要对F5伪代码窗口进行操作,需要将ida程序plugin目录中hexrays.hpp防到目录下)
           1:在对应的包含目录添加sdk include目录(需要注意的是如果要对F5伪代码窗口进行操作,需要将ida程序plugin目录中hexrays.hpp防到目录下)
           2:预处理器同样是添加__NT__;__IDP__(编译64位版本需多加宏 __EA64__ )
           3:附加库目录对应要修改为lib\x64_win_vc_32(这个是编写处理32位程序的lib库,若要编写64位的那么对应变为 x64_win_vc_64)
           4:dll的名称有要求,由以前的.p64和.plw 对应64位和32位变更为 xxx64.dll 和 xxx.dll
           
           其中最主要的是ida.lib的路径,若选错,会报fatal error错误
           
  •   高亮插件实现
             实现主要功能如下 :
                1: “(”和“)”的对应点击高亮,跨行匹配
                  
                      
                2:“{” 和 “}” 段落之间双击高亮,点击{ 和 }所在行,能找到对应的段,快捷键J可以实现快速跳转
                

                3:段落之间的颜色显示可以自行选择,快捷键alt+3或者菜单按钮中选择点击,设置后重启有效
                 
                
       
                工程, 代码如附件,已上传
               githhub地址:https://github.com/RevSpBird/HightLight
最后于 2019-8-27 16:21 被SpBird编辑 ,原因:
上传的附件:
收藏
免费 2
支持
分享
最新回复 (56)
雪    币: 68
活跃值: (782)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享
2019-8-24 19:23
0
雪    币: 449
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢楼主
2019-8-24 21:23
0
雪    币: 6940
活跃值: (2760)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢楼主分享
2019-8-24 21:26
0
雪    币: 35070
活跃值: (7145)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5

和这两个感觉 异曲同工啊 ~~ 
2019-8-24 21:55
0
雪    币: 169
活跃值: (1105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
记不住颜色设置,麻烦修复一下
2019-8-25 09:09
0
雪    币: 310
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
jfztaq 记不住颜色设置,麻烦修复一下
测试重启ida后颜色是生效的,这个颜色是对 { }进行设置的。
2019-8-25 10:25
0
雪    币: 169
活跃值: (1105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
SpBird 测试重启ida后颜色是生效的,这个颜色是对 { }进行设置的。
奇怪了,我这里怎么不行,remeber已经勾选了,重启以后恢复原来的颜色的,是不是和绿色版有关系
2019-8-25 12:33
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
9
非常有用,感谢分享~~~
最后于 2019-8-25 15:20 被bxc编辑 ,原因:
2019-8-25 15:19
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
10
基于IDASDK73又编译了个IDA64的,见13楼。
最后于 2019-8-25 17:16 被bxc编辑 ,原因:
2019-8-25 15:21
0
雪    币: 740
活跃值: (1394)
能力值: ( LV9,RANK:150 )
在线值:
发帖
回帖
粉丝
11
感谢,收藏一波
2019-8-25 15:28
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
12
64位版本好像不工作。
2019-8-25 15:36
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
13
之前编译64位版本少了个__EA64__定义导致不工作,重新上传下。

上传的附件:
2019-8-25 17:15
0
雪    币: 169
活跃值: (1105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
bxc 之前编译64位版本少了个__EA64__定义导致不工作,重新上传下。
谢谢分享,试试看你的行不行
2019-8-25 18:08
0
雪    币: 310
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
bxc 之前编译64位版本少了个__EA64__定义导致不工作,重新上传下。
是的,多谢提醒 ,64位版本我遗漏了
2019-8-25 18:54
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
16
ninebell 和这两个感觉 异曲同工啊 ~~ 
最后一个图,X64DBG和IDA同步的,是什么插件啊。
2019-8-25 18:54
0
雪    币: 310
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
bxc 最后一个图,X64DBG和IDA同步的,是什么插件啊。
ret_sync
2019-8-25 18:56
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
18
反馈一个bug:


当鼠标去选择函数头的文本时,会导致IDA挂掉。
就是第1行。

2019-8-25 22:41
0
雪    币: 8
活跃值: (2531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
bug还是不少。应该是判定条件
2019-8-25 23:43
0
雪    币: 1366
活跃值: (3726)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
20
运行报错
2019-8-26 00:54
0
雪    币: 557
活跃值: (2123)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
21
好东西啊,谢谢分享
2019-8-26 00:56
0
雪    币: 310
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
方向感 运行报错
有ida版本截图吗?报错可否说下重现步骤,我修正下
2019-8-26 09:52
0
雪    币: 310
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
bxc 反馈一个bug: 当鼠标去选择函数头的文本时,会导致IDA挂掉。就是第1行。
谢谢反馈,当时写的时候有一个指针是没做越界处理,感觉正常情况是没问题,应该是那个问题,我看看我这能否重现
2019-8-26 09:53
0
雪    币: 310
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
能提供版本和相关idb吗 我这测试无运行报错的情况
2019-8-26 09:54
0
雪    币: 7048
活跃值: (3522)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
25
在函数sub_26D0这里可以出现问题,点击(或者选择第一行,都会出现IDA崩溃问题。
IDA版本 7.3。


其它函数没有崩溃,但是标红位置不对:



解压密码私信发出。
最后于 2019-8-26 11:03 被bxc编辑 ,原因:
上传的附件:
2019-8-26 11:01
0
游客
登录 | 注册 方可回帖
返回
//