xmanday2 IDA逆向从入门到放弃

view/subview/shift+F5
内存断点
区段断点(alt+M).text下断点

ALT  +A改变字符串编码option/string style
edit/export data

设置间接跳转地址
switch
7、IDAPython
IDA自带支持脚本
可以使用几乎所有IDA提供的API
可以快速完成大量重复性操作
方便的了解IDA内部的数据和结构     IDA pro权威指南

8、妙手回春F5出错处理
-HexRays出错处理
格式:XXX:XXX
-positive sp value       成因:IDA会自动分析SP寄存器的变化量,由于缺少调用约定,参数个数等信息,导致分析出错(标准调用约定被调用者清理栈,c调用约定调用者清理)
解决方案:
推荐:在option-general-disssembly-stackpoint
ALT + K 直接修改栈值

-call analysis failed
成因:调用分析失败,未能成功解析参数位置和参数个数  程序会崩溃,程序会提供一个地址
对于间接调用类似call eax可使用设置调用地址
对于直接调用,查看调用目标的type 是否正确,可变参数是引发这种错误的主要原因之一

-cannot convert to microcode
无法转换成伪代码
成因,部分指令无法被反编译
有未设置成指令的数据字节按c将其设置成指令

其次是x86中的rep前缀,比如rep jmp等可以将该指令的第一个字节
-stack frame is too big  
成因:分析栈帧时有异常出现
解决方案:找到明显不合常理的stack 双击进入栈帧界面,按U键盘删除对应的stack
有可能加壳
可能由花指令导致,手动或自动检查并去掉花指令

-local variable allocation failed
分析函数 时,有部分变量对应的区域发生重叠,多见于ARM平台出现point rect等8字节,16字节,32字节结构时尤其多见


解决方案:
1、修改对应参数为多个int
2、修改ida安装目录下的hexrays .cfg的HO_

F5结果不正确
F5会自动删除其认为不可能到达的代码

noreturn函数
解决方案:
双击进入再返回(迫使HEXRays)
ALT+P edit(function)

HEXRAYS高级使用方法
1、自定义寄存器传参数
int __usercall    __userpurge
test<eax>{int al<eax>}

<>中为对应值的位置
2、源码级调试(在f5后可以设置断点)
f8容易跑飞

IDA Processor
打开git上的两个链接
未整理,凑合着看

9、Manual Load
遇到特殊情况
32位和64位的代码混合存在,修改段寄存器
在打开文件后的对话框
shift + E 单独拖出来

10、导入头文件
如果能找到程序的一部分头文件比如程序公开的API接口,可以通过头文件让IDA了解这个结构并辅助分析

H 切换成16进制
11、回复符号

1、找程序的旧版本
大量程序早期版本的符号
对于苹果应用,可以使用appadmin获取低版本应用
酷app
2、Rizzo匹配

可以搜索并借用前人的工作成果 github上https://github.com/devttys0/ida/tree

3、看程序自带的string
自带了大量的符号
4、google搜索源代码CS  IOS

按获得信息搜索源代码,stack overflow答案 CSDN代码
5、自己制作signature

ida提供自动制作signature的工具
请打开IDA SDK68文件夹,找到flair68文件夹

12\多角度切入

win10 14393 允许关闭UAC的运行

注册表 ENableLUA
无法使用内置管理员账户
从商店应用的启动流程入手

13\如何区分用户代码
库函数同样分布在一起
如果发现了——S_

14、搞定需表

HEXRAYScodexplorer
hex rays_tool
HexRaysPyTools下载地址

shift+f6 alt+f8

