IOS逆向【3】-helloworld

第三集内容:写一个命令行的helloworld

代码来自IOS冰与火之歌,下载下来之后,编译到成功运行的过程是这次的重点。

要使用make进行编译,Makefile怎么写?

找到一篇微博,经过修改(还好懂一点llvm)到下面这个Makefile。

C=clang

FRAMEWORKS:= -framework Foundation
LIBRARIES:= -lobjc
SDK:=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk

SOURCE=hello.m Talker.m
CFLAGS=-isysroot ${SDK} -Wall -Werror -arch armv7 -g $(SOURCE)
LDFLAGS=$(LIBRARIES) $(FRAMEWORKS)
OUT=-o hello

all:
		$(CC) $(CFLAGS) $(LDFLAGS) $(OUT)

直接make就ok了。我使用的是iPhone4s,CPU型号是armv7,如果其他高版本的ipone机型,就要使用arm64的选项。

make成功后,在当前文件夹生成一个hello程序,使用scp命令上传到手机上,如果直接运行会出现

Administratormato-iPhone:~ root# ./hello
Killed: 9

这时使用ldid签名,再运行程序就会运行成功。

Administratormato-iPhone:~ root# ldid -S hello
Administratormato-iPhone:~ root# ./hello
2016-03-12 12:23:47.111 hello[2641:707] Hello, Ice and Fire!
2016-03-12 12:23:47.115 hello[2641:707] Hello, Ice and Fire!
原文地址:https://www.cnblogs.com/Lnju/p/5268506.html