纯真数据库mysql_纯真数据库下载或自动更新实现


用过珊瑚虫的童鞋都知道, 有个叫 "纯真数据库" 的东西, 可以查询 ip 地址对应的物理地址.

有关该数据库格式和解析的内容, 本帖子暂时不讲, 有机会的话, 偶会另行开个新帖子讲讲.

这里讲的是, 不通过官方的查询程序, 如何获取到这个数据库. 通过对官方程序进行抓包, 得出下载此数据库, 主要需要下载

http://update.cz88.net/ip/copywrite.rar

两个文件.

但是很明显,这两个压根不是 rar 文件呀! 别被扩展名迷惑了.

那么, copywrite.rar 里到底有神马东西呢?

我们来打开它

ghex copywrite.rar

好吧,老实说, 根本看不明白嘛!

那咋办?

祭出 IDA !!!!!!

struct copywritetag{

uint32_t sign;// "CZIP"

uint32_t version;//一个和日期有关的值

uint32_t unknown1;// 0x01

uint32_t unknown2;

char text[128];//提供商

char link[128];//网址

};

最新–2016-2-5版本

array(6) {

[1]=> int(1346984515)//时间戳

[2]=> int(42405) //

[3]=> int(1) //未知

[4]=> int(4825373) //文件大小

[5]=> int(783947556) //未知

[6]=> int(205) //key

}

别看他是 rar 扩展名, 肯定不是用的 rar 压缩算法. 为啥? 明显会用 zlib 这样的开源库来压缩嘛! 何况这样的压塑 php 都能做,是吧. 初步估计是 inflate 压塑, 对, 就是 zlib 用的那个. 约莫估计用 php 的 compress() 函数直接压塑来的.

啥? 你问我,这 0x200 偏移量怎么来的 ? 诶,笨, 自己比较去吧, 却是和 zlib 压塑的, 就只有前面 0x200 不一样罢了.

那么,这 0x200 个字节的数据, 到底如何解码呢?

来,再次祭出 IDA !!!!!!

好了,网上已经有了祭出 IDA 然后得出解码算法了, 咱看下

for (int i = 0; i<0x200; i++) {

key *= 0x805;

key++;

key &= 0xFF;

}

good 这样就完成了.

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/290923.html

(0)
上一篇 2022年10月12日 02:02
下一篇 2022年10月12日 02:03

发表回复

登录后才能评论