首页
社区
课程
招聘
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
发表于: 2010-4-12 21:54 15909

一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了

2010-4-12 21:54
15909
飞狐加速器,默认账号登陆,给3天免费测试时间,应该是取硬件信息判断你的电脑是否使用过这个软件的,因为重新拨号换IP、重装系统,再次使用默认账号登陆,仍然会认出你的电脑,信息提示说3天剩余时间现在还剩多少,你的电脑登陆过几次等等信息;我想可能是判断你网卡MAC,改网卡MAC,无效;我想可能是判断你硬盘的物理ID,换了块硬盘,重新安装全新的系统,仍然无效;我没有其他硬件可换了,突然想到了虚拟机,于是把手头上有的一个XXX游戏专用版的虚拟机系统开启,系统WIN2000,竟然又给了免费3天测试!正想着从这里是否能突破,中间让朋友捎带也帮忙测试了下他的虚拟机,和我的一样,都是那个XXX游戏专用版,既然和我的完全一样,那么虚拟出来的硬件配置、硬件信息应该是完全一样的,那么此加速器应该会把他的虚拟机当做和我的虚拟机是一台电脑吧!那么他用那个虚拟机登陆这个加速器信息提示的剩余时间应该是接着我使用的剩余时间的对吧?但是,奇怪的事情发生了!他那里竟然又是一个全新的免费测试的3天!总结一下此加速器软件的奇怪之处:
1、并非根据你的IP判断你的电脑是否免费测试过,因为重新拨号换IP也不行,而且我用同一个IP下的两台电脑测试过,各是各的免费时间,这充分说明了它不是根据IP判断的;
2、并非在系统添加一些标志来判断你的电脑是否免费测试过,因为我把全盘格了,重装系统,有人说可能在一些0扇区之类格式化涉及不到的地方,那么我都换了硬盘,全新的系统,仍然不行;
3、并非根据硬件中的硬盘物理ID来判断你的电脑是否免费测试过,上面说了,换了硬盘也不行。
网络验证,无非也就这么3种:IP、软件信息、硬件信息,上面的3条把几乎所有可能都涉及进去了(别的硬件比如硬盘、CPU、主板等等我没有物理条件更换测试了,当然有可能它是取这些硬件的信息来判断的),但是仍然过不了此加速器的验证,它仍然认出了我的电脑;目前为止,可以完全排除此软件对IP地址和软件信息的验证可能了,上面已经说了,那么只有一种可能,就是硬件信息验证,因为我没有条件更换除硬盘外的其他硬件来测试它到底是取哪个硬件的信息来验证你的电脑是否免费测试过,但是上面说的我和朋友使用的完全相同的虚拟机,虚拟出来的硬件和系统都是完全相同的,此软件竟然判断为两台不同的电脑!又和前面得出的“此软件是通过验证硬件信息来判断你的电脑是否免费测试过”的结论相矛盾!那么,此软件到底是通过什么方式验证的呢?这个问题困扰我很长时间了,真是百思不得其解!如果我是CRACK高手,通过OD反汇编此软件跟踪流程就可以明白它到底是通过什么来验证你的电脑的,我是CRACK高手吗?不是!所以我头大!希望有高手老鸟们来研究下这个软件验证的方式,发来交流下。本人语文学的不好,可能表达不明白意思,前后絮叨重复的地方很多,希望大家能够仔细的看下理解下我说的意思,谢谢!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 245
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
默认采用网卡MAC地址作为唯一标识,如果取MAC地址失败,则随机生成6位数字。

然后将这个标识保存在下面的文件:C:\Program Files\Common Files\cnflyfox\flyfox.dll

解决办法:

1、 把flyfox.dll这个文件清空,然后把权限设置为任何人不可访问。
2、 将C:\windows\system32\ipconfig.exe文件删除或改名,为防止系统文件保护自动恢复,把C:\windows\system32\dllcache\ipconfig.exe也一并改名或删除。


