ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

写ida脚本也有一段时间了,一直有个痛点是找不到比较好的方法热重载脚本来实时改动生效,导致开发效率老慢了,故总结下比较友好的环境搭配。

ida脚本开发,使用ida热加载插件让你开发脚本更高效。

github地址:https://github.com/0xeb/ida-qscripts, 这位老外是个知名视频网站小博主,挺多小妙招的





下载源码


//1.下载 ida-cmake
cd /path/to/ida/idasdk/plugins && 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.环境变量添加 IDASDK//mac or linuxexport 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即生效

ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

◆windows 环境
//1.设置环境变量setx IDASDK /path/to/ida/idasdk//2.使用visual studio打开,测试环境为vs2022,打开后在cmakefile中看情况设置//3.vs 点击 项目--> qscripts的 CMake设置,在下面设置才能编译64位的dll

ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)
//4.将 qscripts.dll qscripts64.dll 复制到 /path/to/ida/plugins




运行图


◆ida 运行图

  • mac or linux

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

  • windows

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)




pycharm 配置 idapython开发环境


◆代码提示配置

  • 打开pycharm的setting –> python interpreter –> showall

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

  • 点击这个图标

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

  • 添加ida目录下的python3

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

  • 验证

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

◆动态调试

  • pycharm 新增一个remote debug

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

  • 点击pycharm debug按钮,此时pycharm会循环监听目标端口

  • ida打开qscripts进行加载和监听

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

  • 命中断点

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

◆热加载

  • ida-qscripts勾选指定idapython脚本后,当修改脚本后,会触发插件reload实现重新载入脚本,自动更新上去了




clion 配置 idacpp开发环境(这里三个端一样)


选择cpp插件的原因肯定是性能了,毕竟开发起来麻烦,但是c++默认比py快20倍,在某些场景很难不用吧,比如一个混淆代码的块有上千个,测试用python的d810跑这种大型函数+单规则处理,耗时5分多钟,电脑cpu i9了

◆代码提示配置

  • camkefile中添加ida目录

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)


    • 这边导入就不报错了

    • ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

◆简单的插件模板

#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",
""
};
//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)
编译64位插件定义EA64即可

◆修改ida-cmake的addons.cmake改编译后的插件生成目录

  • 修改 LIBRARY_OUTPUT_DIRECTORY 、RUNTIME_OUTPUT_DIRECTORY_${cfg} 属性,改为/path/to/ida/plugins

◆热重载

  • 1.模板定义了插件名byeobf,需要创建两个文件 byeobf.py 和 byeobf.py.deps.qscripts,确保插件名要一样

  • 2.byeobf.py内容
    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内容
    /triggerfile /keep /Applications/IDAPro/ida.app/Contents/MacOS/plugins/byeobf64.dylib
    • 改为你要触发的插件绝对路径

  • 4.将byeobf.py 和 byeobf.py.deps.qscripts 放到 /path/to/ida/plugins

  • 5.重启ida打开qscripts,导入并双击 byeobf.py,此时你每次重新编译idacpp改动都会被自动载入到ida中了

  • 6.效果图请看 ida-qscripts项目

◆搭配热重载动态调试

  • 1.clion –> run –> Attach to Process –> 选择你的ida进程号, 后续这个附加不用关闭

  • 2.设置断点

  • 3.触发等待命中,开始愉快的带着debug环境开发吧!




vs 配置 idacpp开发环境 idapython环境


- 这里大差不差都参考上述改动即可

ida-win 7.7下载:https://bbs.kanxue.com/thread-276531.htm



ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)


看雪ID:初恒

https://bbs.kanxue.com/user-home-788622.htm

*本文为看雪论坛优秀文章,由 初恒 原创,转载请注明来自看雪社区

ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

# 往期推荐

1、区块链智能合约逆向-合约创建-调用执行流程分析

2、在Windows平台使用VS2022的MSVC编译LLVM16

3、神挡杀神——揭开世界第一手游保护nProtect的神秘面纱

4、为什么在ASLR机制下DLL文件在不同进程中加载的基址相同

5、2022QWB final RDP

6、华为杯研究生国赛 adv_lua


ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)


ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

球分享

ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

球点赞

ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

球在看

原文始发于微信公众号(看雪学苑):ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux)

版权声明:admin 发表于 2024年1月12日 下午6:00。
转载请注明:ida脚本开发环境配置idapython&idacpp三端环境(win、mac、linux) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...