iOS中的ipa重签名(逆向必备)

2018开篇,这回要讲的是iOS重签名,网上重签名的工具太多了,我试用了一下,都还挺好使。但是,你不知道,我是个喜欢装逼的人吗?用工具怎么够酷呢?对,装逼得用终端。接下来的操作都是在终端中进行,开始你的装逼之旅吧!

一、重签名准备工作:

•找到开发者证书和配置文件:

列出所有开发者证书文件:

security find-identity -p codesigning -v 

•找一个开发环境配置文件生成entitlements.plist文件,后面签名要用到:

security cms -D -i XX.mobileprovision > profile.plist
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist
cat entitlements.plist

•把准备好的开发环境配置文件复制到XX.app文件夹下:

cp XX.mobileprovision Payload/XX.app/embedded.mobileprovision 

•修改包Info.plist中的Bundle Identifier与配置文件中的Bundle Identifier保持一致:

/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.XX.XX" Payload/XX.app/Info.plist 

•移除之前的签名文件夹:

rm -rf Payload/XX.app/_CodeSignature 

二、iOS重签名:

•重签名framework:

/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist /Payload/XX.app/Frameworks/JSONModel.framework 

•重签名app执行文件:

/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist Payload/XX.app/XX

•查看app签名信息:

codesign -vv -d Payload/XX.app 

注意:重签名有顺序,先把framework和dylib签名,最后再签名:XX.app/XX,顺序弄错了,就算签名成功也可能会安装失败!

三、调试和打包:

•ios-deploy 安装与调试:

ios-deploy -d -b Payload/XX.app 

出现如下success字样,就证明成功了!

过程中如果遇到错误提示:“Error 0xe8000067: There was an internal API error. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)”

错误原因:可能存在有framework或者dylib未签名的情况。

解决方案:把app文件夹下面的framework全部签名。

•打包(package):

zip -qry ppdest.ipa Payload
rm -rf Payload/

总结

