ida脚本也有一段时间了,一直有个痛点是找不到比较好的方法热重载脚本来实时改动生效,导致开发效率老慢了。固总结下比较友好的环境搭配
1
2
3
4
5
6
7
|
/
/
1.
下载 ida
-
cmake
cd
/
path
/
to
/
ida
/
plugin && git clone https:
/
/
github.com
/
0xeb
/
ida
-
cmake
/
/
2.
下载 ida
-
qscripts
cd
/
path
/
to
/
ida
/
idasdk
/
plugins && git clone https:
/
/
github.com
/
0xeb
/
ida
-
qscripts
/
/
3.
下载idax
cd
/
path
/
to
/
ida
/
idasdk
/
plugins
/
ida
-
qscripts &&
git clone https:
/
/
github.com
/
0xeb
/
idax
|
-
mac or linux 环境
1
2
3
4
5
6
|
/
/
1.
环境变量添加 IDASDK
/
/
mac
or
linux
export IDASDK
=
/
path
/
to
/
ida
/
idasdk
/
/
2.clion
直接打开 ida
-
qscripts
/
/
3.clion
-
-
settings
-
-
build,execution,deployment 中 新增配置,并设置 cmake ida插件变量(
64
位的需要)
/
/
4.
将编译出来的 qscripts.dylib qscripts64.dylib
or
qscripts.so qscripts.so 手动复制到
/
path
/
to
/
ida
/
plugins 中,重启ida即生效
|
-
windows 环境
1
2
3
4
|
/
/
1.
设置环境变量
setx IDASDK
/
path
/
to
/
ida
/
idasdk
/
/
2.
使用visual studio打开,测试环境为vs2022,打开后在cmakefile中看情况设置
/
/
3.vs
点击 项目
-
-
> qscripts的 CMake设置,在下面设置才能编译
64
位的dll
|
1
|
/
/
4.
将 qscripts.dll qscripts64.dll 复制到
/
path
/
to
/
ida
/
plugins
|
-
ida 运行图
-
mac or linux
-
windows
-
-
代码提示配置
-
打开pycharm的setting --> python interpreter --> showall
点击这个图标
添加ida目录下的python3
-
pycharm 新增一个remote debug
-
-
-
点击pycharm debug按钮,此时pycharm会循环监听目标端口
-
ida打开qscripts进行加载和监听
-
ida-qscripts勾选指定idapython脚本后,当修改脚本后,会触发插件reload实现重新载入脚本,自动更新上去了
-
代码提示配置
-
camkefile中添加ida目录
这边导入就不报错了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <ida.hpp>
#include <idp.hpp>
#include <loader.hpp>
#include <kernwin.hpp>
plugmod_t *idaapi init(
void
)
{
msg(
"Plugin initialized!\n"
);
return
PLUGIN_OK;
}
void
idaapi term(
void
)
{
msg(
"Plugin term()\n"
);
}
bool
idaapi run(
size_t
arg)
{
msg(
"Plugin run()\n"
);
return
true
;
}
plugin_t PLUGIN =
{
IDP_INTERFACE_VERSION,
PLUGIN_UNL,
//需要这个标记,否则不触发qscripts
init,
term,
run,
""
,
""
,
"Sample plugin"
,
""
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/
/
cmakefile 配置
cmake_minimum_required(VERSION
3.26
)
project(ByeObf)
set
(CMAKE_CXX_STANDARD
20
)
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY /Applications/IDAPro8.3/ida.app/Contents/MacOS/plugins)
include_directories(
/
Applications
/
IDAPro
/
ida.app
/
Contents
/
MacOS
/
plugins
/
hexrays_sdk
/
include
/
)
include_directories(
/
Applications
/
IDAPro
/
ida.app
/
Contents
/
MacOS
/
idasdk_pro
/
include
/
)
#导入idaapi的目录
set
(PLUGIN_NAME byeobf)
set
(PLUGIN_SOURCES library.h library.cpp)
set
(PLUGIN_OUTPUT_NAME ${PLUGIN_NAME})
set
(PLUGIN_RUN_ARGS
"-t"
)
include($ENV{IDASDK}
/
ida
-
cmake
/
addons.cmake)
|
-
修改ida-cmake的addons.cmake改编译后的插件生成目录
-
修改 LIBRARY_OUTPUT_DIRECTORY 、RUNTIME_OUTPUT_DIRECTORY_${cfg} 属性,改为/path/to/ida/plugins
-
动态调试
-
这边没测试到搭配了插件能像python那样热重载还能命中得情况,得每次都要手动载入命中
-
热重载
-
1.模板定义了插件名byeobf,需要创建两个文件 byteobf.py 和 byteobf.py.deps.qscripts,确保插件名要一样
-
2.byteobf.py内容
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import
time
import
idaapi
# Give the linker time to finish flushing the binary
time.sleep(
1
)
# Optionally clear the screen:
#idaapi.msg_clear()
# Load your plugin and pass any arg value you want
idaapi.load_and_run_plugin(
'byeobf'
,
0
)
# Optionally, do post work, etc.
|
-
3.deps.qscripts内容
1
|
/triggerfile /keep /Applications/IDAPro/ida.app/Contents/MacOS/plugins/byeobf64.dylib
|
-
4.将byteobf.py 和 byteobf.py.deps.qscripts 放到 /path/to/ida/plugins
-
5.重启ida打开qscripts,导入并双击 byteobf.py,此时你每次重新编译idacpp改动都会被自动载入到ida中了
-
6.效果图请看 ida-qscripts项目
ida-win 7.7下载:
[下载]IDA Pro 7.7.220118 (SP1) 全插件绿色版-资源下载-看雪-安全社区|安全招聘|kanxue.com
IDA
PyHelper
IDA
PyHelper是Interactive Disassembler的
脚本
,可帮助编写
IDA
Python
脚本
和插件。
它通过获取所有可通过
IDA
Python
访问的名称来做到这一点,并使它们在可浏览列表中可用,这些列表可任意排序,扫描(Alt-T)和过滤(Ctrl-F)。 双击列表条目将打开一个单独的视图,其中显示该条目的文档字符串(如果有)。 按Alt-E打开整个模块以供查看。
该
IDA
Python
项目与
Python
3兼容。 为了与较旧版本的
IDA
兼容,您可能需要查看此项目的
Python
2分支。
IDA
代码
使用
IDA
Code可以轻松地在
IDA
环境
中执行和调试
Python
脚本
,而无需离开Visual Studio Code。 VS Code扩展可以在找到。
IDA
Code仍处于早期状态,预计会出现错误。如果遇到任何问题,请打开一个新的问题。
速度:快速创建和执行
脚本
。
调试:随时附加一个
Python
调试器。
兼容性:
IDA
Code不需要您以特定方式修改
脚本
。可以从
IDA
内部执行所有
脚本
,而无需进行更改。
模块化:
IDA
Code并未广泛使用安全包装器进行线程同步,这使您可以在任何给定时间从任何路径导入任何模块。而是
IDA
Code将
脚本
执行线程与
IDA
主线程同步,以避免性能和意外问题。
IDA
Code支持
Python
2和
Python
3!
要设置
IDA
插件的依赖关系,请运行:
# make sure to use the correct
Python
version
设置调式符号路径,设置
环境
变量:_NT_SYMBOL_PATH=symsrv*symsrv.dll*D:\symbols*http://msdl.microsoft.com/download/symbols/
打开
IDA
的patch
pro
gram菜单打开
ida
gui.cfg文件,找到DISPLAY_PATCH_SUBMENU = NO设置为YES
显示中文字符:修改
ida
...
添加
环境
变量
_NT_SYMBOL_PATH
symsrv*symsrv.dll*D:\symbols*http://msdl.microsoft.com/download/symbols/ (注意:自已事先建好文件夹)
2、在
IDA
安装目录下的cfg下的pdb.cfg文件中设置调式符号路径
PDBSYM_DOWNLOAD_PATH =
IDA
必须是安装版的,我以前用的是免安装版的。
python
版本、
IDA
版本,
IDA
Pyhton版本必须匹配。
python
、
IDA
、
IDA
Python
必须都是32位的或者都是64位的。
安装关键点
下面这些东西必备,缺一不可:
python
27.dll(我安装的是
python
2.7,如果安装的是pyhton2.6那就是py...
删除
IDA
7.0目录\
python
\sip.pyd
删除
IDA
7.0目录\
python
\PyQt5目录
比如你的
python
安装目录是C:\
python
27-x64
添加
环境
变量
PYTHON
HOME=C:\
python
27-x64
QT_QPA_PLATFORM_PLUGIN_PATH=C:\
python
27-x64\Lib\site-packages\PyQt5\plugins\platforms
修改
IDA
7.0目录\plugins\plugins.cfg
;
Python
_editor
Python
_editor 0 0 ;
Python
_editor
1 下载地址
https://xclient.info/s/hex-rays-
ida
-
pro
.html#versions
下载的dmp文件的密码均为xclient.info
2 解决运行
ida
奔溃的方案
参考:https://blog.csdn.net/u010953692/article/details/94907317
下载该文件:https:...
sudo xattr -rd com.apple.quarantine
ida
64.app 即可运行
链接地址???? :链接: https://pan.ba
id
u.com/s/1v3RcCCMlRCT9a01AWk-exA 提取码: r32v
1. 执行菜单的File->New->
Pro
ject… (Ctrl-Shift-N)打开新建工程窗口。
2. 展开左侧的Visual C++项目模板分支,然后选择右侧的
Win
32
Pro
ject条目,输入工程名称,然后点击确定。
3.出现
Win
32Application Wizard
4. 使用默认设置
5. 生成的文件夹及文件
6. VS 解决方案资源...