IDA静态动态逆向分析基础

1.JDB和IDA调试步骤2

  (1).JDB调试步骤2

  (2).IDA调试步骤2

  (3).定位函数2

  (4).开始调试2

2.动态调试Android so库函数的方法2

3.strace查看系统调用3

4.IDA静态动态分析的快捷键3

5.gdb调试4

  (1).准备调试4

  (2).修改权限5

  (3).端口转发5

  (4).ps命令查询PID5

  (5).gdbserver attach调试进程5

  (6).运行gdb.exe5

6.常见工具5

  (1).命令工具5

7.OAT/DEX/ELF的文件格式

8.在线加解密5

  (1).二维码解码器5

  (2).在线JSON校验格式化工具5

  (3).在线解密6

  

1.JDB和IDA调试步骤

(1).JDB调试步骤

①adb shell am start -D -n {pkgname}/{Activity}

②ida android_server放到手机,以root身份运行,PC端idapro远程连接、 attach、下断点

③adb forward tcp:8700 jdwp:{pid}

④jdb -connect “com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700”

 

(2).IDA调试步骤

①adb shell am start -D -n {pkgname}/{Activity}

②adb forward tcp:23946 tcp:23946

③ida android_server放到手机,以root身份运行,PC端idapro远程连接、 attach、下断点

④打开DDMS,查看端口

⑤jdb -connect “com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700”

 

(3).定位函数

①使用快捷键Ctrl+S打开segment窗口,选择so文件,这里可以使用Ctrl+F进行搜索;同时这里需要记下so文件的起始地址(A8924000)用另一个IDA打开so文件,找到对应函数的偏移位置,在上面的图可以看到偏移为(00000E9C)

 

绝对地址=基址+偏移地址=A8924000+00000E9C=A8924E9C

 

②按下快捷键G,输入A8924E9C即可跳转到正确的函数,然后使用F2或者点击前面的小圆点下一个断点  

图片

图片

 

(4).开始调试

①按F9或点击绿色三角形按钮运行程序,触发断点,接着按F7/F8进行调试

 

2.动态调试Android so库函数的方法

图片

./android_server p2345

p端口号

 

adb shell ps | grep 包名

 

netstat -ano | findstr "8900"

 

tasklist | findstr "1220"

 

可以通过命令强制杀死pid为2816的进程

taskkill /f /pid 1220

 

adb forward tcp:23946 tcp:23946

 

adb forward tcp:8700 jdwp:25631

 

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

 

3.strace查看系统调用

strace -f -p PID -o file.txt

 

4.IDA静态动态分析的快捷键

(1).F2下断点

(2).F7,f8单步步入

(3).N重名

(4).G跳到地址和函数名

(5).U取消把函数汇编变成机器码

(6).C就是把机器码变成汇编

(7).F5--->刷新

(8).P分析函数,把机器码那些东西翻译成函

(9).Ctrl+S看见系统所有的模块

(10).Ctrl+F搜索

(11).单步调试注意右上角,寄存器变蓝色表示被改了

(12).otions->number of opcode bytes可以查看机器码,填入4一行看4个机器码

(13).在hex view-1按F2可以修改机器码,再次按F2确定修改

(14).Alt+G看是THUMB还是ARM指令(寄存器ARM与THUMB转换)

(15).在函数名上按X可以看见上层调用

(16).在F5伪C/C++代码的情况下,注释是/,汇编情况下注释是;

(17).F4移动到光标处

(18).在寄存器窗口按E可以修改寄存器的值

(19).在内存窗口F2可以修改内存的值

(20).搜索特征字符串,具体操作为

①快捷键Ctrl+S,打开搜索类型选择对话框-->双击Strings,跳到字符串段-->菜单项“Search-->Text”

②快捷键Alt+T,打开文本搜索对话框,在String文本框中输入要搜索的字符串点击OK即可

(21).Tab查看函数

(22).Ctrl+1,Spance

(23).Alt+Q

(24).Alt+S

(25).G-转到一个Jump Address

(26).Create function--->P

(27).Data--->D

(28).X--->追踪某函数

(29).C--->转成代码--->N-重命名函数,多看汇编,少看伪代码

(30).H--->16进制转换

(31).A--->生成一个字符串

(32).U--->转成原数据

(33).*--->重新定义数组长度

 

5.gdb调试

(1).准备调试

android-ndk-r10e\prebuilt\android-arm\gdbserver

android-ndk-r10e\prebuilt\android-arm64\gdbserver

 

手机或模拟机已经root

adb remount

adb push gdbserver /system/bin

 

android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gdb.exe

 

android-ndk-r10e\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-gdb.exe

 

arm-linux-androideabi-gdb.exe修改为gdb.exe

 

(2).修改权限

adb shell chmod 777 /system/bin/gdbserver

 

(3).端口转发

adb forward tcp:23946 tcp:23946

 

(4).ps命令查询PID

adb shell ps | grep 包名

 

(5).gdbserver attach调试进程

adb shell gdbserver :23946 –attach [PID]

 

(6).运行gdb.exe

显示汇编代码

set disassemble-next on

 

打开单步调试

