遥志代理服务器(CCProxy) V6.2
CCProxy是国内最流行、下载量最大的国产代理服务器软件。主要用于局域网内共享Modem、ADSL、宽带、专线、ISDN等代理上网。它具有
两项最主要功能:代理共享上网和客户端代理权限管理。只要局域网内有一台机器能够上网,其它机器就可通过这台机器上安装的
CCProxy代理共享上网。支持浏览器代理、邮件代理、游戏代理等等,可以控制客户端代理上网权限,针对不同用户合理安排上网时间,
监视上网记录,限制不同用户带宽流量,十种文字界面,设置简单,功能强大,适合中小企业共享代理上网。新版本6.2中又增加了服务
器IP绑定功能、详细的日志分析功能、加强过滤功能(端口屏蔽、站点过滤)、更强大的帐号管理功能(组管理、使用时间),还有远程
WEB方式帐号管理。
遥志软件联系方式:
http://www.yaozhi.com
销售:010-82616330 010-82616331 技术支持:010-82613296 传真:010-82616305
http://www.skycn.com/soft/1058.html
========================================================================================================================
开始一看没有壳 本想算了的 但又一看 发现有MD5 所以就用OD看看了(全部在XP下)
先看字符参考 看看有没有有用的信息 搜索reg看看
地址=0040A757*a
反汇编=push CCProxy.004760AC
文本字符=ASCII "/reg/index.php"
地址=0040A93E*b
反汇编=push CCProxy.00476084
文本字符=ASCII "RegCode"
看看Code是如何的
0040A92E |. 68 70B44700 push CCProxy.0047B470 ; /FileName = "" <=======PI
0040A933 |. C1E9 02 shr ecx, 2 ; |
0040A936 |. F3:A5 rep movsd ; |
0040A938 |. 8BCA mov ecx, edx ; |
0040A93A |. 50 push eax ; |String
0040A93B |. 83E1 03 and ecx, 3 ; |
0040A93E*a|. 68 84604700 push CCProxy.00476084 ; |Key = "RegCode"
0040A943 |. F3:A4 rep movsb ; |
0040A945 |. 68 9C5F4700 push CCProxy.00475F9C ; |Section = "System"
0040A94A |. FF15 28434600 call near dword ptr ds:[<&KERNEL32.WritePr>; \WritePrivateProfileStringA
一看是WritePrivateProfileStringA 唉... 写ini文件 在上面PI处下断点
0040A757*b|. 68 AC604700 push CCProxy.004760AC ; ASCII "/reg/index.php"
0040A75C |. 68 A8604700 push CCProxy.004760A8 ; ASCII "GET"
0040A761 |. 56 push esi
0040A762 |. 897424 34 mov dword ptr ss:[esp+34], esi
0040A766 |. FF15 10464600 call near dword ptr ds:[<&WININET.HttpOpen>; WININET.HttpOpenRequestA
不知道是干什么的 不敢随便说:) 自己查插HttpOpenRequestA是干什么的哈 也好教教我:)
好了F9吧 什么也没断下来...正常~~~ 点一下断点PI
0040A92E |. 68 70B44700 push CCProxy.0047B470 ; /FileName = "D:\Program Files for XP\CCProxy\CCProxy.ini"
唉 原来是写这个ini文件 那我们就可以找读ini的操作GetPrivateProfileStringA 有很多 看看谁和RegCode相关
地址=0040A9EE
反汇编=call near esi
目标=kernel32.GetPrivateProfileStringA
地址=0040E21A
反汇编=call near ebx
目标=kernel32.GetPrivateProfileStringA
下断点咯...
随便注册一个 按按钮会中断在0040A9EE F8一步一步看看
0040A9EE |. FFD6 call near esi ; \GetPrivateProfileStringA
0040A9F0 |. 68 70B44700 push CCProxy.0047B470 ; /IniFileName = "D:\Program Files for
XP\CCProxy\CCProxy.ini"
0040A9F5 |. 8D9424 90010000 lea edx, dword ptr ss:[esp+190] ; |
0040A9FC |. 68 00040000 push 400 ; |BufSize = 400 (1024.)
0040AA01 |. 52 push edx ; |ReturnBuffer
0040AA02 |. 68 38B34700 push CCProxy.0047B338 ; |Default = ""
0040AA07 |. 68 E4604700 push CCProxy.004760E4 ; |Key = "UserName"
0040AA0C |. 68 9C5F4700 push CCProxy.00475F9C ; |Section = "System"
0040AA11 |. FFD6 call near esi ; \GetPrivateProfileStringA
0040AA13 |. 8D8424 8C010000 lea eax, dword ptr ss:[esp+18C]
0040AA1A |. 8D8C24 900D0000 lea ecx, dword ptr ss:[esp+D90]
0040AA21 |. 50 push eax
0040AA22 |. 51 push ecx
0040AA23 |. E8 F8F9FFFF call CCProxy.0040A420 <=========PS
0040AA28 |. 83C4 08 add esp, 8
0040AA2B |. A3 9C6C4A00 mov dword ptr ds:[4A6C9C], eax
0040AA30 |. 85C0 test eax, eax
0040AA32 |. 0F84 7B010000 je CCProxy.0040ABB3 <======这里跳转了
因为跳得比较远 所以有必要注意一下他上面得Call 在
进去后....走了几遍
0040A358 |> /8A8434 50010000 /mov al, byte ptr ss:[esp+esi+150]
0040A35F |. |83C0 08 |add eax, 8
0040A362 |. |25 FF000000 |and eax, 0FF
0040A367 |. |50 |push eax
0040A368 |. |68 54604700 |push CCProxy.00476054 ; ASCII "%02x"
0040A36D |. |57 |push edi
0040A36E |. |E8 E45C0300 |call CCProxy.00440057
0040A373 |. |83C4 0C |add esp, 0C
0040A376 |. |46 |inc esi
0040A377 |. |83C7 02 |add edi, 2
0040A37A |. |83FE 06 |cmp esi, 6
0040A37D |.^\7C D9 \jl short CCProxy.0040A358
|========> 08 58 5e c8 08 10 (08585ec80810)
00409F86 |> /8A18 /mov bl, byte ptr ds:[eax]
00409F88 |. |8ACB |mov cl, bl
00409F8A |. |3A1E |cmp bl, byte ptr ds:[esi]
00409F8C |. |75 1C |jnz short CCProxy.00409FAA
00409F8E |. |84C9 |test cl, cl
00409F90 |. |74 14 |je short CCProxy.00409FA6
00409F92 |. |8A58 01 |mov bl, byte ptr ds:[eax+1]
00409F95 |. |8ACB |mov cl, bl
00409F97 |. |3A5E 01 |cmp bl, byte ptr ds:[esi+1]
00409F9A |. |75 0E |jnz short CCProxy.00409FAA
00409F9C |. |83C0 02 |add eax, 2
00409F9F |. |83C6 02 |add esi, 2
00409FA2 |. |84C9 |test cl, cl
00409FA4 |.^\75 E0 \jnz short CCProxy.00409F86
|=========>这只是比较Code明码..... 唉
跟踪上面的代码
0042E160 |> /33C0 xor eax, eax
0042E162 |. |33C9 xor ecx, ecx
0042E164 |. |8A4434 09 mov al, byte ptr ss:[esp+esi+9]
0042E168 |. |8A4C34 18 mov cl, byte ptr ss:[esp+esi+18]
0042E16C |. |0BC1 or eax, ecx
0042E16E |. |50 push eax
0042E16F |. |68 54604700 push CCProxy.00476054 ; ASCII "%02x"
0042E174 |. |57 push edi
0042E175 |. |E8 DD1E0100 call CCProxy.00440057
0042E17A |. |83C4 0C add esp, 0C
0042E17D |. |46 inc esi
0042E17E |. |83C7 02 add edi, 2
0042E181 |. |8D56 01 lea edx, dword ptr ds:[esi+1]
0042E184 |. |83FA 10 cmp edx, 10
0042E187 |.^\72 D7 jb short CCProxy.0042E160
|=========>cf cf 16 1f 9f db eb 77 f6 af 0b 2e 2e 8e ce db d9 (有关hunter_boy的运算)
0042E160 |> /33C0 xor eax, eax
0042E162 |. |33C9 xor ecx, ecx
0042E164 |. |8A4434 09 mov al, byte ptr ss:[esp+esi+9]
0042E168 |. |8A4C34 18 mov cl, byte ptr ss:[esp+esi+18]
0042E16C |. |0BC1 or eax, ecx
0042E16E |. |50 push eax
0042E16F |. |68 54604700 push CCProxy.00476054 ; ASCII "%02x"
0042E174 |. |57 push edi
0042E175 |. |E8 DD1E0100 call CCProxy.00440057
0042E17A |. |83C4 0C add esp, 0C
0042E17D |. |46 inc esi
0042E17E |. |83C7 02 add edi, 2
0042E181 |. |8D56 01 lea edx, dword ptr ds:[esi+1]
0042E184 |. |83FA 10 cmp edx, 10
0042E187 |.^\72 D7 jb short CCProxy.0042E160
|==========>39 5e 7b 7e 7f 75 7f ef f3 fb ff f3 a3 f7 d6 df 88
(395e7b7e7f757feff3fbfff3a3f7d6df88有关08585ec80810的运算)
好了,回到上面的明码比较去了
================================================================================================
hunter_boy 395e7b7e7f757feff3fbfff3a3f7d6df88
失败在于1.RegCode写到INI文件当中去了2.进行明码比较 初学者的错误 那样的话即使有MD5也没发挥做用呀~~~~~ 3.没加壳没检测
应该是初学者吧 要不就是已经被人修改了或者是真正意义上的软件制作者(只重视软件本身 呵呵)
说到这里我其实是想了解他的算法 但我水平有限呀 所以还希望哪位大哥能把算法讲解一下 我还要去看书 所以也没时间再看了 算是写了个引子 另外PEiD显示有DES 在00478DE4附近 MD5 在0042E3AD附近 可我要如何找到他们呢 他们在这个程序中起到了什么作用呢?
我在DFCG上也发了这张贴
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!