扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
新的QQwry数据库使用32位的internet IP地址代替了点分形式的IP地址(字符串),文件的前半部分存放IP地址区间,所有的IP地址划分成从大到小的区间(地址段),所有的地址描述信息在文件的后半部分。查找的过程就是按照区间从大到小的区间确定过程,关于QQwry数据文件的格式我分析地并不彻底,也就是很多地方只知道那样使用却不知道为什么。分析反汇编出来的代码并不是容易的事(因为我很菜嘛),我当时只是根据汇编代码的流程用C++重写了查询代码。演示代码中IpSearch工程中的GetDispString函数就是直接从汇编代码翻译出来的,可以看到很多变量名都是IDAPro分析出来的内存地址或寄存器名。代码看起来很丑陋,但是用起来还不错,支持当前所有版本的QQwry.dat(废话,人家格式没变嘛)。不过后来发生的事情让我很吐血,因为2004年的时候我从网上看到了下面两篇Blog:
《QQwry格式》
http://blog.csdn.net/cnss 《关于QQWry格式》
如果你想更多的了解QQwry文件的格式就可以看看这两篇Blog。
后来研究生毕业了,我将软件的代码卖给了别人,整个软件模块设计的很不错,只是那个GetDispString函数让我觉得拿不出手,于是花了点时间将其改写了,并封装成一个适用于Windows平台的类,也就是Win32工程中的CIpInfo类,这个类的使用非常简单:
希望这些代码对大家有用。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者