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!
    
  • 相关阅读:
    Ubuntu的防火墙UFW
    使用Xshell连接Ubuntu
    Markdown 11种基本语法
    Git Push 避免用户名和密码方法
    "git rm" 和 "rm" 的区别
    无限级分类实现思路
    1. Git 克隆代码
    Git 笔记
    git 远程分支创建与推送
    ci 笔记
  • 原文地址:https://www.cnblogs.com/Lnju/p/5268506.html
Copyright © 2011-2022 走看看