摘要:
Go设计模式总结 基本原则 单一原则 每个模块实现的功能要尽可能简单 开闭原则 尽量不要改动上版本的代码 面向接口开发 面向接口来实现多态开发,而不是面向类来开发 基本汇总 大部分的设计模式在Go中共有下面几种方式实现 使用 interface Go中 interface 还是个万能的数据类型,类似 阅读全文
摘要:
说明 目前仅支持http协议,其他协议需要用socket 使用 gin 做客户端和服务端的中间代理 快速搭建环境 创建项目文件夹 创建 ginProxy 文件夹后,进入该文件夹 mkdir ginProxy cd ginProxy 初始化mod ginProxy 为包的名称,在该目录下会生成 go. 阅读全文
摘要:
一。砸壳APP 1. 一台苹果越狱手机。 2. 在AppStore下载要调试的app,可以直接越狱手机下载,也可以在没越狱的手机下载,然后用 iMazing 或者其他助手导出 ipa 文件,再安装到越狱手机。 3. 在 Cydia 上安装 OpenSSH, 用来登了越狱手机。 4. 安装砸壳软件 C 阅读全文
摘要:
一。分析app包 1. 可以使用 apktool 进行拆包,这里不进行打包签名,直接解压,看到有如下等信息。 2. 进入 assets 查看,发现全部是 lua 文件。 3. 打开 lua 文件发现已经加密了, 且全部文件都是以 DADDY 开头,可以推测这是 cocos 加载 lua 文件。 4. 阅读全文
摘要:
一。协议格式 以太网帧格式 目的地址. 下一跳的mac地址,每一跳都会变源地址. 当前路由器的mac地址,每一跳都会改变PAD 为填充字节,28+18=46,满足数据的最小长度 46CRC 为校验帧数据是否损坏,比如奇偶校验等 arp协议格式 前三个段对应以太网的前三个段硬件类型 硬件地址有很多种, 阅读全文
摘要:
一。创建 socket 首先引入头文件 // 提供socket函数及数据结构 #include <sys/socket.h> 然后创建 socket 和 返回的文件描述符 lfd int lfd; lfd = socket(AF_INET,SOCK_STREAM,0); 声明为 int socket 阅读全文
摘要:
一。哈希表,也称散列表 如下图所示 key:键,通过它可以快速检索到对应的value。一般是数字或字符串。 value:值,目标数据。可以是复杂的数据结构。 slot: 槽,就是平时所说的哈希表的单元,全部就是哈希表的表长 bucket: 桶, 对应槽下存储的值,可以是复杂类型 哈希函数: key 阅读全文
摘要:
一。遇到的问题 在用socket接收数据时(包括前后端),会对不同功能的模块分开处理(满足单一开闭等原则),比如聊天模块,聊天里又区分世界聊天以及队伍聊天等,还有一些其他等模块,刚开始会用if else 或者switch 这些来对每个模块来处理,但后面发现,每一次模块的增加都要修改代码,而且 if 阅读全文
摘要:
一。二进制安全 数据写入时是什么样子,读出来就是什么样子,这称为二进制安全。 c语言的字符串不是二进制安全的,以\0为结束符,只能存储文本数据,不能存储图片音频等二进制数据。 举例 string.c 文件 运行后得出如下结果, a和b是相等的,长度是3,而显然a和b是不想等的,长度也应该为5,这是因 阅读全文
摘要:
一。zval对比 (上图要右键新标签打开才能看清楚) PHP的变量是由zval来存储的,PHP7之前的zval主要由value和type组成,后面增加了gc用来垃圾回收以及ref_gc来标志引用类型,共占了24字节,而在通过结构映射扩充zval来解决循环引用的问题,此时一个变量占了32字节,在扩充了 阅读全文