首页
学习
活动
专区
圈层
工具
发布

Wine 应用调试的重器:IDA pro

在上一篇文章《介绍几款 Windows 应用调试的小工具》中介绍了在调试 Wine 应用中的一些小工具,但在面临复杂问题时,就需要特别的手段和工具。...,效果如下: $ deepin-wine8-stable easy_crackme.exe wine version: 8.16 Please input password: hh mistake!...接下来,打开 IDA Rro 8.0。IDA Pro 有 32 位版本和 64 位版本,根据需要分析的软件是 32 位还是 64 位选择对应的版本。...\n 再运行一下 easy_crasckme.exe 程序: $ deepin-wine8-stable easy_crackme.exe wine version: 8.16 Please input...因为这个是最终用户会看到的文本提示,双击该字符串,IDA会跳转到它在数据段中的地址。 选中该字符串所在的行,按下快捷键 X。IDA会弹出一个对话框,显示所有引用了这个字符串地址的代码位置。

50710

如何利用IDA Python浏览WINDOWS内核

为了改变这个现状,今天我准备给大家演示IDA配合上Python之后会有怎样强大的效果。 在这篇文章中,我将给大家介绍如何利用IDA Python来枚举Windows的系统调用表。...如果我们分析的是win32k.sys,在枚举函数ID时需要在表地址上加0x1000。同样的,对于64位Windows10(build 1607)我们也需要进行不同的处理。...利用IDA完成自动化映射 首先我们来看一看需要调用的IDA函数: idaapi.get_imagebase:这个函数将会在我们所查看的模块中返回基地址。...DataRefsFrom将会利用数据引用来遍历表的基地址,但如果目标是新版本的Windows 10系统,我们就需要在基地址上加上相应的值。接下来需要做的就是从表的基地址开始读取连续的值。...希望大家能够喜欢这篇文章,并在日常工作中发现IDA和Python的更多功能。 * 参考来源:zerodayinitiative,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

