吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 41|回复: 0
收起左侧

[学习记录] 记录学习如何编写ida7.7插件

[复制链接]
Albert1x 发表于 2024-11-23 17:33

记录学习一下怎么编写并实现一个ida插件,本文创建的是基于ida7.7api的插件demo(nopAll),仅作参考

创建好文件夹

创建一个nopAll.py(插件名.py),和一个文件夹,文件夹分别是一个空的init.py文件,和一个nopall.py文件

编写插件

首先编写nopAll.py文件,nopAll.py文件用于来进行插件的声明和初始化

import idautils
import idaapi
import idc
import ida_bytes

class nopAll(idaapi.plugin_t):  # 继承 idaapi.plugin_t
    """
    插件类
    """
    flags = idaapi.PLUGIN_UNL
    comment = "--------nop all--------"

    wanted_name = "nopAll"  # 插件的名称,在IDA界面导航栏中显示 Edit->Plugins->myplugin
    wanted_hotkey = "Alt-F9"  # 插件的快捷键
    help = "......"

    def init(self):
        """
        初始化方法
        """
        idaapi.msg("----- try to nop all ------")

        # 导入python目录下的功能模块
        idaapi.require("nopAll")
        idaapi.require("nopAll.nopall")

        return idaapi.PLUGIN_OK  # return PLUGIN_KEEP

    def run(self, arg):
        nopAll.nopall.main()  # 注意这里的调用方式是从python中模块的文件夹开始

    def term(self):
        idaapi.msg("success")

def PLUGIN_ENTRY():
    """
    实例化插件对象
    """
    return nopAll()

再编写文件夹中的nopall.py文件(其里面为实现插件功能的代码)

import ida_bytes
import idautils
import idc
import idaapi

def main():
    start_addr = 0
    end_addr = 0
    for seg in idautils.Segments():
        if idc.get_segm_name(seg) == '.text':
            start_addr = idc.get_segm_start(seg)
            end_addr = idc.get_segm_end(seg)
    if end_addr != 0:
        for i in range(start_addr, end_addr):
            ida_bytes.del_items(i)
    print('success')

if __name__ == '__main__':
    main()

将其拉入plugins文件夹

将以上创建的文件以及文件夹拉入ida的plugins文件夹中即可。

参考文章
https://blog.csdn.net/cswenrou/article/details/132709996
https://blog.csdn.net/qq_35056292/article/details/89421793

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 00:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表