Charles 是常用的抓包软件,可以用于分析 http(s) 流量,使用 Java 编写。目前最新版是 4.6.2,来试下它的破解。
工具
Java Decompiler | 反编译 Java 字节码 | https://github.com/java-decompiler/jd-gui/releases |
Recaf | 编辑 Java 字节码 | https://github.com/Col-E/Recaf/releases |
Charles 是常用的抓包软件,可以用于分析 http(s) 流量,使用 Java 编写。目前最新版是 4.6.2,来试下它的破解。
Java Decompiler | 反编译 Java 字节码 | https://github.com/java-decompiler/jd-gui/releases |
Recaf | 编辑 Java 字节码 | https://github.com/Col-E/Recaf/releases |
作为练手的 160 个 CrackMe 系列整理分析
CrackMe 来源:【反汇编练习】160个CrackME索引目录1~160建议收藏备用
这个 CrackMe 使用的是 Blowfish 对称加密算法,算法本身并不复杂,只要将几个关键函数逆向后将程序的流程搞清即可。有个 upx 壳,很好脱就不说了,放着不管也无所谓。
作为练手的 160 个 CrackMe 系列整理分析
CrackMe 来源:【反汇编练习】160个CrackME索引目录1~160建议收藏备用
这个 CrackMe 使用了 RSA 算法,因为程序中也给了相应的提示,在逆的过程中就会有意识的去找这方面的特征,当然 RSA 算法还是需要事先了解下。
算法参考可见:RSA加密算法 OR RSA 算法的加密原理是什么
分析 C++ 程序时,要是能从一个二进制文件中识别出 C++ 程序的结构,并且能标识出一些主要的类和它们的关系是非常有帮助的。而其中为了实现运行时类型识别而生成的运行时类型信息(Runtime type information,RTTI)也能在程序分析上提供方便。
注意,文中讨论的 C++ 可执行文件仅限于使用 MSVC 编译器编译出的 C++ 可执行文件。
以前都是看到想拆的游戏就自己动手搞搞,但是后面就觉得麻烦了,因为 krkr 的框架都是一样的,各厂只是在封包上做了点小修改,为每个游戏都适配一遍实在是太费时间了。所以决定弄个通用点的工具出来。
这两天搞了一下 yu-ris 的 ypf 封包,这里做个简单的记录。
ypf 主要用了 zlib 进行压缩处理。包头里有文件数量和数据区起始地址等信息。文件索引表里包含了文件的偏移、压缩后长度和原始长度等基本信息,文件名则是经过取反后存储的。文件索引表非定长。
封包的结构比较清晰,只是其中的图像是经过压缩编码的。
图像分为两种,一种是文件标识为 “GE” 的单图文件,另一种则是文件标识为 “PGD3” 的差分文件。差分文件中含有一个单图文件的文件名,当引擎读取差分文件时会同时读取单图文件,解码后将两者进行混合。代码里还备有 “PGD2” 的分支,是 “PGD3” 的一个子集。不过这个游戏里似乎并没有该类型的文件,所以先不管了。
两种图像格式的结构
Copyright © 2024 Re: Memory. Powered by love.