以上所述是小编给大家介绍的iOS中的ipa重签名(逆向必备),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • iOS中管理剪切板的UIPasteboard粘贴板类用法详解

    一.自带剪切板操作的原生UI控件 在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图上唤出系统的剪切板控件,用户可以进行复制.粘贴,剪切等操作,其效果分别如下图所示. UITextField的文字操作 UITextView的文字操作 二.系统的剪切板管理类UIPasteboard 实际上,当用户通过上面的空间进行复制.剪切等操作时,被选中的内容会被存放到系统的剪切板中,并且这个剪

  • iPhone/iPad开发通过LocalNotification实现iOS定时本地推送功能

    通过iOS的UILocalNotification Class可以实现本地app的定时推送功能,即使当前app是后台关闭状态. 可以实现诸如,设置app badgenum,弹出一个alert,播放声音等等,实现很简单 UILocalNotification *notification=[[UILocalNotification alloc] init]; if (notification!=nil) { NSDate *now=[NSDate new]; notification.fireDat

  • 实例讲解iOS中的UIPageViewController翻页视图控制器

    一.引言 UIPageViewController是iOS中少见的动画视图控制器之一,通过它既可以创建类似UIScrollView与UIPageControl结合的滚屏视图,也可以创建类似图书效果的炫酷翻页视图. UIPageViewController在iOS 5 SDK中首次引入,它使得开发者可以使用这个ViewController创建分页视图.在iOS 6中,这个类有了更新,支持滚动过渡效果.使用Page View,用户可以方便的通过手势在多个页面之间导航.UIPageViewContro

  • iOS App开发中的UIPageControl分页控件使用小结

    分页控件是一种用来取代导航栏的可见指示器,方便手势直接翻页,最典型的应用便是iPhone的主屏幕,当图标过多会自动增加页面,在屏幕底部你会看到原点,用来只是当前页面,并且会随着翻页自动更新. 一.创建 复制代码 代码如下: UIPageControl* myPageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0.0, 400.0, 320.0, 0.0)]; 二.设置属性 页面数目 复制代码 代码如下: myPageContr

  • iOS中的ipa重签名(逆向必备)

    2018开篇,这回要讲的是iOS重签名,网上重签名的工具太多了,我试用了一下,都还挺好使.但是,你不知道,我是个喜欢装逼的人吗?用工具怎么够酷呢?对,装逼得用终端.接下来的操作都是在终端中进行,开始你的装逼之旅吧! 一.重签名准备工作: •找到开发者证书和配置文件: 列出所有开发者证书文件: security find-identity -p codesigning -v •找一个开发环境配置文件生成entitlements.plist文件,后面签名要用到: security cms -D -i

  • iOS应用脚本重签名的实现方法

    上一篇iOS APP签名详解我们了解了iOS签名的机制和原理,这一篇我们一起来动手写一个自动重签名的脚本,懒是程序员乃至人类进步的终极力量,造轮子写工具可以极大的避免重复性工作,为我们节省更多的时间放在思考上,话不多说撸起袖子开始干: 第一步:获取脱壳的ipa包 从iTunes 12.6.3及以前的版本上直接下载 (macOS Mojave Doesn't Support),这样获取到的是正版ipa,需要用Clutch.dumdecrypted等工具先脱壳,否则别人的加密验证不通过无法安装 各类

  • Android和iOS包批量重签名

    本文实例为大家分享了Android和iOS包批量重签名的具体代码,供大家参考,具体内容如下 Android篇 环境要求 1 安装winrar,然后配置winrar的环境变量,要用到winrar指令 2 配置java的bin目录到环境变量,要用到jarsigner指令 重签名步骤说明: 1 从母包复制一个子包 2 删除子包的签名文件META-INFO 3 根据需要修改子包的文件,比如渠道号文件之类 4 重签名子包 对应的python脚本 import os import sys import sh

  • iOS安全防护系列之重签名防护与sysctl反调试详解

    一 重签名防护 想自己的app不被重签名,可以在代码中检测签名信息,然后采取措施. 1.查看证明组织单位 或者进入.app的包内容,查看embedded.mobileprovision信息security cms -D -i embedded.mobileprovision 找到<key>application-identifier</key>的value的第一部分就是 2.利用签名信息进行重签名防护 void checkCodesign(NSString *id){ // 描述文

  • iOS中指纹识别常见问题汇总

    最近公司的 app 要使用指纹支付了;总体来说还是蛮顺利的;但是中间有遇到一些坑;下面就对坑进行汇总; 一.基本知识 点开这个LocalAuthentication.framework,发现里面主要有这么几个东西 LocalAuthentication.framework - LAContext.h - LAError.h - LAPublicDefines.h - LocalAuthentication.h LocalAuthentication.h 这个没什么可讲的吧,代码就两行,一行导入L

  • iOS中NSInvocation的基本用法教程

    前言 大家应该都有所了解,在 iOS中可以直接调用某个对象的消息方式有两种:一种是performSelector:withObject:再一种就是NSInvocation. 第一种方式比较简单,能完成简单的调用.但是对于>2个的参数或者有返回值的处理,那performSelector:withObject就显得有点有心无力了,那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作 NSInvocation的基本使用 方法签名类 // 方法签名中保存了方法的名称/参数/返

  • 详解iOS中按钮点击事件处理方式

    写在前面 在iOS开发中,时常会用到按钮,通过按钮的点击来完成界面的跳转等功能.按钮事件的实现方式有多种,其中较为常用的是目标-动作对模式.但这种方式使得view与controller之间的耦合程度较高,不推荐使用: 另一种方式是代理方式,按钮的事件在view中绑定,controller作为view的代理实现代理方法. 目标-动作对实现方式 具体来说,假设我们有一个包含一个Button的veiw,view将Button放在头文件中,以便外部访问.然后controller将view作为自己的vie

  • 一篇文章让你看懂IOS中的block为何再也不需要WeakSelf弱引用

    前言: 最近都在折腾Sagit架框的内存释放的问题,所以对这一块有些心得. 对于新手,学到的文章都在教你用:typeof(self) __weak weakSelf = self. 对于老手,可能早习惯了到处了WeakSelf了. 这次,就来学学,如何不用WeakSelf. 1:从引用计数器开始: 这里先设计一个TableBlock类: @interface BlockTable : NSObject typedef void (^AddCellBlock)(); @property (nona

  • iOS中实现检测Zoombie对象的具体方法

    前言 我们大家都知道,如果在XCode中开启了Zoombie Objects.如图. 那么在一个对象释放后,再次给该对象发送消息,在Xcode控制台中,可看到如下打印信息.这些信息可以帮助我们定位问题. ZoombieDemo[12275:2841478] *** -[Test test]: message sent to deallocated instance 0x60800000b000 那么究竟XCode是如何实现僵尸对象的检查的,我们将来一一揭晓. 实现原理 在<Effective O

随机推荐