全球彩票平台_全球彩票注册平台|官网下载地址

热门关键词: 全球彩票平台,全球彩票注册平台,全球彩官网下载地址

【全球彩票平台】iOS逆向开发环境搭建,修改X

通过MakefileiPhone下创建Dylib实例是本文要介绍的内容,首先我要声明下经过测试,第三方的dylib是无法在未越狱的iphone上c成功运行的。写这篇文章也只是为了完善之前的那篇文章。

今天使用theos 进行了一个简单的hook。下面介绍具体过程,和踩过的一些坑。

一. 逆向开发工具

  1. 可越狱iPhone一台
  2. 电脑一部
  3. 诸多软件等

在上篇介绍MobileSubstrate的文章中,说到第三方开发者通过MobileSubstrate向应用中注入自己的代码来改变应用运行时的行为表现。而这里的代码就是我们今天要说的主角--tweak。

修改Xcode配置并支持iPhonedylib工程是本文要介绍的内容,逛坛子发现一篇好文章,与大家分享一下,先来看内容。此帖纯粹讨论怎样更改xcode配置来使其支持创建iphone上的dylib工程文件,不涉及任何其他破解话题!

1、创建dylibtest.c 和.h

一:物理环境

二. iPhone越狱

设备详情:

  1. iPhone 5s Version: iOS 9.3.2 13F69

  2. Mac电脑一台,VMware Fusion, Win7
    爱思助手,pp越狱助手

  3. 越狱注意点:

    • 部分iOS版本并不支持越狱,比如:iOS8.4.1, iOS9.1不支持越狱。所以选择/购买机器时,查询对应机型的版本是否支持越狱
    • 注意版本编号,有些版本有beta版,也是不支持越狱,注意对应的系统版本和版本编号的统一。13F69 是iOS9.3.2的一个版本编号
    • 选购机器最好选择5s以上的机型,因为32位(armv7, armv7s等)的机型已经停止越狱的支持
    • 最初越狱的时候,一直用的爱思,但是用虚拟机一直越狱失败。换了pp越狱助手,虚拟机越狱成功。(pp和爱思都是用的盘古越狱)
    • iOS9.3.2是不完全越狱,即:重启手机,越狱失效。需要重新越狱。

tweak的实质就是ios平台的动态库。IOS平台上有两种形势的动态库,dylib与framework。Framework这种开发者用的比较多,而dylib这种就相对比较少一点,比如libsqlite.dylib,libz.dylib等。而tweak用的正是dylib这种形势的动态库。我们可以在/Library/MobileSubstrate/DynamicLibraries目录下查看手机上存在着的所有tweak。这个目录下除dylib外还存在着plist与bundle两种格式的文件,plist文件是用来标识该tweak的作用范围,而bundle是tweak所用到的资源文件。如下图所示:

测试机器:10.6 with Xcode3.2

这里随便写了个test函数。

mac os x: 10.11.5

三. 逆向环境搭建

使用pp越狱成功后,会自动安装Cydia,通过Cydia可以安装一些越狱的时候使用的工具