删除ipconfig.exe的原因是飞狐靠这个来取得网卡MAC地址。
2010-4-13 00:06
0
雪    币: 1920
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果我是这软件的开发人员的话,如果你MAC地址可以改,不知道cpu ID号可以改不.如果不能改的话,我就把你的CPU ID等硬件信息记录下来,发到我服务器上存下来.你截过登录信息的数据包没有..?
2010-4-13 00:46
0
雪    币: 209
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
CPU ID只有奔腾3才有,以后的CPU中,都只有CPU特征,如生产厂家,速度,型号等,并没有唯一的ID(同厂同一批的CPU这些都是相同的)。而且楼主说修改MAC地址,恐怕是没有修改真正的MAC地址吧?真正的MAC地址只能通过刷写硬件实现的。
2010-4-13 01:05
0
雪    币: 1920
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哦.呵 呵好应该像你说的是mac地址没彻底改掉.

第一次登录的包
POST /conim/vip/vip_login1.1.php HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded;charset = GB2312Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: download.cnflyfox.com
Content-Length: 82
Connection: Keep-Alive

&user=test&psw=54f2606d07d720a9a4687018826f5741&vipnote=201003031&mac=04BE8E642346

第一次退出的包
POST /conim/vip/vip_keeplive1.0.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash,
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded;charset = GB2312
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: download.cnflyfox.com
Content-Length: 57
Connection: Keep-Alive
Cache-Control: no-cache

&action=loginout&keepliveid=1786766&applyid=363626&type=0

第二次登录
POST /conim/vip/vip_login1.1.php HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded;charset = GB2312Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: download.cnflyfox.com
Content-Length: 82
Connection: Keep-Alive

&user=test&psw=54f2606d07d720a9a4687018826f5741&vipnote=201003031&mac=04BE8E642346

我想这个要到期了处理一下子数据包不知是否有效.晚了,先睡觉了...希望能有点帮助.还有,那个密码是不是根据 mac地址跟时间生成出来的.
2010-4-13 01:24
0
雪    币: 209
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我调试了一下,发现并不像楼主所说。这个软件是通过GetAdaptersInfo来获取MAC信息的,所以可以用自定义的MAC地址来延续免费。
发送和接受用于验证的封包也是明文的:
&user=test&psw=54f2606d07d720a9a4687018826f5741&vipnote=201003031&mac=000102030405(发送)
OP=LOGIN;Succeed=Y;total_time=0;type_id=0;total_money=0;expired=2010-04-16 01:25:09;nowtime=2010-04-13 01:26:59;last_connection=2010-04-13 01:25:09;ip=**.**.**.**;gid=10;active_time=2;uid=363645;keepliveid=1786814;ver=1.0;vipnote=201003031;(接受)
稍微看一下就知道要怎么做了。
2010-4-13 01:40
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
本人太浅薄了,改网卡MAC只是通过欺骗系统软件方式来改MAC,虽然也隐隐想到了它可能是通过一些底层的方式取真实的物理MAC,绕过软件欺骗的方式,还是粗心了,让大家见笑我的无知- -谢谢楼上的大大们!真的谢谢你们!!!
2010-4-13 14:34
0
雪    币: 245
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
没你想的那么猛,别听其他人瞎掰,你照我说的做,不能破解找我。
2010-4-13 15:58
0
雪    币: 209
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那个软件并没有用ipconfig来获取MAC地址,用的是GetAdaptersInfo。而且是可以用软件修改MAC地址达到欺骗目的的。我试过可以。不知道楼主在测试的时候为什么不行。。。
2010-4-13 16:17
0
雪    币: 245
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你说用GetAdaptersInfo获取的MAC地址,那你把断点地址发来看看,程序在哪里调用的GetAdaptersInfo?
2010-4-13 16:28
0
雪    币: 209
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
那个dll文件啊
2010-4-13 19:17
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
改网卡MAC真的不行,无论是从“网络连接”的“配置”里面改,或者是直接使用软件改MAC都不行(它们原理都是一样也就是改注册表来实现对系统的欺骗)。“晕菜菜”大大的方法很好用,学习了,受用了!再次感谢!大家再讨论下我结贴给分。

