iOS APP反重签名检测


逆向刺激战场被检测到非App store渠道下载,被封号。 通过Hopper找到反编译MSRqdBundleUtil,生成伪代码,发觉其是通过检测embedded.mobileprovision文件判断签名。

@implementation MSRqdBundleUtil
+ (id)isTheAppStoreEnvironment
{
    asm{ stp        x20, x19, [sp, #0xffffffe0]! };
    asm{ stp        x29, x30, [sp, #0x10] };
    r0 = [NSBundle mainBundle]...

Read more

Mac iTunes中导出 Apple Music歌曲


Apple music由于版权问题,下载的歌曲无法直接导出播放

下面介绍怎么在mac中找到apple music下载的歌曲:

  • 终端查找mac中的m4p文件
$ find ~/Music/iTunes  -iname "*m4p"
  • 或者直接进入apple music资源库的目录
    $ open ~/Music/iTunes/iTunes\ Media/Apple\ Music/

即使找到了歌曲也无只能在iTunes和QuickTime player上播放。这是因为Apple music下载的歌曲带有DRM加密的m4p音乐文件。 介绍一款app,就是TunesKit Apple Mu...

Read more

git clone fatal: The remote end hung up unexpectedly


  • git clone error

随着项目的更新.git越来越大,最近在一台新的mac上clone项目时一直失败,出现The remote end hung up unexpectedly的异常,特别是资源库在国外的情况下。此问题可能由网络原因引起。

下面是git clone error日志:

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree clone https://alpface@github.com/alpface/alpface.git /Users...

Read more

iOS 抓包之rvictl


在此之前我都是通过wifi连入我的mac,通过Charles来进行数据抓取及分析,但是其只适用于http协议,对于socket通讯无能为力。 使用XCode内置工具rvictl 即可实现对所有类型的数据包进行抓取、查看。

需求:iOS系统要求5.0以上,拥有Mac OS 并且安装XCode

rvictl 抓包步骤:

  • 使用USB数据线将iOS设备连接到MAC上 首先需要获得iOS设备的UDID,使用Xcode的Organizer查看
  • 创建RVI接口

    $ rvictl -s 你设备的UUID

    此时会输出 Starting device 265d34997640921b66d69b807f7...

Read more

iOS Aspects hook 类方法


class 与 metaclass 有什么区别呢 class 是 instance object 的类类型。当我们向实例对象发送消息(实例方法)时,我们在该实例对象的 class 结构的 methodlists 中去查找响应的函数,如果没找到匹配的响应函数则在该 class 的父类中的 methodlists 去查找。如下面的代码中,向str 实例对象发送 lowercaseString 消息,会在 NSString 类结构的 methodlists 中去查找 lowercaseString 的响应函数。

NSString * str;
[str lowercaseString];

me...

Read more

IOS使用cocoapods出现Pods-resources.sh: Permission denied编译失败的决方案


从其他mac上创建的项目使用cocoapods编译运行正常,当拷贝到另外一台mac时出现build error:

/Users/swae/Library/Developer/Xcode/DerivedData/AlpVideoCamera-czykgutyomlfavgvmhxzumalwvnz/Build/Intermediates.noindex/AlpVideoCamera.build/Debug-iphoneos/AlpVideoCamera.build/Script-11999C1F56E557BEFAA1A12B.sh: line 2: /Users/swae/Desktop...

Read more

Django使用Token


基于Token的身份验证

在实现登录功能的时候,正常的B/S应用都会使用cookie+session的方式来做身份验证,后台直接向cookie中写数据,但是由于移动端的存在,移动端是没有cookie机制的,所以使用token可以实现移动端和客户端的token通信.

验证流程

整个基于Token的验证流程如下:

  1. 客户端使用用户名跟密码请求登录
  2. 服务器收到请求,去验证用户名和密码
  3. 验证成功后,服务端会签发一个Token,再把这个Token发送到客户端
  4. 客户端收到的Token以后可以把它存储起来,比如放在Cookie或LocalStorage里
  5. 客户端每次向服务器发送其他请求的时候都...

Read more

iOS 12.0 beta 版 SDWebImage 无法显示webp图片 (SDWebImage Cannot display WebP image on iOS 12.0 beta)


问题:

iOS12 beta版本使用SDWebImage下载webp后,无法显示。 联调发现-sd_rawWebpImageWithData:返回nil,图片解码decoding时失败,此问题影响的是真机,在iOS12的模拟器可正常显示。

在SDWebImage的Github页面找到了解决方案: 其他开发者提到问题#2347 此问题由DreamPiggy#2348中解决

解决方法:

通过SDWebImage的Releases可以看到在4.4.1版本解决了webp不能显示的问题,那么我们只需要修改podfile即可:

pod 'SDWebImage', '~> 4.4.1'

备...

Read more

Mac 爬虫error: chromedriver' executable needs to be in PATH


安装selenium

pip install selenium

Mac 下使用selenium打开一个空的浏览器窗口:

from selenium import webdriver
driver = webdriver.Chrome()

报错:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

解决...

Read more

Mac上 Python安装Pillow问题


问题

安装 pip install Pillow==3.3.0 的时候出错

ValueError: zlib is required unless explicitly disabled using --disable-zlib, aborting

原因是pillow在3.0以上的版本需要有依赖库, libjpegzlib

解决方法 :

打开mac的终端, 安装brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

通过brew安装li...

Read more