• 标 题:IP搜索客 1.61 注册码计算 (2千字)
  • 作 者:小楼
  • 时 间:2000-5-16 11:19:48
  • 链 接:http://bbs.pediy.com

IP搜索客 1.61 注册码计算

    这个软件可以根据对方的IP地址查到他的位置和ISP.可以轻松的查出给你发信人的位置,你就可以知道你的那些通过E-mail交流的网友都是哪里的人了以及他的ISP.(如:上海CHINANET(163)用户).本软件使用屏幕取词式操作(和金山词霸一样),只需将鼠标指到IP地址上就可以将它的地理位置在鼠标下方的浮动窗口中显示出来,并且可以将显示的内容复制到剪贴板.
    下载地址 http://greenstuff.363.net

首先随便输入147258369,得到告示:注册码错误。
然后用ultraedit打开ipseeker.exe,找到“注册码错误”,改为aaaaa,你还会找到“注册成功”,也改为dddd。保存后用W32DASM反汇编,如下
* Possible StringData Ref from Data Obj ->"dddddd"  注册成功
                                  |
:00403E54 68D8414300              push 004341D8
:00403E59 8BC8                    mov ecx, eax
:00403E5B E8034B0200              call 00428963

......

* Possible StringData Ref from Data Obj ->"aaaaaaaaaa"  注册失败
                                  |
:00403EC9 68B4414300              push 004341B4
:00403ECE 8BC8                    mov ecx, eax
:00403ED0 E88E4A0200              call 00428963

向上看,
:00403D64 8BCE                    mov ecx, esi
:00403D66 E8E5040000              call 00404250  <-- 比较核心
:00403D6B 85C0                    test eax, eax 
                                  <-- 注册标志,eax=1
:00403D6D 0F8427010000            je 00403E9A


在:00403D66 E8E5040000              call 00404250  进入,走到
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004044F6(C)
|
:004044D8 8A10    mov dl, byte ptr [eax]
:004044DA 8ACA    mov cl, dl
:004044DC 3A16    cmp dl, byte ptr [esi]
:004044DE 751C    jne 004044FC
:004044E0 84C9    test cl, cl
:004044E2 7414    je 004044F8
:004044E4 8A5001  mov dl, byte ptr [eax+01]
:004044E7 8ACA    mov cl, dl
:004044E9 3A5601  cmp dl, byte ptr [esi+01]
:004044EC 750E    jne 004044FC
:004044EE 83C002  add eax, 00000002
:004044F1 83C602  add esi, 00000002
:004044F4 84C9    test cl, cl
:004044F6 75E0    jne 004044D8

这里就是注册码比较的计算。
每次程序依次取两位,放入byte ptr [esi],byte ptr [esi+1],与eax, eax+1比较。如此循环。这样正确的注册码只要在
:004044DC 3A16    cmp dl, byte ptr [esi] 处 d eax, d eax+1即可。
如此抄下,最后我的注册码为 :5FBA49AD1C7CA39B