4月14日测试补充:今日测试改网卡MAC是可以的!以前不行,是因为我每次都是安装了这个加速器后才改网卡MAC,安装的过程,它已经取到了你的网卡MAC(这个原本的MAC已经使用过并且过期啦)然后把信息存到了C:\Program Files\Common Files\cnflyfox\flyfox.dll中去,下次登陆的时候直接把这个文件中存的你已经过期的网卡MAC信息发到服务器上,而不检测你新的修改后的网卡MAC,所以无论你怎么改网卡MAC,都是无效的!解决方法:
1、在装此加速器之前改网卡MAC
2、直接删了C:\Program Files\Common Files\cnflyfox\flyfox.dll文件,改了网卡MAC后再次登陆此加速器,让它重新检测你的网卡MAC

唉,一切一切都怪我粗心,没有抱着严谨的态度来分析这个软件,粗心害死人啊!
2010-4-13 19:21
0
雪    币: 245
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
靠主观臆测和简单的测试,不严谨。
2010-4-13 19:53
0
雪    币: 245
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
//------------------------------------------------------------------------------------------
//
//    获取MAC地址函数
//
//    工作机制:创建进程执行"ipconfig/all"命令,然后在命令输出结果中查找字符串
//    "Physical Address. . . . . . . . . : ",如果找到,其后紧跟着的就是MAC地址
//
//------------------------------------------------------------------------------------------


