03 IDA逆向分析

2021-10-17 21:54:07 字數 3166 閱讀 3922

idapython的文件

在ida的plugins目錄下建立 listfuncplugin.py檔案

# -*- coding:utf-8 -*-

import idautils

import idaapi

import idc

from datetime import datetime

class

listfunc

(idaapi.plugin_t)

:# 繼承idaapi.plugin_t

flags = idaapi.plugin_unl

comment =

"list all function in this binary file"

wanted_name =

"listfunc"

# 外掛程式的名稱

wanted_hotkey =

"alt-f9"

#外掛程式的快捷鍵

help

="coming soon..."

definit

(self)

:# 初始化方法

idaapi.msg(

">>> my plugin starts. \n"

.format

(datetime.now())

)# 匯入python目錄下的功能模組

idaapi.require(

"listfunc"

) idaapi.require(

"listfunc.listfuncinte***ce"

)return idaapi.plugin_ok

defrun(self,arg)

: listfunc.listfuncinte***ce.main(

)# 進行呼叫

defterm

(self)

: idaapi.msg(

">>> my plugin ends. \n"

.format

(datetime.now())

)# 外掛程式的入口函式

defplugin_entry()

:return listfunc(

)

在ida的python目錄下建立listfunc資料夾,在其中建立

__init__.py

listfuncinte***ce.py 檔案

其中 listfuncinte***ce.py 的內容為

# -*- coding:utf-8 -*-

import idautils

import idaapi

import idc

from datetime import datetime

defmain()

:for i, func in

enumerate

(idautils.functions())

: func_name = idc.getfunctionname(func)

# 函式名

if"dllmain"

in func_name:

print

(" is the valu function "

.format

(i, func_name)

)if __name__ ==

'__main__'

: main(

)

如上,ida外掛程式的大致就這樣

當如何,python目錄建立類不是強制的,在plugin資料夾的py外掛程式可以不引用其他類

run.py

# -*- coding:utf-8 -*-

import os

import subprocess

dir_path =

"c:/tools/teest/1"

# 原始資料的資料夾

ida_path =

"c:/tools/ida_pro_v7.0_portable/ida.exe"

# ida的路徑

ana_file =

"c:/tools/teest/analysis.py"

# 分析檔案的路徑

defrun()

:for root, dirs, files in os.walk(dir_path)

:for file_name in files:

file_path = os.path.join(root, file_name)

cmd =

" -lc:/tools/mylog.log -c -a -s "

.format

(ida_path, ana_file, file_path)

p = subprocess.popen(cmd)

p.wait(

)if __name__ ==

"__main__"

:print

("begin"

) run(

)

analysis.py

# -*- coding:utf-8 -*-

import idautils

import idaapi

import idc

defdo_some_analyse()

: danger_func =

["main"

,"dllmain"

,"gets"

,"read"

,"strin**printfworkerw"

]for func in idautils.functions():

if idc.getfunctionname(func)

in danger_func:

print

(hex

(func)

, idc.getfunctionname(func)

)def

main()

: idc.wait(

) do_some_analyse(

) idc.exit(0)

if __name__ ==

"__main__"

: main(

)

iOS 逆向工具 IDA

1.ida簡介 逆向工程中神器之一!3.ida視窗功能 a.function window 展現分析出來的所有函式 雙擊函式,main window 顯示函式體 class dump 匯出的都是oc函式,可讀性高 ida還將所有subroutine羅列出來 subroutine的名稱是乙個代號,分析...

ELF檔案逆向IDA的使用

elf檔案格式分類 重定向檔案 relocation file 包含 和資料,如靜態鏈結庫 可執行檔案 executable file 共享目標檔案 shared object file 鏈結器使用這種檔案同其他可重定向檔案鏈結 核心轉儲檔案 core dump file 程式意外終止,系統將中斷狀...

170516 逆向 IDA的FLIRT技術和總結

1625 5 王子昂 總結 2017年5月15日 連續第226天總結 a.加密與解密ida flirt100 b.ida的另一項卓越的能力是庫檔案快速識別與鑑別技術 flirt 它可以使ida在一系列編譯器的標準庫檔案裡自動找出呼叫的函式。一般的反彙編軟體對於各種開發庫顯得無能為力,只能給出其反彙編...