This post demonstrates how to avoid XREF in Hopper and IDA.
All posts by Cocoa
Protection against Cycript/Runtime
This post is mainly to demonstrate some possible protections against Cycript/Runtime. There are 5 parts.
- Stop cycript's choose(ClassName)
- Memcpy
- Move to our own memory blocks
- Useless setter/getter
- Encrypt memory data
保护App重要数据,防止Cycript/Runtime修改
这一篇文章着重于保护重要数据不被攻击者使用Cycript或者Runtime修改,概要内容如下:
- 防止choose(类名)
- 禁忌,二重存在
- 自己的内存块
- 虚伪的setter/getter
- 加密内存数据
获取iOS的存储空间大小
@import Darwin.sys.mount; int main(int argc, const char * agrv[]) { struct statfs buf; long long freespace = 0; if(statfs("/", &buf) >= 0){ freespace = (long long)buf.f_bsize * buf.f_blocks; } if(statfs("/private/var", &buf) >= 0){ freespace += (long long)buf.f_bsize * buf.f_blocks; } printf("%lld\n",freespace); }
C/ObjC中使用CURL判断一个网络文件是否存在
这一次是普通的笔记,注释写得比较清楚,这里就不多废口舌了。记得link上libcurl。
合并多个LRC文件
这次也是上次的延续(QRC与LRC合并),不过这次是多个LRC文件合并。这次是纯C++,不过代码风格不太好,毕竟也就只是一个小时坑出来的,没有写什么注释。
参数就是LRC文件的路径,非时间标签为处理。默认误差范围是600ms,以第一个LRC文件为准。
Hook Block Parameter in ObjC
Hook ObjC方法中的传入的block类型的参数,当然,你必须先分析出这个block它本身需要传入什么参数。
使用ScriptingBridge访问iTunes Library
之前坑过两次访问iTunes Library的方法
今天再用iTunesLibrary.framework的时候,突然发现资料库不能正确加载了,原因不明。不过还好,我们同样可以在Objective-C下使用ScriptingBridge,不用依赖于python。
iOS DEP研究(5)——还未解决的问题
iOS DEP研究(4)——更改指令集
刚才写入Section之后,虽然是成功运行,没有任何报错,但是我还没有解释清楚那个谜之数据是怎么来的。
虽然在注释里写出了ASM,但是里面其实是有坑的。