通过Cydia安装软件:

  1. OpenSSH 默认登录名和密码:root alpine

    • 登录iPhone ssh root@ip ip为iPhone的ip地址

    • scp拷贝文件:

      scp filename root@ip:/tmp    ;将本地文件拷贝到远程tmp文件夹下
      scp root@ip:/tmp/1.txt  /tmp  ;将远程tmp文件夹下的1.txt 拷贝到本地tmp文件夹下
      
    • 更改root密码:

      passwd  ;更改当前登录的用户密码
      passwd root  ;更改root用户密码
      
  2. usbmuxd工具
    有时候使用ip连接ssh速度会很慢,或者在动态调试的时候,启动debugserver也会很慢。通过usb连接会解决这些问题。

    • 下载连接:https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz
    • 转发iPhone ssh 22号端口到localhost 2222
    ./tcprelay.py -t 22:2222
    Forwarding local port 2222 to remote port 22
    
    //ssh进行连接iPhone
    ssh root@localhost -p 2222
    
    • iPhone debugserver 9527 转发到到本地9527
    ./tcprelay.py -t 9527:9527
    
    //iPhone启动debugserver
    debugserver *:9527 -a "WeChat" 
    
    //mac 连接debugserver
    process connect connect://localhost:9527
    
  1. 全球彩票平台,安装软件管理包apt-

    • 在Cydia中搜索 APT 0.6 Transitional

    • 命令介绍

      apt-get update                    ;更新所有的源;
      
      apt-get upgrade                 ;更新所有通过apt-get安装的程序
      
      apt-get install  packagename         ;安装软件包
      
      apt-get remove  packagename      ;删除软件包,不删除依赖包,不删除配置文件;
      
      apt-get remove --purge packagename  ;删除该软件包,不删除依赖包,删除配置文件
      
      apt-get autoremove packagename       ;删除该软件包,删除依赖包,不删除配置文件
      
      apt-get autoremove --purge packagname    ;可以删除所有依赖包 配置文件
      
      apt-cache search string             ;搜索含有该string字段的软件包
      
      apt-cache show packagename     ;详细显示该软件包的信息
      
      apt-get clean                   ;清除apt-get安装的软件包备份,可以释放储存空间,不影响软件正常使用;
      
    • 使用apt-get 安装必要安装包

      apt-get install  ping
      
      apt-get install  ps
      
      apt-get install  find
      
      apt-get install tcpdump
      
      apt-get install top
      
      apt-get install vim
      
      apt-get install  network-cmds   //-arp, ifconfig, netstat, route, traceroute
      
    • 工具使用测试

       ping www.baidu.com ;发送icmp报文
       ps aux / ps -e ;查看进程详细信息
       find / -name filename  ;在更目录下查找filename的文件
       grep -r 'hello*' /tmp ;在tmp文件夹下查找包含hello的文件,-r遍历查找
       top -l 1 | head -n 10 | grep PhysMem ;查看内存使用情况
      
       tcpdump -i en0 src host 192.168.1.137
       tcpdump -i en0 dst host 192.168.1.137
       tcpdump -w /tmp/ssh.cap -i en0 tcp port 22 and dst host 192.168.1.137
       tcpdump -w /tmp/ssh.cap -i en0 -t -s 0 -c 100 tcp port ! 22 and dst host 192.168.1.137
       解释:
       (1)-w /tmp/ssh.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
       (2)-i en0 : 只抓经过接口en0的包
       (3)-t : 不显示时间戳
       (4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
       (5)-c 100 : 只抓取100个数据包
       (6) tcp port ! 22  : 不抓tcp端口22的数据包
       (7) dst port ! 22 : 不抓取目标端口是22的数据包
       (8)dst host 192.168.1.137 : 抓取目标地址为192.168.1.137的包
       (9)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
      

全球彩票平台 1

最近在研究如何创建iphone上的dylib文件,google出来的都是toolchain的东西,使用makefile来编译的,像我这种习惯IDE的人来说非常之不爽,所以花了一天时间来破解了下Xcode来让它可以创建编译iphone上的dylib文件的工程。

dylibtest.h

xcode:xcode7.3.1

四. iOS文件系统结构

  1. UNIX常见系统目录
/:磁盘根目录

/bin:"binary"的简写,存放提供用户级基础功能的二进制文件,如ls、ps等

/boot:存放能使系统成功启动的所有文件。iOS中此目录为空。

/dev:"device"的简写,存放BSD设备文件。每个文件代表系统的一个块设备或字符设备,一般来说,“块设备”以块为单位传输数据,如硬盘;而“字符设备”以字符为单位传输数据,如调制解调器。

/sbin:"system binaries"的简写,存放提供系统级(root使用)基础功能的二进制文件,如netstat、reboot等。

/etc:"Et Cetera"的简写,存放系统脚本及配置文件,如passwd、hosts等。在iOS中,/etc是一个符号链接,实际指向/private/etc。

/lib:存放系统库文件、内核模块及设备驱动等。iOS中此目录为空。

/mnt:"mount"的简写,存放临时的文件系统挂载点。iOS中此目录为空。加载光盘、U盘等。

/private:存放两个目录,分别是/private/etc和/private/var。

/tmp:临时目录。在iOS中,/tmp是一个符号链接,实际指向/private/var/tmp。

/usr:包含了大多数用户工具和程序。/usr/bin包含那些/bin和/sbin中未出现的基础功能,如nm、killall等;/usr/include包含所有的标准C头文件;/usr/lib存放库文件。

/var:"variable"的简写,存放一些经常更改的文件,比如日志、用户数据、临时文件等。其中/var/mobile和/var/root分别存放了mobile用户和root用户的文件,是重点关注的目录。
  1. iOS的独有目录
/Applications:存放所有的系统App和来自于Cydia的App,但不包括AppStore

/Developer:如果一台设备连接Xcode后被指定为调试用机,Xcode就会在iOS中生成这个目录,其中会含有一些调试需要的工具和数据。

/Library:存放一些提供系统支持的数据。其中/Library/MobileSubstrate下存放了所有基于CydiaSubstrate(原名MobileSubstrate)的插件(如:tweak编写的插件)。

/System/Library:iOS文件系统中最重要的目录之一,存放大量系统组件。

/System/Library/Frameworks和/System/Library/PrivateFrameworks:存放iOS中的各种framework

/System/Library/CoreServices里的SpringBoard.app:iOS桌面管理器(类似于Windows里的explorer),是用户与系统交流的最重要中介。

/User:用户目录(其实就是mobile用户的home目录),实际指向/var/mobile,这个目录里存放大量用户数据,比如:

/var/mobile/Media/DCIM下存放照片;

/var/mobile/Media/Recordings下存放录音文件;

/var/mobile/Library/SMS下存放短信数据库;

/var/mobile/Library/Mail下存放邮件数据。

/var/mobile/Containers/Bundle 存放AppStore下载的APP的Bundle起始目录

/var/mobile/Containers/Data存放AppStore下载的APP的沙盒起始目录
  1. 文件目录权限

    • rwxr-xr-x 每三个分成三组,分别代表:所有者(rwx),所属的用户组(r-x), 其它用户(r-x)
    • 每一组三位可以看做三个二进制,每位意义为:是否有读权限(r),是否有写权限(w),是否有执行权限(x);即:所有者拥有权限 rwx = 111 = 7
    • 修改权限 : chmod 777 filename 给与filename所有的权限即:rwxrwxrwx
  2. 获取App的目录

    • 获取Bundle目录

      ps -e | grep WeChat
      1368 ?? 5:41.43 /var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
      
    • 获取沙盒目录

       cycript -p WeChat
       cy# directory = NSHomeDirectory()
       @"/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE"
      

与正常的APP开发使用xcode不同,Tweak的开发环境是theos或者iosopendev。iosopendev是在theos的基础上实现的基于xcode的开发环境。而theos是一种命令行式的开发编译环境,与c/c 的命令行编译形式很相象。这里也主要针对theos作简单的介绍。

简单说下分析思路吧

void test();
 
dylibtest.c

xcode sdk:ios9.3

五. Cycript

作者: saurik
官网: http://www.cycript.org/

  1. Cycript是一款脚本语言,可以看作是Objective-JavaScript,它可以帮助我们轻松测试和验证函数效果

    • 在越狱手机中可以通过注入方式在第三方应用中运行
    • 也可以用静态库的方式把cycript集成到自己的应用(MonkeyDev,可以给非越狱iOS第三方App写插件,但是权限受沙盒限制)
  2. 越狱手机安装Cycript

    • 在Cydia上搜索Cycript进行安装
    • apt-get install cycript
  3. 注入到第三方进程空间,CMD D退出cycript

//确认进程名或者进程PID
root# ps -e | grep WeChat 
1368 ?? 6:17.44 /var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat

//方式1
root# cycript -p WeChat

//方式2
root# cycript -p 1368  
  1. 注入实例:(代码最好在Xcode里写,然后复制)
//WeChat
[[[UIAlertView alloc]initWithTitle:@"Cyscript" message:@"inject wechat test" delegate:ni cancelButtonTitle:@"confirm" otherButtonTitles:nil, nil] show];

//Springboard
[[SBScreenShotter sharedInstance] saveScreenshot:YES]   截屏,闪光
[[SBScreenShotter sharedInstance] saveScreenshot:NO]   截屏,不闪光
[[SBScreenFlash mainScreenFlasher] flashColor:[UIColor magentaColor] withCompletion:nil] 屏幕闪紫色光

Theos是由DHowett开发的,主要目的是简化越狱程序的开发流程。需要注意的是Theos不仅仅适用于MAC平台,还能够支持Linux平台哦。环境搭建的详细过程这里就不在详细说明了,主要的步骤大致就是安装iphone sdk、安装git、从github上clone theos项目并配置相关的环境变量。网上有很多这样的流程贴,大家Google一下就可以了。

首先xcode支持创建iphone static libtary和Cocoa的dynamic linrary的工程,通过不同编译对比可以发现Xcode通过productType = "com.apple.product-type.library.dynamic";配置来确定工程类型的。

#include "dylibtest.h"  #include "stdio.h"  void test() {      printf("this is a testn");  }   makefile    CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc  CFLAGS= -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk  CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp  target:   $(CC) $(CFLAGS) -dynamiclib -o sotest-iphone.dylib dylibtest.c 

越狱手机:iphone4,ios7

六. 逆向工具

  1. 逆向工具大致可分为四类:

    • 检测工具。如:Reveal、tcpdump等
    • 反编译工具。如:IDA、Hopper Disassembler、classdump等
    • 调试工具。如:lldb、Cycript等
    • 开发工具。如:Xcode、theos等
  2. classdump 导出没有加密过得头文件,借助于otool。

    • 官网: http://stevenygard.com/projects/class-dump/
    • 用法: class-dump -s -S -H WeChat -o ./wechatHeaders 将砸壳后的wechat文件的头文件导出到wechatHeaders目录
    • 判断是否加密 otool -l WeChat | grep -B 2 crypt cryptid 0 已经解密

      --
      cmd LC_ENCRYPTION_INFO_64
      cmdsize 24
      cryptoff 16384
      cryptsize 52379648
      cryptid 0
      
    • 查看某文件夹下文件的个数,包括子文件夹里的: ls -lR|grep "^-"|wc -l

    • 查看某文件夹下文件夹的个数,包括子文件夹里的: ls -lR|grep "^d"|wc -l
  3. dumpdecrypted 砸壳工具

    • 下载源码: git clone https://github.com/stefanesser/dumpdecrypted.git
    • 编译:make 生成 dumpdecrypted.dylib 文件
    • 用法:将dumpdecrypted.dylib 文件拷贝到越狱iPhone的需要砸壳的App沙盒的Documents文件夹下面

      例如微信:
      # cd /var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE/Documents/
      # cp /tmp/dumpdecrypted.dylib .
      # DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
      
  4. theos 越狱工具开发包
    百科:
    http://iphonedevwiki.net/index.php/Theos/Setup#For_Mac_OS_X
    http://iphonedevwiki.net/index.php/Theos

    安装教程: https://github.com/theos/theos/wiki/Installation

    安装步骤简介:

    • sudo mkdir /opt 如果没有opt目录则创建,有cd到该目录
    • git clone --recursive https://github.com/theos/theos.git
    • sudo chown -R $(id -u):$(id -g) theos

    设置环境变量:

    • 在新建theos工程编译的时候执行:export THEOS=/opt/theos
    • 开机启动时候执行

      vi ~/.bash_profile
      写入: export THEOS=/opt/theos
      
      调用: source ~/.bash_profile
      测试: echo $THEOS
      
  5. ldid
    越狱iPhone下的签名工具(更改授权entitlements),可以为thos开发的程序进程签名(支持在OS X和iOS上运行)
    wiki: http://iphonedevwiki.net/index.php/Ldid

    • 安装: brew install ldid fakeroot
    • 查看WeChat签名信息 codesign -dvvv WeChat

      Executable=/Users/leaf/yy/WeChat
      Identifier=com.tencent.xin
      Format=Mach-O thin (arm64)
      CodeDirectory v=20200 size=511823 flags=0x0(none) hashes=15987 5 location=embedded
      Hash type=sha256 size=32
      CandidateCDHash sha1=d6e410a862077728c19fb53f6938e1bbbc723202
      CandidateCDHash sha256=0925ea0e119b16a34f890d85ad8e8a4781d4d984
      Hash choices=sha1,sha256
      CDHash=0925ea0e119b16a34f890d85ad8e8a4781d4d984
      Signature size=4297
      Authority=Apple iPhone OS Application Signing
      Authority=Apple iPhone Certification Authority
      Authority=Apple Root CA
      Info.plist=not bound
      TeamIdentifier=88L2Q4487U
      Sealed Resources=none
      Internal requirements count=1 size=96
      
    • 查看entitlement内容 codesign -d --entitlements - WeChat
      ldid -e WeChat

    • 修改entitlement内容 ldid -Sentitlement.xml WeChat
  6. dpkg工具

    • 安装

      brew install --from-bottle https://raw.githubusercontent.com/Homebrew/homebrew-core/7a4dabfc1a2acd9f01a1670fde4f0094c4fb6ffa/Formula/dpkg.rb
      
      brew pin dpkg
      
    • 安装/卸载 dpkg -i/-r cc.onezen.demo1_0.0.1-1 debug_iphoneos-arm.deb

    • 查看安装包信息 dpkg -s cc.onezen.demo1

使用Theos提供的nic.pl脚本创建新的tweak工程,如下图所示,theos提供了如下的几个tweak模板供开发者选择使用:

打开**.xcodeproj/project.pbxproj文件,搜索productType=定位,可以发现如下图所示的内容

这里用的是sdk4.2 arch为armv6,另外需要提醒的事,如果你编译的是.m文件使用到framework的话编译时可以这样写

有几点需要注意的地方:

七. 日志功能

注意要想看日志信息,一定要在Makefile里设置DEBUG=1,否则除了NSLog信息可以看到外,其它的信息看不到!

  1. syslog:iOS9.3.2没有配成功
    • 安装:在Cydia搜索 syslogd to /var/log/syslog
    • 查看日志: tail -f /var/log/syslog
    • 过滤查看: tail -f /var/log/syslog | grep WeChat
    • iOS9.3.2没有配成功解决方案: 在cydia和软件源tab页,右上角编辑,然后左上角添加威锋源http://apt.so,添加完成后,搜索Core Utilities完美解决
  1. socat

    • 安装:在Cydia搜索SOcket CAT
    • 运行:socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock
    • 运行起来后,输出help查看用法

      help
      Commands
          quit                 exit session
          select [val]         get [set] current database
                               val must be "file" or "mem"
          file [on/off]        enable / disable file store
          memory [on/off]      enable / disable memory store
          stats                database statistics
          flush                flush database
          dbsize [val]         get [set] database size (# of records)
          watch                print new messages as they arrive
          stop                 stop watching for new messages
          raw                  use raw format for printing messages
          std                  use standard format for printing messages
          *                    show all log messages
          * key val            equality search for messages (single key/value pair)
          * op key val         search for matching messages (single key/value pair)
          * [op key val] ...   search for matching messages (multiple key/value pairs)
                         operators:  =  <  >  ! (not equal)  T (key exists)  R (regex)
                         modifiers (must follow operator):
                                 C=casefold  N=numeric  S=substring  A=prefix  Z=suffix
      
    • 过滤查看日志(根据bundle id):* Facility com.apple.springboard

    • 过滤查看日志(根据进程id):* PID 123
    • 过滤条件

      ASLMessageID, //asl消息id
      Level, //级别
      Time, //时间
      TimeNanoSec, //时间ns
      Sender, //消息的发送者
      Facility, //按照Bundle ID来过滤日志
      PID, //进程id
      Message, //消息内容
      ReadUID //读取所使用的用户id
      

socats

  1. deviceconsole(更喜欢这种日志)
    通过usb连接打印iPhone日志。克隆相关源码,然后make编译后,会在mac上自动创建deviceconsole命令。在终端输入deviceconsole,自动输出iphone上的日志。过滤输出: deviceconsole -i -f WeChat

    git clone https://github.com/MegaCookie/deviceconsole
    make
    

deviceconsole

Theos创建的tweak工程目录如下图:这里面Tweak.xm、Makefile、Tweak.xm这三个文件是我们需要重点关注的。

[attachment=10545]

-framework Foundation 

1;mac系统的升级和xcode的安装颇费周折 具体解决的过程见Xcode编译器安装过程说明

全球彩票平台 2

可以创建一个iphone的static工程把static改成dynamic编译看看,可以发现xcode提示不支持dynamic类型的工程,无法编译,那我们让他支持就好了。

下面是测试代码 testdylib

2;mac os x系统和越狱手机一定要保证在同一局域网内

Makefile是工程的编译配置文件,该文件与c/c 编译时需要配置的makefile文件比较类似。xxx.plist文件的主要功能是限制Tweak的作用范围,该文件也正是上文中提到的plist文件的来源。Tweak.xm是Tweak的源码文件,也是Tweak默认的入口文件。Tweak可以使用.m/.mm模式的源文件,但如果希望使用Theos提供的Logos语法的话,文件必须是以.xm/.x/.xi/.xmi等格式。

我们需要修改以下文件

关键代码如下:

3;ios手机上要已经越狱并安装过openssh。

Theos提供了简单的Logos语法供开发者使用,从而避免让开发者接触OC中更为底层的runtime机制,降低了开发者的进入门槛。开发者最学使用的语法关键字如下:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneOSProductTypes.xcspec  /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneOSPackageTypes.xcspec  在iPhoneOSProductTypes.xcspec中添加下列片段   // Dynamic library      {   Type = ProductType;          Identifier = com.apple.product-type.library.dynamic;          Class = PBXStaticLibraryProductType;          Name = "Dynamic Library";          Description = "Dynamic library";          IconNamePrefix = "TargetLibrary";          DefaultTargetName = "Dynamic Library";          DefaultBuildProperties = {              FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";              MACH_O_TYPE = "mh_dylib";              REZ_EXECUTABLE = YES;              EXECUTABLE_PREFIX = "";              EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)";              EXECUTABLE_EXTENSION = "dylib";              PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include";              PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include";              INSTALL_PATH = "/usr/local/lib";              DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)";              LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";              DYLIB_COMPATIBILITY_VERSION = "1";              DYLIB_CURRENT_VERSION = "1";              FRAMEWORK_FLAG_PREFIX = "-framework";              LIBRARY_FLAG_PREFIX = "-l";              LIBRARY_FLAG_NOSPACE = YES;              STRIP_STYLE = "debugging";              GCC_INLINES_ARE_PRIVATE_EXTERN = YES;              CODE_SIGNING_ALLOWED = NO;          };          PackageTypes = (              com.apple.package-type.mach-o-library   // default          );      },   在iPhoneOSPackageTypes.xcspec中添加下列片段   // Mach-O dynamic library      {   Type = PackageType;          Identifier = com.apple.package-type.mach-o-library;          Name = "Mach-O Dynamic Library";          Description = "Mach-O dynamic library";          DefaultBuildSettings = {              EXECUTABLE_PREFIX = "";              EXECUTABLE_SUFFIX = ".dylib";              EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";              EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";          };          ProductReference = {              FileType = compiled.mach-o.dylib;              Name = "$(EXECUTABLE_NAME)";              IsLaunchable = NO;          };      }, 
NSString *path = [[NSBundle mainBundle] pathForResource:@"sotest-iphone" ofType:@"dylib"];  void* handle = dlopen([path cStringUsingEncoding:NSUTF8StringEncoding], RTLD_LAZY);  if (!handle) {      printf("%sn", dlerror());      return;  }  void (*test)();  test = (void (*)())dlsym(handle, "test");  const char *dlsym_error = dlerror();  if (dlsym_error) {      printf("%sn", dlsym_error);      dlclose(handle);      return;  }  // use it to do the calculation  test();      // close the library  dlclose(handle); 

全球彩票平台 3

%hook ClassName 标识需要向名为ClassName的类中注入修改代码。

文件附上,可以直接下载替换,替换/修改前做好备份

你可以去测试下了,不过相信结果应该不会很让你满意。

全球彩票平台 4

%new(signature) 添加一个新的方法,signature是新方法的签名,可以省略不写。

[attachment=10546]

小结:通过MakefileiPhone下创建Dylib实例的内容介绍完了,希望本文对你有所帮助!

如上截图 则安装了本次试验的两个重要的源:Cydia Substrate和openssh。

%orig 调用方法的原有实现。

现在再编译应该不会提示工程不支持了,那么剩下的就是改变其编译选项了,就是libtool的参数问题。

Makefile 在 iPhone 下创建 Dylib 实例是本文要介绍的内容,首先我要声明下经过测试,第三方的 dylib 是无法在未越狱的 iphone 上c成功运行...

其中Cydia Substrate则是包含了theos工具,而openssh则使得计算机可以远程操控ios设备。

有关Logos语法、Theos的其它相关信息,请参数http://iphonedevwiki.net/index.php/Logos。

我们需要修改下列文件

本文由全球彩票平台发布于全球彩票平台操作系统,转载请注明出处:【全球彩票平台】iOS逆向开发环境搭建,修改X

TAG标签: 全球彩票平台
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。