首页
论坛
课程
招聘
[分享]ida小插件
2020-5-7 18:40 2672

[分享]ida小插件

2020-5-7 18:40
2672

写了个IDAPython小插件,将光标放在目标地址上,按下"j",就可以将光标所在地址拷贝到剪切板,可以解决f5到C代码的时候不方便获取地址的问题。

将文件保存为XXXX.py后拷贝到<IDA Install Path>/plugins文件夹下即可,打开ida会自动加载。


# -*- coding: utf-8 -*-
import idaapi
import idc
import clipboard

try:
    class Kp_Menu_Context(idaapi.action_handler_t):
        def __init__(self):
            idaapi.action_handler_t.__init__(self)
        @classmethod
        def get_name(self):
            return self.__name__
        @classmethod
        def get_label(self):
            return self.label
        @classmethod
        def register(self, plugin, label):
            self.plugin = plugin
            self.label = label
            instance = self()
            return idaapi.register_action(idaapi.action_desc_t(
                self.get_name(),  # Name. Acts as an ID. Must be unique.
                instance.get_label(),  # Label. That's what users see.
                instance  # Handler. Called when activated, and for updating
            ))
        @classmethod
        def unregister(self):
            """Unregister the action.
            After unregistering the class cannot be used.
            """
            idaapi.unregister_action(self.get_name())
        @classmethod
        def activate(self, ctx):
            # dummy method
            return 1
        @classmethod
        def update(self, ctx):
            if ctx.form_type == idaapi.BWN_DISASM:
                return idaapi.AST_ENABLE_FOR_FORM
            return idaapi.AST_DISABLE_FOR_FORM
    class Searcher(Kp_Menu_Context):
        def activate(self, ctx):
            self.plugin.search()
            return 1
except:
    pass

class CopyHereAddress_Plugin_t(idaapi.plugin_t):
    comment = "Copy Here Address"
    help = "todo"
    wanted_name = "CopyHereAddress"
    wanted_hotkey = "J"
    flags = idaapi.PLUGIN_KEEP
    def init(self):
        try:
            Searcher.register(self, "CopyHereAddress")
        except:
            pass
        return idaapi.PLUGIN_KEEP
    
    def term(self):
        pass
    def run(self, arg):
        if(idc.BADADDR != idc.here()):
            copyContent = str(hex(idc.here())).replace("L","")
            print(copyContent)
            clipboard.copy(copyContent)

# register IDA plugin
def PLUGIN_ENTRY():
    return CopyHereAddress_Plugin_t()



第五届安全开发者峰会(SDC 2021)议题征集正式开启!

收藏
点赞0
打赏
分享
最新回复 (10)
雪    币: 121
活跃值: 活跃值 (210)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
十年一刻 活跃值 2020-5-7 19:08
2
0
6
雪    币: 6003
活跃值: 活跃值 (590)
能力值: ( LV4,RANK:156 )
在线值:
发帖
回帖
粉丝
月落之汀 活跃值 1 2020-5-8 10:07
3
0
按下tab键切回汇编就完事了,用不着这么麻烦
雪    币: 14
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
kanuxe168 活跃值 2020-5-9 10:57
4
1
,可以微信联系么,我的微信cody0736
雪    币: 5726
活跃值: 活跃值 (358)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
NightGuard 活跃值 1 2020-5-13 01:37
5
0
月落之汀 按下tab键切回汇编就完事了,用不着这么麻烦
切换到汇编之后,复制地址,有快捷键不?
雪    币: 6003
活跃值: 活跃值 (590)
能力值: ( LV4,RANK:156 )
在线值:
发帖
回帖
粉丝
月落之汀 活跃值 1 2020-5-13 01:53
6
0
NightGuard 切换到汇编之后,复制地址,有快捷键不?
没有,可以搞个lazyida
雪    币: 5726
活跃值: 活跃值 (358)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
NightGuard 活跃值 1 2020-5-13 02:54
7
0
月落之汀 没有,可以搞个lazyida
这个不错,学习了
雪    币: 3607
活跃值: 活跃值 (1463)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
昵称好麻烦 活跃值 2020-5-13 10:35
8
0
月落之汀 没有,可以搞个lazyida
没毛病,我才看到,w快捷键拷贝地址,正考虑怎么把这个帖子删了
雪    币: 6003
活跃值: 活跃值 (590)
能力值: ( LV4,RANK:156 )
在线值:
发帖
回帖
粉丝
月落之汀 活跃值 1 2020-5-13 15:59
9
0
昵称好麻烦 没毛病,我才看到,w快捷键拷贝地址,正考虑怎么把这个帖子删了[em_1]
就当学习贴咯,总有人会用到,我当时也踩了不少坑
雪    币: 256
活跃值: 活跃值 (179)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ZwCopyAll 活跃值 2020-5-13 18:47
10
0
不错
雪    币: 56
活跃值: 活跃值 (719)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
实都 活跃值 2020-5-15 18:52
11
0
就当教人写插件了
游客
登录 | 注册 方可回帖
返回