zoukankan      html  css  js  c++  java
  • 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!
    
  • 相关阅读:
    Java 基础
    Java 数据类型
    Spring 拦截器实现事物
    SSH 配置日记
    Hibernate 知识提高
    Jsp、Servlet
    leetcode 97. Interleaving String
    leetcode 750. Number Of Corner Rectangles
    leetcode 748. Shortest Completing Word
    leetcode 746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/Lnju/p/5268506.html
Copyright © 2011-2022 走看看