操作系统
文章平均质量分 64
cc_coders
代码,改变世界的力量!
展开
-
反汇编iOS App为可编译xcode工程
我研究了反编译的原理,发现好多反编译工具只会帮忙翻译出代码段的汇编语言,没有办法直接反编译成可以直接编译执行的xcode工程(hopper disassmbler 和ida反汇编的无法编译),因为我利用工具otool -tV machOFile,先反编译出代码段,然后对照clang -S xxx.m 编译出的汇编语言,写了一个工具,将数据段的变量也反汇编到代码,生成了一个oc xcode工程对应的 汇编xcode工程,验证了执行结果是一样的。但是,更为复杂的工程,需要更为精细地了解maco-O dyld-i原创 2021-08-31 17:56:28 · 511 阅读 · 0 评论 -
fishHook实现原理
fishhook原理像NSLog这种系统提供的函数是在动态库里面的。在动态库的实现代码被加载之前,"NSLOG"这个符号会对应到一个叫做lazy_symbol_Pointers(__la_symbol_ptr)的表里面的某一项,这一次项的值将会存放指向NSLOG函数的实现地址。这个地址在调用到NSLOG函数的时候才会被填入。MachO文件分为三部分:header段(CPU架构、文件大小等简要信息)load commands指名动态库等资源如何被加载data (存放代码\符号表\字符表\原创 2021-07-14 16:45:10 · 215 阅读 · 0 评论 -
记一次越狱砸壳iOSApp的艰辛过程
越狱砸壳目的:学习别人家的优秀app越狱的过程:1.先用un越狱ios13.5.1 各种折腾,失败;找了一台iOS 12.5.1爱思越狱,各种折腾,然后失败;某鱼花200买了台iOS10 iphone 5s,越狱失败(Cydia闪退且无法抹除数据);再买一台iphoen 6p iOS 10.2.1 (¥368),爱思越狱终于成功。2.显示用dumpdecrypted砸了主mach-o文件,但是发现还有动态库frameWork 文件也需要砸壳参考这篇文章iOS逆向(11)-砸壳原理剖析,主动加原创 2021-07-09 10:51:30 · 1138 阅读 · 0 评论 -
自旋锁、互斥锁、信号量、读写锁、递归锁、乐观锁、悲观锁的底层实现
自旋锁、互斥锁、信号量、读写锁、递归锁、乐观锁、悲观锁(一)我们知道 每个操作系统都有这样一些锁,各个锁之间好像可以互相转换,但概念上又总是模棱两可。下面从Linux系统对这些锁的实现方式下手,谈一下这些锁之间的联系。原子性:一条汇编指令的执行过程中是原子性的,cpu不可能将一条汇编语言执行一半,然后去执行别的汇编指令。这称为原子性,及,一条汇编语言就是cpu最小的执行时间单位,不可以分割,执行的时候不可暂停。因此,实现单一变量的原子读写操作是容易的,只要保证读写操作只对应一条汇编语言即可。但是,很多原创 2021-06-22 14:49:29 · 854 阅读 · 1 评论