tweak项目ipa包重签名

1、参考链接:ipa包重签名
2、tweak项目修改部分是以插件的形式存在,因此需要将插件动态库与现在的ipa包重新打包签名;
3、找到tweak后生成的动态库,参考路径为:/Library/MobileSubstrate/DynamicLibarries/xxxTweak.dylib;
4、将该dylib文件放在现有包xx.app中,与二进文件同目录;
5、使用otool -L xxxxx查看Mach-O文件的动态库加载,这里面是没有tweak动态库的,需要将xxxTweak.dylib加进来;
6、工具来了,https://github.com/Tyilo/insert_dyli[……]

继续阅读

ipa包重签名

1、准备.mobileprovision文件,需要与当前App匹配的,如App ID、Certificates、Devices、Enabled Services等;
2、导出entitlements.plist文件:

2.1、security cms -D -i embedded.mobilep[......]<p class="read-more"><a href="https://www.yusian.com/blog/reverse/2018/11/09/0912501373.html">继续阅读</a></p>

3、使用codesign重签名
3.1、列出证书id列表

security[......]<p class="read-more"><a href="https://www.yusian.com/blog/reverse/2018/11/09/0912501373.html">继续阅读</a></p>

数字签名与非对称加密

1、对称加密
1.1、加密与解密用的是同一个密钥;
1.2、常见的加密方式有DES、3DES、AES等;
1.3、作用:加密

2、非对称加密
2.1、密钥成对出现,分别有公钥私钥
2.2、常见的非对称加密方式有RSA;
2.3、非对称加密使用公钥加密,私钥解密;
2.4、公钥公开发布给所有消息发送者,消息接收者保留私钥用于消息解密;
2.5、使用:加密

3、散列值
3.1、对消息(文件、数据)进行摘要计算;
3.2、每个消息有唯一的散列值,并且不可逆运算;
3.3、任何大小的消息进行散列计算得到的值长度是确定的;
3.4、常见的散列算法有MD4、MD5、[……]

继续阅读

ARM64中函数调用的基本过程

1、C语言代码

1
2
3
4
5
6
7
8
9
10
//
//  main.m
//  lldb
//
//  Created by 余西安 on 2018/11/1.
//  Copyright © 2018 yusian. All rights reserved.
//
 
void func()
{[......]<p class="read-more"><a href="https://www.yusian.com/blog/assembler/2018/11/07/1648581365.html">继续阅读</a></p>

2、ARM64汇编代码

1
0x100032758 :  sub[......]<p class="read-more"><a href="https://www.yusian.com/blog/assembler/2018/11/07/1648581365.html">继续阅读</a></p>

关于Cycript中打印信息不完整的问题

1、如下所示:

1
2
3
4
5
6
7
8
9
cy# SASubviews(#0x1c32ab60)
`
   |  Folder: 
   |    | 
   |    |    | 
   |    |    | 
   |    | 
   |    |    | 
   |    |    |[......]<p class="read-more"><a href="https://www.yusian.com/blog/reverse/2018/10/30/1057491360.html">继续阅读</a></p>

1.1、SASubviews()内部只是简单的调用UIView的recursiveDescription方法,这里输出到止断节了,事实上后面还有很多是没有打印出来的;
1.2、网上找了一些资料,我这里[……]

继续阅读