摘要:
1、要想数据查的块,索引是必须来相建!在一堆杂乱无章的数据中查找,那就只能顺序扫描了!为了提升效率,排序和建索引是必须的!以B+树建索引为例,MyISAM树如下: 这里的叶子节点并不是最终的数据,而是地址,需要进一步通过这个地址查到最终的数据;MyISAM不支持transaction,并且拿到叶子节 阅读全文
摘要:
前面介绍的GFS和BigTable本质上都是数据的分布式存储,核心思路并不复杂:一个集群有多个节点,通过特定的算法(比如consistent hash)找一个合适的slave存放就行了!读的时候通过同样的算法找到slave读取就行,整个流程理解起来很容易,没啥特别的!除了分布式存储,还有个很重要的需 阅读全文
摘要:
1、计算机硬件系统存储数据有两个地方:memory和hard disk! 这两者各有各的优缺点,互为补充,所以能共存至今!理论上讲:memory的读写速度是hard disk的million倍,但memory很贵,普通服务器能有256G已经很不错了,并且memory掉电就丢数据,而hard disk 阅读全文
摘要:
1、(1)逆向APP时,第一个干的事就是抓包了,抓包的结果类似下面: GET https://aweme.snssdk.com/aweme/v1/commit/item/digg/?aweme_id=6956180208793718055&type=1&channel_id=-1&city=5101 阅读全文
摘要:
1、众所周知,数据要想永久保存,肯定是要放磁盘的啦!磁盘和内存不一样,内存最小的存储单位是byte,1 byte = 8bit;但是磁盘不一样了,最小存储单位是 sector, 1 sector = 512byte!而在磁盘上,数据都是以文件file的形式存储的。假如文件大小是1kb,那就需要在磁盘 阅读全文
摘要:
互联网上所有重要数据最终的归宿都是数据库(没有之一),所以数据库就面临两个最重要的问题: 负载均衡load balance:很明显单节点的数据库肯定是无法满足性能需求的,用行话讲就是QPS很大,单节点的数据库无法承载了,必须要数据库集群来分担大量的QPS!那么问题又来了:怎么合理地把这些QPS尽可能 阅读全文
摘要:
1、我们现在用的手机、笔记本、pc等,任何功能都不再是单机,都要和后端的server通信,而通信的本质就是交换数据,重要的数据最终都会存放在server端。那么问题来了,每个用户无时无刻都在产生大量数据,这些数据在server端都是怎么存放的了? 存放好后,怎么才能快速地增删改查、做crud了? 按 阅读全文
摘要:
1、不管是逆向破解,还是正向开发,看别人的代码是必不可少的。如果别人的代码看起来特别费劲,甚至完全看不懂,原因如下: 正向开发做的太少,不了解业务需求,不知道代码的业务意义 数据结构和算法技能缺失 完全不懂设计模式,不知道代码分层的意义 本文来总结一下常见的设计模式场景! 2、(1)长时间用java 阅读全文
摘要:
逆向APP的核心目的之一就是写爬虫爬取后台的数据,诸如电商、评论、弹幕等;另一个目的就是提供sign字段的生成服务,可以通过https服务接口的形式给第三方调用!不论是做啥,为了提高效率,多线程都是必须的!可一旦涉及到多线程,线程之间的同步和互斥就必须考虑了,包括生产者和消费者之间、生产者和生产者之 阅读全文
摘要:
逆向so,unidbg这种模拟器必不可少,其优势: ida、frida遇到了严重的反调试 生产环境生成sign字段(配合springboot尤其方便,有现成的框架可以直接拿来用了:https://github.com/anjia0532/unidbg-boot-server) 可以打印JNIEnv成 阅读全文