流星网络电视 MeteorNetTV 2.86版算法分析
00520B13|.BA A80C5200 mov edx,MeteorNe.00520CA8 ;\SOFTWARE\Microsoft\Windows\CurrentVersion\olympic00520B1A|.E8 9DBEF1FF call MeteorNe.0043C9BC ;打开注册表
00520B1F|.84C0 test al,al
00520B21|.74 14 je XMeteorNe.00520B37
00520B23|.8B0D A8975200 mov ecx,dword ptr ds: ;MeteorNe.0052B234
00520B29|.8B09 mov ecx,dword ptr ds: ;ASCII "6ED4A17967C7")
00520B2B|.BA E40C5200 mov edx,MeteorNe.00520CE4 ;pic
00520B30|.8BC3 mov eax,ebx
00520B32|.E8 E9C2F1FF call MeteorNe.0043CE20 ;setvalue
00520B37|>8BC3 mov eax,ebx
00520B39|.E8 E6BDF1FF call MeteorNe.0043C924 ;closekey
----------------------------------------------------------------------------------
00520D2C=MeteorNe.00520D2C (ASCII "MeteorTV.username")
edx=00E38930, (ASCII "SoftWare\Microsoft\Windows\CurrentVersion\patron")
00520B61|.BA F00C5200 mov edx,MeteorNe.00520CF0 ;\SoftWare\Microsoft\Windows\CurrentVersion\patron
00520B66|.8BC3 mov eax,ebx
00520B68|.E8 4FBEF1FF call MeteorNe.0043C9BC
00520B6D|.84C0 test al,al
00520B6F|.74 1F je XMeteorNe.00520B90
00520B71|.8D4D B8 lea ecx,
00520B74|.BA 2C0D5200 mov edx,MeteorNe.00520D2C ;MeteorTV.username
00520B79|.8B45 F8 mov eax,
00520B7C|.E8 8B78F5FF call MeteorNe.0047840C ;。。
00520B81|.8B4D B8 mov ecx, ;ASCII "F9C6DB58FA6AF7C70AE96C39FEF54C99"
00520B84|.BA 480D5200 mov edx,MeteorNe.00520D48 ;mortal
00520B89|.8BC3 mov eax,ebx
00520B8B|.E8 90C2F1FF call MeteorNe.0043CE20 ;SetValue
00520B90|>8BC3 mov eax,ebx
根据name求出的值放这里
00520B99|.E8 9230EEFF call MeteorNe.00403C30
00520B9E|.6A 40 push 0x40
00520BA0|.B9 500D5200 mov ecx,MeteorNe.00520D50 ;提示
00520BA5|.BA 580D5200 mov edx,MeteorNe.00520D58 ;为了验证注册信息的有效性,程序将自动退出,您需要重新运行本软件。
00520BAA|.A1 50995200 mov eax,dword ptr ds:
00520BAF|.8B00 mov eax,dword ptr ds:
上面只是把注册信息加密后存到注册表
重启验证,这里只是写值
005196B8|.8B55 F0 mov edx,dword ptr ss: ;name DES加密后的结果
005196BB|.8D83 A4050000 lea eax,dword ptr ds:
005196C1|.E8 72B4EEFF call MeteorNe.00404B38
005196C6|>8BC6 mov eax,esi
005196C8|.E8 5732F2FF call MeteorNe.0043C924
005196CD|.8BC6 mov eax,esi
005196CF|.E8 5CA5EEFF call MeteorNe.00403C30
005196D4|.8D4D EC lea ecx,dword ptr ss:
005196D7|.BA F89B5100 mov edx,MeteorNe.00519BF8 ;MeteorTV.username
005196DC|.8B83 A4050000 mov eax,dword ptr ds:
005196E2|.E8 0DEFF5FF call MeteorNe.004785F4 ;DES解密
……
005196F8|.8B83 A4050000 mov eax,dword ptr ds: ;name
005196FE|.E8 F5FAF5FF call MeteorNe.004791F8 ;md5加密
00519703|.8D4D E8 lea ecx,dword ptr ss:
00519706|.BA 149C5100 mov edx,MeteorNe.00519C14 ;killyou?yes
0051970B|.8B45 FC mov eax,dword ptr ss:
0051970E|.E8 4D3BFCFF call MeteorNe.004DD260 ;!!!
……
00519721|.BA 289C5100 mov edx,MeteorNe.00519C28 ;http://www.jesen.cn
00519726|.8B83 A8050000 mov eax,dword ptr ds:
0051972C|.E8 DBECF5FF call MeteorNe.0047840C
00519731|.8B55 E0 mov edx,dword ptr ss: ;ASCII "7FB1CCEBD2482153")
00519734|.8D4D E4 lea ecx,dword ptr ss:
00519737|.8B45 FC mov eax,dword ptr ss:
0051973A|.E8 CDECF5FF call MeteorNe.0047840C ;DES
0051973F|.8B55 E4 mov edx,dword ptr ss:
00519742|.8D45 FC lea eax,dword ptr ss:
00519745|.E8 32B4EEFF call MeteorNe.00404B7C
0051974A|.8D55 DC lea edx,dword ptr ss:
0051974D|.8B45 FC mov eax,dword ptr ss:
00519750|.E8 A3FAF5FF call MeteorNe.004791F8 ;md5
……
005197E8|.E8 17B8EEFF call MeteorNe.00405004 ;第0x10位开始 取5位
005197ED|.FF75 C4 push dword ptr ss:
005197F0|.8D45 C0 lea eax,dword ptr ss:
005197F3|.50 push eax
005197F4|.B9 04000000 mov ecx,0x4
005197F9|.BA 04000000 mov edx,0x4
005197FE|.8B45 FC mov eax,dword ptr ss:
00519801|.E8 FEB7EEFF call MeteorNe.00405004 ;第0x4位开始 取4位
00519806|.FF75 C0 push dword ptr ss:
00519809|.8D45 BC lea eax,dword ptr ss:
0051980C|.50 push eax
0051980D|.B9 04000000 mov ecx,0x4
00519812|.BA 12000000 mov edx,0x12
00519817|.8B45 FC mov eax,dword ptr ss:
0051981A|.E8 E5B7EEFF call MeteorNe.00405004 ;第0x12开始 取4位
0051981F|.FF75 BC push dword ptr ss:
00519822|.8D45 B8 lea eax,dword ptr ss:
00519825|.50 push eax
00519826|.B9 03000000 mov ecx,0x3
0051982B|.BA 1D000000 mov edx,0x1D
00519830|.8B45 FC mov eax,dword ptr ss:
00519833|.E8 CCB7EEFF call MeteorNe.00405004 ;1d开始 取3位
00519838|.FF75 B8 push dword ptr ss:
0051983B|.8D45 C8 lea eax,dword ptr ss:
0051983E|.BA 04000000 mov edx,0x4
00519843|.E8 1CB6EEFF call MeteorNe.00404E64 ;取出来的拼接起来
00519848|.8B45 C8 mov eax,dword ptr ss:
0051984B|.8D55 CC lea edx,dword ptr ss:
0051984E|.E8 A5F9F5FF call MeteorNe.004791F8 ;md5加密
00519853|.8B45 CC mov eax,dword ptr ss:
00519856|.8D4D D0 lea ecx,dword ptr ss:
00519859|.BA 449C5100 mov edx,MeteorNe.00519C44 ;Impressions
0051985E|.E8 A9EBF5FF call MeteorNe.0047840C ;DES加密
00519863|.8B45 D0 mov eax,dword ptr ss:
00519866|.B9 0A000000 mov ecx,0xA
0051986B|.BA 06000000 mov edx,0x6
00519870|.E8 8FB7EEFF call MeteorNe.00405004 ;第6位开始 取A位
00519875|.C705 3CB25200>mov dword ptr ds:,0x1
0051987F|.8D4D F8 lea ecx,dword ptr ss:
00519882|.BA 589C5100 mov edx,MeteorNe.00519C58 ;nmmd-sgpj
00519887|.B8 6C9C5100 mov eax,MeteorNe.00519C6C ;[标准版]
……
00519A49|.A1 34B25200 mov eax,dword ptr ds: ;取这个地址内的值上面的结果的4位开始取6位
00519A4E|.E8 B1B5EEFF call MeteorNe.00405004
00519A53|.8B85 70FFFFFF mov eax,dword ptr ss:
00519A59|.8D95 74FFFFFF lea edx,dword ptr ss:
00519A5F|.E8 6037FCFF call MeteorNe.004DD1C4 ;转成16进制文本
00519A64|.8B85 74FFFFFF mov eax,dword ptr ss:
00519A6A|.8D8D 78FFFFFF lea ecx,dword ptr ss:
00519A70|.BA A49C5100 mov edx,MeteorNe.00519CA4 ;sgpj-nmmd
00519A75|.E8 92E9F5FF call MeteorNe.0047840C ;DES
00519A7A|.8B85 78FFFFFF mov eax,dword ptr ss:
00519A80|.50 push eax
00519A81|.8D85 64FFFFFF lea eax,dword ptr ss:
00519A87|.50 push eax
00519A88|.B9 06000000 mov ecx,0x6
00519A8D|.BA 04000000 mov edx,0x4
00519A92|.8B83 6C050000 mov eax,dword ptr ds: ;取注册码加密后的值
00519A98|.E8 67B5EEFF call MeteorNe.00405004
00519A9D|.8B85 64FFFFFF mov eax,dword ptr ss:
00519AA3|.8D95 68FFFFFF lea edx,dword ptr ss:
00519AA9|.E8 1637FCFF call MeteorNe.004DD1C4
00519AAE|.8B85 68FFFFFF mov eax,dword ptr ss:
00519AB4|.8D8D 6CFFFFFF lea ecx,dword ptr ss:
00519ABA|.BA A49C5100 mov edx,MeteorNe.00519CA4 ;sgpj-nmmd
00519ABF|.E8 48E9F5FF call MeteorNe.0047840C ;DES
00519AC4|.8B95 6CFFFFFF mov edx,dword ptr ss:
00519ACA|.58 pop eax
00519ACB|.E8 20B4EEFF call MeteorNe.00404EF0 ;比较
00519AD0 75 5F jnz XMeteorNe.00519B31 ;跳了死
程序验证是F(用户名,机器码) == F(序列号)
看下图。。
其中黄色部分和序列号的处理是一样的!!!所以去这上面的值作为注册码就可以了!!
启动时候还有一处网络验证的地方,如果没通过会删除注册表信息。。
0051AECD .E8 929FEEFF call MeteorNe.00404E64 ;连接字符串
0051AED2 .8B45 B4 mov eax,dword ptr ss:
0051AED5 .8D55 B8 lea edx,dword ptr ss:
0051AED8 .E8 6B20FCFF call MeteorNe.004DCF48 ; 网络验证
0051AEDD .8B45 B8 mov eax,dword ptr ss:
……
0051AF60 . /75 08 jnz XMeteorNe.0051AF6A ;!!
0051AF62 . |8B45 FC mov eax,dword ptr ss:
0051AF65 . |E8 0EE6FFFF call MeteorNe.00519578 ;删除注册信息
0051AF6A > \8D4D EC lea ecx,dword ptr ss:
除了启动时候有验证,很多台也有网络验证。。。虚拟机什么都没改不知道怎么通过了网络验证。。。。。主机就不行。看人品了
最后来张虚拟机通过的。。。
下面是自己写的python注册机源码。。DES加密自己写了一遍。水平很渣,凑合着看吧。。
赞一个,学习了。原来是大蛇写的啊。 牛X,建议分析文章发软件安全版块~~~~~~ 很牛的分析,膜拜中 膜拜会分分析注册机的大牛~~~ 给力哈,膜拜大牛 十分厉害!!!赞啊 大牛啊,膜拜会算法的大牛 我偷偷告诉你 ~~ 太厉害了!