96940
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 逆向】Android 逆向工具 ( Apktool | IDA | Python )

    文章目录 一、Apktool 二、IDA 三、Python 一、Apktool ---- 参考 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar..., 主要是 获取 AndroidManifest.xml , res 目录下的图片 , 布局 , style 风格配置 , 等 资源文件 ; Android 应用打包时 , 会使用 aapt 对工程中的资源文件进行编译..., 一般情况下将 apk 打开以后 , 都是编译后的资源文件 , 这些文件基本不可读 , 无法理解 ; apktool 工具可以将 Android 项目中编译后的 资源文件反编译 出来 ; 反编译命令..., 将 Java 代码转为 Smali 代码 ; 参考 【Android 逆向】IDA 安装 ( 使用 IDA 分析 so 动态库 ) 博客 ; 三、Python ---- 参考 【开发环境】Windows...中安装 Python 各个版本 ( 下载 Python 各版本 SDK | 安装 Python ) 在 Windows 中安装各个版本的 Python 软件 ; 参考 【开发环境】Windows 安装

    1.6K20

    【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 使用 IDA 打开 arm 动态库文件 | 切换 IDA 中汇编代码显示样式 )

    文章目录 一、使用 IDA 打开 arm 动态库文件 二、切换 IDA 中汇编代码显示样式 一、使用 IDA 打开 arm 动态库文件 ---- 分析 Android SDK 中的 arm 架构的动态库...SDK 安装目录 , 这里替换成自己的 SDK 目录 ; 分析 so 动态库 , 需要使用 IDA 工具 , IDA 工具安装参考 【Android 逆向】IDA 安装 ( 使用 IDA 分析 so...动态库 ) 博客 ; 参考 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | 使用 IDA 打开动态库文件 | IDA 中查找指定的方法 ) 博客 , 打开 D...; 查找 malloc 函数 , 打开 malloc 函数对应的汇编代码 ; 二、切换 IDA 中汇编代码显示样式 ---- IDA 打开文件后 , 默认以图形形式显示汇编代码 ; 右键点击 " IDA...View-A " 空白处 , 弹出一个菜单 , 选择 " Text View " 选项 即可查看汇编语言的文本代码 ; 汇编的文本代码 : 在 " IDA View-A " 显示汇编代码时

    1.7K10

    【Android 逆向】IDA 工具使用 ( 同步指定的 IDA View 视图 | Hex View 数据格式 | 过滤设置 )

    文章目录 一、同步指定的 IDA View 视图 二、Hex View 数据格式 三、过滤设置 一、同步指定的 IDA View 视图 ---- IDA 中可以 同时打开多个 IDA View ( 下图红色矩形框视图...) ; 解析相同的 需要反编译的文件 时 , 可以在多个窗口中 , 查看不同位置的信息 ; 选择 " 菜单栏 / View / Open subviews / Disassembly " 选项 ,...即可打开一个新的 IDA View ; 默认的 IDA View 窗口是 IDA View-A , 打开第二个窗口名称是 IDA View-B , 第三个是 IDA View-C , 如下图所示 :...IDA View-A , IDA View-B , IDA View-C 这 3 个窗口的内容是相同的 ; IDA View 与 Hex View 视图是同步的 , 但是这里有 3 个 IDA...IDA View 进行同步 ; 二、Hex View 数据格式 ---- Hex View 视图中 , 可以选择每个空格相隔开的元素是几个字节 ; 在 Hex View 视图中 , 点击右键 , 选择

    2.8K20

    IDA找到main函数之后的初步分析

    ——————————————————————————————| IDA是静态调试。...| IDA支持的处理器模块取决于procs目录下有多少个文件。...,后面有三个连续的pop,就是在保存寄存器环境; mov ebp,esp;开辟栈帧 mov esp,ebp;关闭栈帧 2. image.png 将开辟的局部变量控空间填充为0cccch的目的是为了程序的健壮性...; rep;重复操作前缀 stos;串操作指令 使用条件:ecx不为0 3.sub_xxxxxx:是解析不出来的; 地址xxxxxx处的子例程(函数) image.png 4.粉色的:就没办法往里面跟了...,已经到达IAT,是系统的东西,是导入的函数 image.png 5.图中有注释的,怕被忽视掉,这里再写一遍, 校验堆栈的代码: cmp ebp,esp; call 0f81109h; mov esp,

    1.6K20

    【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | 使用 IDA 打开动态库文件 | IDA 中查找指定的方法 )

    文章目录 一、使用 IDA 打开动态库文件 二、IDA 中查找指定的方法 一、使用 IDA 打开动态库文件 ---- 分析 Android SDK 中的 x86 架构的动态库 , 动态库位置 : D:\..._Develop\001_SDK\Sdk\build-tools\26.0.3\renderscript\lib\intermediates\x86\libc.so 分析 so 动态库 , 需要使用 IDA...工具 , IDA 工具安装参考 【Android 逆向】IDA 安装 ( 使用 IDA 分析 so 动态库 ) 博客 ; 打开 IDA , 选择 " New " 按钮 , 解析一个新的文件 " Disassemble...libc.so 文件 , 打开该文件 ; 设置文件加载选项 , 默认即可 ; 文件加载完毕 , 解析的内容如下图所示 ; 二、IDA 中查找指定的方法 ---- 选中函数窗口 ( 下图中的蓝色矩形框...) , 按下 Ctrl + F 快捷键 , 弹出搜索栏 ( 下图中的红色矩形框 ) ; 搜索 fork 方法 , 在函数窗口 Function window 中的 fork 函数上 , 双击 , 即可显示右侧的汇编代码

    1.1K10

    IDA和OD的基本使用(持续更新)

    支持PowerPC IDAPython:IDC脚本的Python接口 IDA其他常用的一些插件 IDA FLIRT Signature Database – 用于识别静态编译的可执行文件中的库函数...Find Crypt – 寻找常用加密算法中的常数(需要安装 yara-python) IDA signsrch – 寻找二进制文件所使用的加密、压缩算法 Ponce – 污点分析和符号化执行工具...IDC,可以修改成Python 第二章 OD的简介 OllyDBG可在动态调试过程中实时查看程序反汇编、内存、数据等信息,并可对其进行修改编辑等操作。...OD的窗口 反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。...常用快捷键 断点功能 设置断点 Int3断点:可以有多个,设置在代码上 内存断点:通过设置内存页面属性异常来实现的断点功能,不去修改程序代码 硬件断点:使用调试寄存器设置断点,不会修改程序代码,最多设置

    1.3K10

    IDA 中的大规模路径搜索方法

    本文主要解决的是这么一个问题: 在 IDA 中如何查找两个函数之间的调用路径?...问题似乎很简单,IDA 工具本身就提供了查看调用链路的功能,懂得 IDAPython 的也可以很容易写出下面的程序: def find_path(start, end, path=None):...上述代码本质上是通过递归调用 IDA 的交叉引用接口去查找上一级路径的,这在代码不多的时候问题不大,可一旦遇到过长的调用链路,就可能出现递归调用过深导致栈耗尽而出现异常。...faster2 这题是在上一题的基础上做了一点修改,主要改动是每个函数开头不再检测 counter 的值,而只是单纯加一,每个函数基本都长这样: void sub_40FD44() { ++counter...小结 本文主要是记录和分享了一种在 IDA 中通过非递归去实现的路径搜索算法,其算法核心是将递归的搜索替换为栈+循环的方式,可以应用在大规模的程序中避免递归内存耗尽。

    97120

    适用于IDA Pro的CGEN框架介绍

    一切都始于我想要分析一些MeP代码的时候。我通常在IDA Pro中做逆向工作,但是有一小部分处理器IDA并不支持。幸运的是,objdump可以支持这些小众的处理器架构。...举个例子,如一个指令引用数据,你的模块可以告诉IDA查找那个地址上的数据。如果那个指令执行函数调用,你的模块可以让IDA创建一个函数。与它的名字相反,它其实并没有真正的模拟指令集。...CGEN为所有需要的CPU工具进行定义并输出C/C++代码。开始我想绕开CGEN只是将binutils代码包含到IDA模块中。理论上你的模块没有必要依照上面的方法。...你可以让分析器记录二进制数据,仿真器什么也不做,输出器使用bunutils去生成完整的一行然后进行输出。 然而这样做的话,你本质上并没有使用到IDA的强大功能(寻找交叉引用,栈空间布局等等)。...没用使用到CGEN CPU定义给出的信息也是很可惜的。理论上这些定义足够强大能够生成RTL代码来完成这个过程,所以我们会尽可能的向IDA提供信息。

    1.3K80

    IDA动态调试-没啥卵用的静态加固

    : 第一层加固: 基本上和前面两个链接中的一样:使用encpypt对sub_1527(核心函数)进行加密(字节取反),然后在.init_array中对函数进行内存解密。...第二层加固: 把ELF中可以改动又不影响执行的地方都改了。这个主要是用来吓唬一下小白,稍微懂一点ELF格式的就能修复(不让ida报错)。...看看效果: 在IDA6.6中,直接不能识别ELF文件,只提示了Binary。 在IDA6.8中,仍然能够识别ELF,但是有报错,IDA6.8比6.6确实增强了不少。 ?...先修复so,让IDA不报错,2. 找到解密函数,确认被加密函数的地址空间,dump内存,合并修复。...其实不用,直接使用空白IDA attach 进程,这里需要使用IDA6.8,IDA会根据内存构建视图,此时内存中是已经解密的内容,发现核心函数直接被还原了: ?

    1.3K40

    2025年CTF竞赛逆向工程中难度真实题目解析

    ,或者在Linux/MacOS上使用跨平台工具(如wine、IDA Pro等)分析程序。...)从程序中提取资源数据 使用IDA Pro的资源查看功能查看程序中的资源 在Linux/MacOS上,可以使用wine运行程序,然后使用winedbg进行调试 这里我们使用IDA Pro的资源查看功能来获取...Hacker:Windows资源编辑工具 wine:在Linux/MacOS上运行Windows程序的兼容层 winedbg:wine的调试器 题目8:MacOS程序分析 题目描述:这个MacOS程序中隐藏了...,或者在Linux/Windows上使用跨平台工具(如IDA Pro)分析程序。...有几种方法可以获取flag: 在MacOS平台上运行程序,直接查看输出 使用逆向工程工具分析程序的plist文件和读取flag的逻辑 在Linux/Windows上,使用IDA Pro等工具分析程序的结构和逻辑

    45410

    如何识别IDA反汇编中动态链接库中的函数

    在使用IDA静态反汇编时,如果正在逆向的文件中有动态链接库函数(比如调用了程序自定义so库中的函数),IDA只会显示一个地址,跟进去会发现是延迟绑定中关于plt的代码,无法知道具体调用了哪个函数,对于逆向起来很是麻烦...按道理讲,虽然不能动态调试,静态分析不能看到运行时绑定的地址,但是具体动态链接的过程一定也是根据文件中的信息,所以静态也一定可以知道调用的是哪个函数,但是我没有发现如何使用IDA自动确定(如有高手麻烦留言告诉我...这里面存的全是一样的地址,正如书中写的那样,都还没绑定具体运行时的地址,再跟两步发现到了地址是0的地方,就不理解了,可能是链接器的地址? ? ?...ELF文件中存储了导入的所有函数符号信息,在IDAi的mport窗口中可以看到,不过IDA没有自动显示出来这些函数的地址,但在Linux下使用 readelf -sD 文件名| grep 小写地址 查看该文件可以看到地址动态符号的地址...ELF文件中还存储了needed的动态链接库,IDA中写在了该文件的最开始,向上拉窗口可以看到,我们只要从这些so库中找识别出的函数名即可。

    3.8K70

    为IDA命令行模式增加宏支持功能的插件

    CLI宏是一种生产力工具,可让您在IDA的命令行界面(Python,IDC,WinDbg,BochDbg,Gdb等)中定义和使用静态或动态宏。 ? 用法 安装后,climacros始终处于活动状态。...动态宏 可以定义动态宏,这些宏通过评估返回字符串的Python表达式而得到扩展。例如,该idc.here()命令非常有用,可以缩写为较短的宏,例如$!或${here}。...长形式的宏${here}用于idc.here()表达的定义如下: ? 简短形式$!: ? 当CLI命令中存在宏时,将调用该宏: ? 内联替换 您不必定义宏以便在CLI中进行表达式扩展。...安装 climacros是用C ++编写的,带有IDA的SDK,因此它应该像常规插件一样进行部署。...将插件二进制文件复制到以下任一位置:/plugins%APPDATA%\Hex-Rays/plugins由于该插件使用IDA的SDK而没有其他特定于操作系统的功能,因此该插件应该可以编译为macOS和Linux

    87520
    领券