0041CA30  /$  55            push    ebp
0041CA31  |.  8BEC          mov     ebp, esp
0041CA33  |.  83E4 F8       and     esp, FFFFFFF8
0041CA36  |.  6A FF         push    -1
0041CA38  |.  68 CC214500   push    004521CC                              ;  SE 处理程序安装
0041CA3D  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
0041CA43  |.  50            push    eax
0041CA44  |.  64:8925 00000>mov     dword ptr fs:[0], esp
0041CA4B  |.  51            push    ecx
0041CA4C  |.  B8 AC270000   mov     eax, 27AC
0041CA51  |.  E8 7A130100   call    0042DDD0
0041CA56  |.  A1 B4884500   mov     eax, dword ptr [4588B4]
0041CA5B  |.  8B0D B8884500 mov     ecx, dword ptr [4588B8]
0041CA61  |.  8B15 BC884500 mov     edx, dword ptr [4588BC]
0041CA67  |.  53            push    ebx
0041CA68  |.  56            push    esi
0041CA69  |.  57            push    edi
0041CA6A  |.  894424 28     mov     dword ptr [esp+28], eax
0041CA6E  |.  66:A1 C088450>mov     ax, word ptr [4588C0]
0041CA74  |.  894C24 2C     mov     dword ptr [esp+2C], ecx
0041CA78  |.  68 8C884500   push    0045888C                              ;  ASCII "Physical Address. . . . . . . . . : "
0041CA7D  |.  8D4C24 18     lea     ecx, dword ptr [esp+18]
0041CA81  |.  895424 34     mov     dword ptr [esp+34], edx
0041CA85  |.  66:894424 38  mov     word ptr [esp+38], ax
0041CA8A  |.  E8 A16CFEFF   call    00403730
0041CA8F  |.  8B4D 08       mov     ecx, dword ptr [ebp+8]
0041CA92  |.  33FF          xor     edi, edi
0041CA94  |.  57            push    edi
0041CA95  |.  68 2C504500   push    0045502C
0041CA9A  |.  89BC24 CC2700>mov     dword ptr [esp+27CC], edi
0041CAA1  |.  E8 5A5EFEFF   call    00402900
0041CAA6  |.  57            push    edi                                   ; /=== 创建管道,用于接收命令执行结果 ===
0041CAA7  |.  8D4C24 3C     lea     ecx, dword ptr [esp+3C]               ; |
0041CAAB  |.  51            push    ecx                                   ; |pSecurity
0041CAAC  |.  8D5424 20     lea     edx, dword ptr [esp+20]               ; |
0041CAB0  |.  52            push    edx                                   ; |pWriteHandle
0041CAB1  |.  8D4424 2C     lea     eax, dword ptr [esp+2C]               ; |
0041CAB5  |.  50            push    eax                                   ; |pReadHandle
0041CAB6  |.  C74424 48 0C0>mov     dword ptr [esp+48], 0C                ; |
0041CABE  |.  897C24 4C     mov     dword ptr [esp+4C], edi               ; |
0041CAC2  |.  C74424 50 010>mov     dword ptr [esp+50], 1                 ; |
0041CACA  |.  FF15 94424500 call    dword ptr [<&KERNEL32.CreatePipe>]    ; \===========================================
0041CAD0  |.  3BC7          cmp     eax, edi
0041CAD2  |.  0F84 05010000 je      0041CBDD
0041CAD8  |.  8D4424 58     lea     eax, dword ptr [esp+58]
0041CADC  |.  50            push    eax                                   ; /pStartupinfo
0041CADD  |.  C74424 5C 440>mov     dword ptr [esp+5C], 44                ; |
0041CAE5  |.  FF15 98424500 call    dword ptr [<&KERNEL32.GetStartupInfoA>; \GetStartupInfoA
0041CAEB  |.  8B4424 18     mov     eax, dword ptr [esp+18]
0041CAEF  |.  8D4C24 44     lea     ecx, dword ptr [esp+44]               ;  === 创建进程,执行命令 ipconfig/all ===
0041CAF3  |.  51            push    ecx                                   ; /pProcessInfo
0041CAF4  |.  8D5424 5C     lea     edx, dword ptr [esp+5C]               ; |
0041CAF8  |.  52            push    edx                                   ; |pStartupInfo
0041CAF9  |.  57            push    edi                                   ; |CurrentDir
0041CAFA  |.  57            push    edi                                   ; |pEnvironment
0041CAFB  |.  57            push    edi                                   ; |CreationFlags
0041CAFC  |.  6A 01         push    1                                     ; |InheritHandles = TRUE
0041CAFE  |.  57            push    edi                                   ; |pThreadSecurity
0041CAFF  |.  898424 B40000>mov     dword ptr [esp+B4], eax               ; |
0041CB06  |.  898424 B00000>mov     dword ptr [esp+B0], eax               ; |
0041CB0D  |.  57            push    edi                                   ; |pProcessSecurity
0041CB0E  |.  8D4424 48     lea     eax, dword ptr [esp+48]               ; |
0041CB12  |.  50            push    eax                                   ; |CommandLine
0041CB13  |.  57            push    edi                                   ; |ModuleFileName
0041CB14  |.  66:89BC24 B00>mov     word ptr [esp+B0], di                 ; |
0041CB1C  |.  C78424 AC0000>mov     dword ptr [esp+AC], 101               ; |
0041CB27  |.  FF15 A0424500 call    dword ptr [<&KERNEL32.CreateProcessA>>; \===========================================
0041CB2D  |.  8BF0          mov     esi, eax
0041CB2F  |.  E8 6D590200   call    004424A1
0041CB34  |.  8B10          mov     edx, dword ptr [eax]
0041CB36  |.  8BC8          mov     ecx, eax
0041CB38  |.  FF52 0C       call    dword ptr [edx+C]
0041CB3B  |.  8D58 10       lea     ebx, dword ptr [eax+10]
0041CB3E  |.  895C24 10     mov     dword ptr [esp+10], ebx
0041CB42  |.  3BF7          cmp     esi, edi
0041CB44  |.  C68424 C42700>mov     byte ptr [esp+27C4], 1
0041CB4C  |.  74 6D         je      short 0041CBBB
0041CB4E  |.  8B4424 44     mov     eax, dword ptr [esp+44]
0041CB52  |.  68 B80B0000   push    0BB8                                  ; /Timeout = 3000. ms
0041CB57  |.  50            push    eax                                   ; |hObject
0041CB58  |.  FF15 30434500 call    dword ptr [<&KERNEL32.WaitForSingleOb>; \WaitForSingleObject
0041CB5E  |.  8B4C24 18     mov     ecx, dword ptr [esp+18]
0041CB62  |.  8B35 A4424500 mov     esi, dword ptr [<&KERNEL32.CloseHandl>;  kernel32.CloseHandle
0041CB68  |.  51            push    ecx                                   ; /hObject
0041CB69  |.  FFD6          call    esi                                   ; \CloseHandle
0041CB6B  |.  33C0          xor     eax, eax
0041CB6D  |.  B9 C4090000   mov     ecx, 9C4
0041CB72  |.  8DBC24 A00000>lea     edi, dword ptr [esp+A0]
0041CB79  |.  F3:AB         rep     stos dword ptr es:[edi]
0041CB7B  |.  8B4C24 20     mov     ecx, dword ptr [esp+20]
0041CB7F  |.  6A 00         push    0                                     ; /==         读取命令输出结果           ==
0041CB81  |.  8D5424 58     lea     edx, dword ptr [esp+58]               ; |
0041CB85  |.  52            push    edx                                   ; |pBytesRead
0041CB86  |.  AA            stos    byte ptr es:[edi]                     ; |
0041CB87  |.  68 10270000   push    2710                                  ; |BytesToRead = 2710 (10000.)
0041CB8C  |.  8D8424 AC0000>lea     eax, dword ptr [esp+AC]               ; |
0041CB93  |.  50            push    eax                                   ; |Buffer
0041CB94  |.  51            push    ecx                                   ; |hFile
0041CB95  |.  FF15 9C424500 call    dword ptr [<&KERNEL32.ReadFile>]      ; \===========================================
0041CB9B  |.  85C0          test    eax, eax
0041CB9D  |.  75 7E         jnz     short 0041CC1D
0041CB9F  |.  8B5424 18     mov     edx, dword ptr [esp+18]
0041CBA3  |.  52            push    edx                                   ; /hObject
0041CBA4  |.  FFD6          call    esi                                   ; \CloseHandle
0041CBA6  |.  8B4424 44     mov     eax, dword ptr [esp+44]
0041CBAA  |.  50            push    eax                                   ; /hObject
0041CBAB  |.  FFD6          call    esi                                   ; \CloseHandle
0041CBAD  |.  8B4C24 48     mov     ecx, dword ptr [esp+48]
0041CBB1  |.  51            push    ecx                                   ; /hObject
0041CBB2  |.  FFD6          call    esi                                   ; \CloseHandle
0041CBB4  |.  8B5424 20     mov     edx, dword ptr [esp+20]
0041CBB8  |.  52            push    edx                                   ; /hObject
0041CBB9  |.  FFD6          call    esi                                   ; \CloseHandle
0041CBBB  |>  8D43 F0       lea     eax, dword ptr [ebx-10]
0041CBBE  |.  C68424 C42700>mov     byte ptr [esp+27C4], 0
0041CBC6  |.  8D48 0C       lea     ecx, dword ptr [eax+C]
0041CBC9  |.  83CA FF       or      edx, FFFFFFFF
0041CBCC  |.  F0:0FC111     lock xadd dword ptr [ecx], edx
0041CBD0  |.  4A            dec     edx
0041CBD1  |.  85D2          test    edx, edx
0041CBD3  |.  7F 08         jg      short 0041CBDD
0041CBD5  |.  8B08          mov     ecx, dword ptr [eax]
0041CBD7  |.  8B11          mov     edx, dword ptr [ecx]
0041CBD9  |.  50            push    eax
0041CBDA  |.  FF52 04       call    dword ptr [edx+4]
0041CBDD  |>  8B4424 14     mov     eax, dword ptr [esp+14]
0041CBE1  |.  83C0 F0       add     eax, -10
0041CBE4  |.  C78424 C42700>mov     dword ptr [esp+27C4], -1
0041CBEF  |.  8D48 0C       lea     ecx, dword ptr [eax+C]
0041CBF2  |.  83CA FF       or      edx, FFFFFFFF
0041CBF5  |.  F0:0FC111     lock xadd dword ptr [ecx], edx
0041CBF9  |.  4A            dec     edx
0041CBFA  |.  85D2          test    edx, edx
0041CBFC  |.  7F 08         jg      short 0041CC06
0041CBFE  |.  8B08          mov     ecx, dword ptr [eax]
0041CC00  |.  8B11          mov     edx, dword ptr [ecx]
0041CC02  |.  50            push    eax
0041CC03  |.  FF52 04       call    dword ptr [edx+4]
0041CC06  |>  32C0          xor     al, al
0041CC08  |.  8B8C24 BC2700>mov     ecx, dword ptr [esp+27BC]
0041CC0F  |.  64:890D 00000>mov     dword ptr fs:[0], ecx
0041CC16  |.  5F            pop     edi
0041CC17  |.  5E            pop     esi
0041CC18  |.  5B            pop     ebx
0041CC19  |.  8BE5          mov     esp, ebp
0041CC1B  |.  5D            pop     ebp
0041CC1C  |.  C3            retn

//------------------------------------------------------------------------------------------
//
//    生成随机伪MAC字符串
//
//    工作机制:如果获取MAC地址失败,则调用CoCreateGuid函数,取其后的6个字节
//    作为本机唯一标识。
//
//------------------------------------------------------------------------------------------


0041BD60  /$  83EC 10       sub     esp, 10
0041BD63  |.  8D0424        lea     eax, dword ptr [esp]
0041BD66  |.  50            push    eax
0041BD67  |.  FF15 F4464500 call    dword ptr [<&ole32.CoCreateGuid>]     ;  ole32.CoCreateGuid
0041BD6D  |.  0FB64C24 0F   movzx   ecx, byte ptr [esp+F]
0041BD72  |.  0FB65424 0E   movzx   edx, byte ptr [esp+E]
0041BD77  |.  0FB64424 0D   movzx   eax, byte ptr [esp+D]
0041BD7C  |.  51            push    ecx
0041BD7D  |.  0FB64C24 10   movzx   ecx, byte ptr [esp+10]
0041BD82  |.  52            push    edx
0041BD83  |.  0FB65424 13   movzx   edx, byte ptr [esp+13]
0041BD88  |.  50            push    eax
0041BD89  |.  0FB64424 16   movzx   eax, byte ptr [esp+16]
0041BD8E  |.  51            push    ecx
0041BD8F  |.  8B4C24 24     mov     ecx, dword ptr [esp+24]
0041BD93  |.  52            push    edx
0041BD94  |.  50            push    eax
0041BD95  |.  68 B0874500   push    004587B0                              ;  ASCII "%02X%02X%02X%02X%02X%02X"
0041BD9A  |.  51            push    ecx
0041BD9B  |.  E8 306DFEFF   call    00402AD0
0041BDA0  |.  B0 01         mov     al, 1
0041BDA2  |.  83C4 30       add     esp, 30
0041BDA5  \.  C3            retn

//------------------------------------------------------------------------------------------
//
//    将唯一标识(MAC地址或者随机6字节字符)保存到文件
//
//    工作机制:程序首次在本机运行时,获取MAC地址,将其保存到C:\Program Files\Common Files
//    \cnflyfox\flyfox.dll文件,以后每次启动都从该文件读取MAC地址。
//
//------------------------------------------------------------------------------------------


00413170  /$  6A FF         push    -1
00413172  |.  68 38154500   push    00451538                              ;  SE 处理程序安装
00413177  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
0041317D  |.  50            push    eax
0041317E  |.  64:8925 00000>mov     dword ptr fs:[0], esp
00413185  |.  83EC 4C       sub     esp, 4C
00413188  |.  56            push    esi
00413189  |.  8D4424 08     lea     eax, dword ptr [esp+8]
0041318D  |.  57            push    edi
0041318E  |.  50            push    eax
0041318F  |.  8BF1          mov     esi, ecx
00413191  |.  E8 DA8D0000   call    0041BF70
00413196  |.  68 78844500   push    00458478                              ;  ASCII "cnflyfox\"
0041319B  |.  50            push    eax
0041319C  |.  8D4C24 14     lea     ecx, dword ptr [esp+14]
004131A0  |.  51            push    ecx
004131A1  |.  C74424 6C 000>mov     dword ptr [esp+6C], 0
004131A9  |.  E8 F2F9FEFF   call    00402BA0
004131AE  |.  83C4 10       add     esp, 10
004131B1  |.  8B4424 0C     mov     eax, dword ptr [esp+C]
004131B5  |.  83C0 F0       add     eax, -10
004131B8  |.  C64424 5C 02  mov     byte ptr [esp+5C], 2
004131BD  |.  8D50 0C       lea     edx, dword ptr [eax+C]
004131C0  |.  83C9 FF       or      ecx, FFFFFFFF
004131C3  |.  F0:0FC10A     lock xadd dword ptr [edx], ecx
004131C7  |.  49            dec     ecx
004131C8  |.  85C9          test    ecx, ecx
004131CA  |.  7F 08         jg      short 004131D4
004131CC  |.  8B08          mov     ecx, dword ptr [eax]
004131CE  |.  8B11          mov     edx, dword ptr [ecx]
004131D0  |.  50            push    eax
004131D1  |.  FF52 04       call    dword ptr [edx+4]
004131D4  |>  8D4C24 1C     lea     ecx, dword ptr [esp+1C]
2010-4-13 20:13
0
雪    币: 245
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
至于你说的flyfox.dll调用了GetAdaptersInfo函数,你看看调用它的函数都干了嘛吧(从导出函数名GetLocalIPs就可以看出来)。

01  int __cdecl GetLocalIPs(ULONG SizePointer)
02  {
03    int v1; // edi@1
04    void *v2; // esi@3
05    void *v3; // ebp@5
06    void *v5; // eax@3
07  
08    v1 = SizePointer;
09    if ( *(_DWORD *)(SizePointer + 4) )
10      j__free(*(void **)(SizePointer + 4));
11    *(_DWORD *)(v1 + 4) = 0;
12    *(_DWORD *)(v1 + 8) = 0;
13    *(_DWORD *)(v1 + 12) = 0;
14    SizePointer = 0x280u;
15    v5 = operator new(0x280u);
16    v2 = v5;
17    if ( GetAdaptersInfo((PIP_ADAPTER_INFO)v5, &SizePointer) == ERROR_BUFFER_OVERFLOW )
18    {
19      j__free(v2);
20      v2 = operator new(SizePointer);
21    }
22    v3 = v2;
23    if ( !GetAdaptersInfo((PIP_ADAPTER_INFO)v2, &SizePointer) )
24    {
25      for ( ; v2; v2 = *(void **)v2 )
26        sub_10002670(v1, (int)v2);
27    }
28    j__free(v3);
29    return 0;
30  }
31
2010-4-13 20:42
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
晕菜菜大大实在是强,本来还准备补问下它工作的原理、如何下断截获它的工作代码,晕菜菜大大已经给出了,我也免的多此一举了
2010-4-13 20:53
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
开始给分结贴,以后有问题疑惑就找你了,晕菜菜大大~~~
2010-4-13 20:55
0
雪    币: 209
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
恩..我水了..没有仔细去看代码..既然是用ipconfig来获取MAC,那修改MAC地址也是可以的..楼主一开始说得太恐怖了..
2010-4-13 22:55
0
雪    币: 82
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
哇,在这个贴子里学到的东西太多啦,哈哈,感激各位。
2010-4-13 23:54
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
不错的教程,可以让新人练手
2010-8-18 13:49
0
雪    币: 323
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
用16进制编辑器打开安装目录下的FlyFox.exe,查找ipconfig,替换为任意东东,就不用删除或改名系统中的ipconfig了
2010-9-8 10:57
0
雪    币: 119
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
上面的办法很巧妙
2010-9-8 12:00
0
游客
登录 | 注册 方可回帖
返回
//