摘要:
1、计算的内存和磁盘都是用来存储数据的,作用上没有本质区别,但是这两种存储介质的特性却差异巨大: 内存需要上电才能存储数据,一旦掉电数据就没了,磁盘却不需要用电也能保存数据 内存的速度很快,大约100ns就能读写数据,而磁盘是毫秒级别的,理论速度差了几万倍; 所以计算机运行时为了追求速度,会尽量把数 阅读全文
摘要:
1、windows中可执行文件是PE格式的,以exe作为后缀结尾(当然驱动sys和动态链接dll也是PE格式的,但普通用户用不上);用户使用也很方便,直接双击exe文件就能开始运行了;linux也类似,可执行文件是ELF格式的,用户双击也能运行;这么方便的功能在底层是怎么实现的了?先阐述一下大概的流 阅读全文
摘要:
linux的设计理念:万物皆文件!换句话说:所有的设备,包括但不限于磁盘、串口、网卡、pipe管道、打印机等统一看成是文件。对于用户来说,所有操作都是通过open、read、write、ioctl、close等接口操作的,确实很方便;但是对于linux,底层明明是不同的硬件设备,这些设备怎么才能统一 阅读全文
摘要:
对于普通用户,平时使用操作系统是肯定涉及到创建、更改、删除文件(比如mkdir、rmdir、rm、chmod、ln等);有些文件是高权限用户建的,低权限用户甚至都打不开,也删不掉;为了方便管理不同业务类型的文件,还需要在不同的逻辑分区建文件夹,分门别类各种文件;linux下用ls -l命令还可以查看 阅读全文
摘要:
对于普通用户而言,日常用的都是windows操作系统。windows把整个物理硬盘分成C、D、E、F.....等逻辑分区,用户可以随意在各个逻辑分区存放数据文件;逻辑分区之间是独立互不影响的,格式化某个逻辑分区,不会影响其他逻辑分区的数据,所以C、D、E、F.....等逻辑分区就是磁盘的根目录;如果 阅读全文
摘要:
众所周知,计算机系统在掉电后也能存储数据的就是磁盘了,所以大量数据大部分时间是存放在磁盘的;现在新买的PC,磁盘从数百G到1TB不等;服务器的磁盘从数十TB到上百TB,这么大的存储空间,该怎么高效地管理和使用了?站在硬件角度,cpu的分页机制把虚拟内存切割成大量4KB大小的块,所以4KB也成了硬件层 阅读全文
摘要:
用户的应用程序会经常读写磁盘文件的数据到内存,但是内存的速度和磁盘的速度理论上差了好几个数量级;为了更高效地解决内存和磁盘的速度差,linux也在内存使用了缓存区(作用类似于cpu内部为了解决寄存器和内存速度差异的的L1、L2、L3 cache):如果数据要写入磁盘文件,先放在缓存区,等凑够了一定数 阅读全文
摘要:
不论是做正向开发,还是逆向破解,操作系统、编译原理、数据结构和算法、计算机组成原理、计算机网络、密码学等都是非常核心和关键的课程。为了便于理解操作系统原理,这里从linux 0.11开始解读重要和核心的代码!简单理解:操作系统=计算机组成原理+数据结构和算法! 用户从开机上电开始,cpu会先用bio 阅读全文
摘要:
1、上次自己构造了一个app来调用x音的关键so,结果在一条“LDR R0, [R4,#0xC] “语句卡住了:通过ida查看得知:R4就是第三个参数,这里被当成了地址使用(java层怪不得用long类型)!第三个参数我是用frida hook得到的,换了个环境地址肯定也变了,所以这里直接”抄袭“拿 阅读全文
摘要:
之前逆向中,通过ida栈回溯找到了一些函数,但分析起来还是费劲,主要的痛点: 代码量大:libmetasec_ml的text段从0x7c50开始,0x84170结束;粗略估计代码超过13万行(这还不包括init段的代码); ; 尝试着用CE在内存中找各种加密的magic number、url,然后下 阅读全文