15、先把程序的后缀名去掉(避免误运行)
绝对不要在真机上运行
推荐打开360或与其同等强度的HPS防御软件(开到最大)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习IDA逆向工程是一项具有挑战性但也非常有趣和有益的技能。以下是一个从零开始学习IDA逆向的步骤和建议。 首先,了解逆向工程的基本概念和原理是很重要的。逆向工程是从现有的二进制代码中分析和理解程序的功能和结构。了解逆向工程的原理和基本术语,例如反汇编、调试、符号化等,可以为学习IDA逆向打下坚实的基础。 其次,下载和安装IDA逆向工程软件。IDA是一款功能强大的二进制代码分析工具,它可以帮助分析和理解程序的结构和功能。在官方网站上下载并安装IDA Pro软件后,可以开始学习其使用方法。 接下来,学习使用IDA逆向工程软件的基本功能和操作。在掌握基本的界面布局、文件载入和导航等操作后,可以开始学习IDA的高级功能,例如反编译、导入和导出函数等。 并且,学习IDA逆向工程还需要不断地练习和实践。通过分析和逆向不同的二进制程序,可以提高自己的技能和经验。开始逆向简单的示例程序,逐渐尝试逆向复杂和真实世界的程序。 此外,加入逆向工程的社区和论坛也是很有帮助的。在社区中与其他逆向工程师交流和分享经验,可以学习到更多的技巧和技术。 总结起来,学习IDA逆向工程需要对逆向工程的原理和术语有一定的了解,掌握IDA软件的基本功能和操作,并进行实践和练习。通过持续学习和实践,可以逐渐提高自己的逆向工程技能。 ### 回答2: 学习IDA逆向工程是一项艰巨但有趣的任务。对于从零开始学习IDA逆向工程的初学者来说,以下是几个建议。 首先,了解逆向工程的基础知识和概念是非常重要的。理解计算机的内部工作原理、汇编语言、操作系统等基础知识,可以帮助我们更好地理解IDA逆向工程的过程和原理。 其次,熟悉IDA的界面和功能。IDA逆向工程中最流行的工具之一,具有强大的反汇编和静态分析功能。学习如何打开二进制文件、分析代码、查看函数和变量等,能够帮助我们有效地使用IDA逆向工程。 然后,阅读相关的学习材料和教程。有许多关于IDA逆向工程的书籍、在线教程和博客等资源可供学习。通过阅读这些材料,可以深入了解IDA逆向工程的技术和技巧。此外,还可以参加相关的培训课程或研讨会,与其他逆向工程师交流和分享经验。 此外,实践是学习IDA逆向工程过程中最关键的一步。通过分析实际的二进制文件,探索其中的逻辑和功能,可以帮助我们提高逆向工程的技能。可以从简单的练习开始,逐渐挑战更复杂的应用程序和算法。 最后,保持热情和耐心。学习IDA逆向工程是一项艰巨的任务,需要不断地学习和实践。没有捷径可走,只有持续的努力才能取得进步。保持对逆向工程的热情,耐心地解决问题和挑战,相信自己的能力,最终会取得成功。 总结起来,学习IDA逆向工程需要掌握基础知识,熟悉IDA工具,阅读学习材料,进行实践,并保持热情和耐心。通过不断地学习和实践,我们可以从零开始掌握IDA逆向工程。 ### 回答3: 从零开始学IDA逆向可能需要一些时间和耐心,但是通过一步一步的学习和实践,你可以逐渐掌握IDA逆向的技巧和知识。 首先你需要了解逆向工程的基本概念和原理。逆向工程是通过分析和修改已编译的程序,以获取其中的信息和功能。了解逆向工程的基本概念可以帮助你更好地理解IDA的工作原理。 接下来你可以下载和安装IDA软件。IDA是一款功能强大的逆向工程工具,它可以帮助你分析和修改已编译的程序。在安装完成后,你可以打开IDA并导入一个可执行文件进行分析。 在开始分析之前,你需要了解IDA的基本界面和功能。IDA界面通常包括一个反汇编窗口用于显示程序的汇编代码,一个图形窗口用于显示程序的控制流图,以及一些工具栏和菜单用于执行各种操作。了解和熟悉IDA界面可以帮助你更高效地进行逆向分析。 逆向分析通常从程序的入口点开始。你可以在IDA中找到程序的入口点,并从那里开始分析程序代码。了解程序的控制流和函数调用可以帮助你理解程序的基本结构和功能。 逆向分析的重要部分是分析程序中的函数。IDA可以帮助你自动识别程序中的函数,并生成函数调用图。通过分析函数的参数、返回值和局部变量,你可以理解函数的功能和作用。 最后,进行反汇编和调试是逆向分析的重要步骤。通过反汇编,你可以将程序中的机器代码转换为汇编代码,进一步分析程序的执行流程和功能。IDA也提供了调试功能,可以帮助你在逆向分析过程中跟踪程序的执行并进行动态分析。 总之,学习IDA逆向分析需要时间和耐心,但通过系统学习和实践,你可以逐渐掌握IDA工具的使用技巧,并深入理解程序的内部结构和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值