IOS_逆向_IDA(待扩展...)

一丶介绍

“IDA(The Interactive Disassembler)”
“IDA是一个支持Windows、Linux和Mac OS X的多平台反汇编器/调试器”

二丶使用

2.1下载:

demo版

https://www.hex-rays.com/products/ida/support/download_demo.shtml

IOS_逆向_IDA(待扩展...)_第1张图片
Paste_Image.png

图标:

Paste_Image.png

...不想说话

2.2使用

2.2.1 可执行文件获取

1.自己新建个简单工程,写点简单的代码,打包成ipa

Paste_Image.png

2.解压缩

IOS_逆向_IDA(待扩展...)_第2张图片
Paste_Image.png
2.2.2 用idaq打开它

什么都不用配置,遇到弹窗都点ok;
界面如下:


IOS_逆向_IDA(待扩展...)_第3张图片
Paste_Image.png

2.2.3对比

源代码:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self setUpButton];

}

在ida里面显示:

; Segment type: Pure code
AREA __text, CODE, READWRITE, ALIGN=3
; ORG 0x8050
CODE16


; ViewController - (void)viewDidLoad
; Attributes: bp-based frame

; void __cdecl -[ViewController viewDidLoad](struct ViewController *self, SEL)
__ViewController_viewDidLoad_

var_C= -0xC
var_8= -8

PUSH            {R4,R7,LR}
ADD             R7, SP, #4
SUB             SP, SP, #8
MOV             R4, R0
MOV             R0, #(classRef_ViewController - 0x806C)
MOV             R1, #(selRef_viewDidLoad - 0x806E)
ADD             R0, PC ; classRef_ViewController
ADD             R1, PC ; selRef_viewDidLoad
STR             R4, [SP,#0xC+var_C]
LDR             R0, [R0] ; _OBJC_CLASS_$_ViewController
LDR             R1, [R1] ; "viewDidLoad"
STR             R0, [SP,#0xC+var_8]
MOV             R0, SP
BLX             _objc_msgSendSuper2
MOV             R0, #(selRef_setUpButton - 0x8086)
ADD             R0, PC ; selRef_setUpButton
LDR             R1, [R0] ; "setUpButton"
MOV             R0, R4
BLX             _objc_msgSend
ADD             SP, SP, #8
POP             {R4,R7,PC}
; End of function -[ViewController viewDidLoad]
IOS_逆向_IDA(待扩展...)_第4张图片
Paste_Image.png

如果想对比,某个文件的汇编代码:

IOS_逆向_IDA(待扩展...)_第5张图片
Paste_Image.png

三丶扩展

...

四丶总结

...

你可能感兴趣的:(IOS_逆向_IDA(待扩展...))