set step-mode on

 

在gdb界面输入如下命令,连接上gdbserver

target remote 127.0.0.1:23946

 

6.常见工具

  (1).命令工具

tmux: 可以关闭窗口将程序放在后台运行

jnettop: 监测网络流量,得到通讯IP、端口、URL、速率信息

netstat -tunlp:端口对应进程号、监听、收发包端口

htop: top 的增强版,当前系统负载、前台活跃进程、线程和占用

apt install tmux jnettop htop

ps -e |grep -i termux

 

入门Android逆向

https://mp.weixin.qq.com/s/K1tvKOzDRwiO8uDON4u_MA

 

7.OAT/DEX/ELF的文件格式

图片

图片

图片

图片

图片

图片

图片

图片

 

8.在线加解密

(1).二维码解码器

  https://cli.im/deqr/

 

(2).在线JSON校验格式化工具    

  http://www.bejson.com/

  http://www.jsons.cn/

 

(3).在线解密

  https://www.ssleye.com/

  http://www.ttmd5.com/rang.php

  https://cmd5.com/

  https://jwt.io/

  https://the-x.cn/cryptography/Aes.aspx

  http://tool.chacuo.net/cryptdes

 

关注公众号,获取更多最新文章

图片

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MBR(Master Boot Record)是计算机系统的启动程序,位于硬盘的第一个扇区,一般占用512字节。它包含了分区表以及启动操作系统所需的代码。IDA是一款反汇编软件,可以用于对二进制文件进行静态分析。 使用IDA对MBR进行二进制静态分析,可以深入了解MBR的功能和执行流程。 首先,在IDA中打开MBR的二进制文件,IDA会自动识别并显示程序的指令流。可以通过分析指令之间的跳转、数据处理等关系,还原出MBR的代码逻辑。 其次,IDA可以对二进制文件进行反汇编,将机器指令转换成可读性更高的汇编指令,方便程序员理解和分析。通过IDA的反汇编功能,可以逐步追踪程序的执行路径,查看各个函数的调用关系,识别出程序的功能模块。 此外,IDA还提供了图形化界面,用于展示程序的控制流图、函数调用图等可视化信息,方便用户理解程序的结构和逻辑。 最后,通过IDA静态分析功能,可以查找程序中的漏洞和恶意代码。例如,可以搜索特定的字符串、调用系统函数的位置,以便检测程序是否含有病毒、后门等恶意代码。 总的来说,利用IDA进行MBR二进制静态分析,可以帮助研究人员深入了解MBR的工作原理和代码逻辑,识别恶意代码,加强对计算机系统的安全防护。 ### 回答2: IDA是一款十分常用的二进制静态分析工具,它主要用于对二进制文件进行逆向工程和安全分析。二进制文件通常是以机器语言编写的,分析这样的文件是十分困难的。然而,IDA通过对二进制文件进行分析,可以还原出源代码的一些结构和逻辑。 首先,IDA静态分析功能使得我们可以在不运行程序的情况下查看程序的执行流程、函数调用、内存分配等。我们可以分析程序的汇编指令,了解每条指令的作用和执行过程,进而还原出程序的整体逻辑。 其次,IDA提供了反汇编功能,可以将机器码反汇编成汇编代码,这样我们就可以看到程序从二进制代码转换为汇编代码的过程。这对于探查程序中隐藏的功能和漏洞非常有用。 此外,IDA还提供了交互式调试功能,可以在不运行程序的情况下直接查看和修改内存中的值,对程序的执行进行调试,并寻找和解决问题。 总之,通过IDA的二进制静态分析,我们可以更好地理解程序的功能和结构,发现潜在的安全漏洞,从而提高软件的安全性和性能。这使得IDA成为许多安全研究人员和软件工程师的重要工具之一。 ### 回答3: MBR(Master Boot Record,主引导记录)是磁盘的第一个扇区,是启动操作系统的关键组成部分。IDA(Interactive Disassembler,交互式反汇编器)是一款二进制静态分析工具,用于逆向工程和恶意软件分析。 使用IDA进行MBR的二进制静态分析时,首先需要将MBR的二进制文件导入到IDA中。IDA通过解析二进制代码,将其转换为可读的汇编语言代码,以便分析和理解程序的逻辑。 对于MBR的二进制静态分析,可以使用IDA进行以下方面的研究: 1. 代码调用关系分析:IDA可以显示函数之间的调用关系,帮助我们理清代码的逻辑流程。 2. 变量和数据结构分析:IDA可以识别并显示代码中使用的变量和数据结构,帮助我们了解数据的存储和使用方式,进而理解程序的功能。 3. 漏洞分析:通过IDA的漏洞分析功能,我们可以查找代码中存在的安全漏洞或异常处理不当的问题,从而提供安全修复建议。 4. 反汇编代码注释:IDA可以让我们添加自己的注释,对代码进行解释和标记,方便后续的分析和理解。 综上所述,IDA作为一款强大的二进制静态分析工具,可以帮助我们深入理解MBR的功能和逻辑,发现其中的潜在问题,从而提供安全修复和改进的建议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哆啦安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值