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在一系列編譯器的標準庫檔案裡自動找出呼叫的函式。一般的反彙編軟體對於各種開發庫顯得無能為力,只能給出其反彙編...