IDAPython自动化代码

                                          
           
               

#IDA

单个脚本执行

C:\\Study\\BinaryAnalyse>C://Pwn/IDA/ida64.exe -LC:/mylog.log -c -A -S"C://Study/BinaryAnalyse/analyse.py" C://Study/BinaryAnalyse/datas/crackme0x03.exe

PS:Windows注意-S后的脚本名称需要添加双引号

  • c 表示对要分析的二进制文件生成一个新的IDB文件。 -A表示以autonomous模式运行,如果不加这个选项,则会弹出图形界面。 -S 制定要执行的 plugin script。

批量执行

//analyse.py
import idc 
import idautils 
import idaapi 
from collections import defaultdict

def analysis():
    pass
	# 这里是分析的代码

def main():
    """
    控制器
    """
    idc.auto_wait()  # 等IDA分析完后才执行
    analysis()
    idc.qexit(0)  # 关闭IDA

if __name__ == "__main__":
    main()

批量

//run.py
# -*- coding:utf-8 -*-

# =======Import =======
import os
import subprocess

#C:\\Study\\BinaryAnalyse\\datas
#C:\\Pwn\\IDA Pro 7.6
dir_path = "C://Study/BinaryAnalyse/datas/"  # 原始数据的文件夹
ida64_path = "C://Pwn/IDA/ida64.exe"  # ida64的路径
ana_file = "C://Study/BinaryAnalyse/analyse.py"  # 分析文件的路径

def run():
    for root, dirs, files in os.walk(dir_path):
        for file_name in files:
            file_path = os.path.join(root, file_name)
            cmd = "{0} -LC:/mylog.log -c -A -S\\"{1}\\" {2}".format(ida64_path, ana_file, file_path)
            print(cmd)
            p = subprocess.Popen(cmd)
            p.wait()

if __name__ == "__main__":
    run()

参考链接

IDAPython入门教程 基于IDA7.5_Python3 第一讲 简介与地址获取

Porting from IDAPython 6.x-7.3, to 7.4

IDAPython documentation

IDApython插件编写及脚本批量分析教程_y4ung-CSDN博客_ida python脚本

idapython使用笔记

https://www.keepnight.com/usr/uploads/2020/09/1365696735.pdf

           
       
   
comments powered by Disqus