这是我们学校的宽带上网认证客户端
是DrCom的修改版.
软件密码加密好像是用的advapi32.dll里的函数.
不过居然密码和学号是明文存放在内存里的.
现在想请各位分析下软件是如何和服务器通信的
我用wireshark分析后,发现先和认证服务器使用标准的eapol和eap协议认证,之后和另外一个服务器UDP通信
本地绑定61440端口,远端服务器好像也是61440端口
当然,整个程序就一个recvfrom.
不知道是如何处理的.
小弟不才,初学逆向,请各位指教
要求:能构造出一个数据包,发送到本地UDP端口触发软件内置的功能比如"您有新的系统消息",或者打开网页.软件里是有这些功能的,而且在recvfrom后面,但我看不懂.指针太乱了.
附件有3个
1.是主程序还有安装包.如果只是静态分析那么主程序就可以了,如果要运行那么最好安装在虚拟机里看看吧
2.软件需要winpcap,一起传上来了
3. 拨号时抓的UDP封包.2进制文件.注意有打开网页的封包.
封包第一个字节好像是指令,第二个字节好像是整个包大小.
下面是关键代码.
0040DD79 > \56 push esi
0040DD7A . 68 2CFA4200 push ishare_u.0042FA2C ; /pFromLen = ishare_u.0042FA2C
0040DD7F . 68 900D4300 push ishare_u.00430D90 ; |pFrom = ishare_u.00430D90
0040DD84 . 6A 00 push 0x0 ; |Flags = 0
0040DD86 . 68 40060000 push 0x640 ; |BufSize = 640 (1600.)
0040DD8B . 68 0C6C4300 push ishare_u.00436C0C ; |Buffer = ishare_u.00436C0C
0040DD90 . FF35 E8EF4200 push dword ptr ds:[0x42EFE8] ; |Socket = 0
0040DD96 . FF15 D8B34300 call dword ptr ds:[<&WS2_32.#17>] ; \recvfrom
0040DD9C . 83F8 FF cmp eax,-0x1 ; 收包大小是否是-1
0040DD9F . A3 78EE4200 mov dword ptr ds:[0x42EE78],eax ; 大小放到指针42ee78
0040DDA4 . 0F84 5A010000 je ishare_u.0040DF04 ; 是就跳到最后
0040DDAA . 833D F4184300>cmp dword ptr ds:[0x4318F4],0xA
0040DDB1 . 7C 0B jl short ishare_u.0040DDBE
0040DDB3 . FF15 BCAD4300 call dword ptr ds:[<&KERNEL32.GetTickCou>; [GetTickCount
0040DDB9 . A3 A0EE4200 mov dword ptr ds:[0x42EEA0],eax
0040DDBE > A0 0C6C4300 mov al,byte ptr ds:[0x436C0C]
0040DDC3 . 3C 07 cmp al,0x7
0040DDC5 . 75 31 jnz short ishare_u.0040DDF8
0040DDC7 . 803D 106C4300>cmp byte ptr ds:[0x436C10],0xB
0040DDCE . 75 28 jnz short ishare_u.0040DDF8
0040DDD0 . 68 ECB44200 push ishare_u.0042B4EC ; ASCII "8021x.single"
0040DDD5 . E8 F43BFFFF call ishare_u.004019CE ; 这里是创建了一个文件
0040DDDA . 85C0 test eax,eax
0040DDDC . 59 pop ecx
0040DDDD . 74 0D je short ishare_u.0040DDEC
0040DDDF . 833D B07D4300>cmp dword ptr ds:[0x437DB0],0x1
0040DDE6 . 0F84 18010000 je ishare_u.0040DF04
0040DDEC > 6A 02 push 0x2
0040DDEE . E8 1A34FFFF call ishare_u.0040120D
0040DDF3 . E9 F0000000 jmp ishare_u.0040DEE8
0040DDF8 > BE 01010101 mov esi,0x1010101
0040DDFD . 3935 447E4300 cmp dword ptr ds:[0x437E44],esi
0040DE03 . 75 2D jnz short ishare_u.0040DE32
0040DE05 . 8B0D 940D4300 mov ecx,dword ptr ds:[0x430D94]
0040DE0B . 3BCE cmp ecx,esi
0040DE0D . 74 23 je short ishare_u.0040DE32
0040DE0F . 68 447E4300 push ishare_u.00437E44
0040DE14 . 890D 447E4300 mov dword ptr ds:[0x437E44],ecx
0040DE1A . E8 6E3BFFFF call ishare_u.0040198D
0040DE1F . 50 push eax ; /src
0040DE20 . 68 C4174300 push ishare_u.004317C4 ; |dest = ishare_u.004317C4
0040DE25 . E8 123D0100 call <jmp.&MSVCRT.strcpy> ; \strcpy
0040DE2A . A0 0C6C4300 mov al,byte ptr ds:[0x436C0C]
0040DE2F . 83C4 0C add esp,0xC
0040DE32 > 8B15 F4184300 mov edx,dword ptr ds:[0x4318F4]
0040DE38 . 83FA 0A cmp edx,0xA
0040DE3B . 75 16 jnz short ishare_u.0040DE53
0040DE3D . 8B0D 447E4300 mov ecx,dword ptr ds:[0x437E44]
0040DE43 . 3BCE cmp ecx,esi
0040DE45 . 74 0C je short ishare_u.0040DE53
0040DE47 . 3B0D 940D4300 cmp ecx,dword ptr ds:[0x430D94]
0040DE4D . 0F85 B1000000 jnz ishare_u.0040DF04
0040DE53 > 3C 07 cmp al,0x7
0040DE55 . 75 4C jnz short ishare_u.0040DEA3
0040DE57 . 68 ECB44200 push ishare_u.0042B4EC ; ASCII "8021x.single"
0040DE5C . E8 6D3BFFFF call ishare_u.004019CE
0040DE61 . 85C0 test eax,eax
0040DE63 . 59 pop ecx
0040DE64 . 74 09 je short ishare_u.0040DE6F
0040DE66 . 833D B07D4300>cmp dword ptr ds:[0x437DB0],0x1
0040DE6D . 74 10 je short ishare_u.0040DE7F
0040DE6F > 6A 08 push 0x8
0040DE71 . E8 9733FFFF call ishare_u.0040120D ; 这个好像是服务器下令禁止客户端用代理的
0040DE76 . 84C0 test al,al
0040DE78 . 59 pop ecx
0040DE79 . 0F84 85000000 je ishare_u.0040DF04
0040DE7F > 833D 707D4300>cmp dword ptr ds:[0x437D70],0x0
0040DE86 . 74 12 je short ishare_u.0040DE9A
0040DE88 . 833D 747D4300>cmp dword ptr ds:[0x437D74],0x1
0040DE8F . 7C 09 jl short ishare_u.0040DE9A
0040DE91 . 6A 01 push 0x1
0040DE93 . E8 D334FFFF call ishare_u.0040136B ; 这函数里也有弹窗
0040DE98 . EB 4E jmp short ishare_u.0040DEE8
0040DE9A > 6A 03 push 0x3
0040DE9C . E8 0B3AFFFF call ishare_u.004018AC ; 这里好像就是处理弹窗的.
0040DEA1 . EB 45 jmp short ishare_u.0040DEE8
0040DEA3 > F605 EE054300>test byte ptr ds:[0x4305EE],0x8
0040DEAA . 74 1B je short ishare_u.0040DEC7
0040DEAC . 833D 647D4300>cmp dword ptr ds:[0x437D64],0x0
0040DEB3 . 74 4F je short ishare_u.0040DF04
0040DEB5 . 8B0D 60AD4200 mov ecx,dword ptr ds:[0x42AD60]
0040DEBB . 83F9 03 cmp ecx,0x3
0040DEBE . 7C 44 jl short ishare_u.0040DF04
0040DEC0 . 83F9 64 cmp ecx,0x64
0040DEC3 . 7C 2D jl short ishare_u.0040DEF2
0040DEC5 . 5E pop esi
0040DEC6 . C3 retn
0040DEC7 > 3C 20 cmp al,0x20
0040DEC9 . 73 27 jnb short ishare_u.0040DEF2
0040DECB . 8BC2 mov eax,edx
0040DECD . 48 dec eax ; Switch (cases 1..9)
0040DECE . 74 1B je short ishare_u.0040DEEB
0040DED0 . 48 dec eax
0040DED1 . 74 0C je short ishare_u.0040DEDF
0040DED3 . 83E8 07 sub eax,0x7
0040DED6 . 75 2C jnz short ishare_u.0040DF04
0040DED8 . E8 6A35FFFF call ishare_u.00401447 ; Case 9 of switch 0040DECD
0040DEDD . 5E pop esi
0040DEDE . C3 retn
0040DEDF > FF7424 08 push dword ptr ss:[esp+0x8] ; Case 2 of switch 0040DECD
0040DEE3 . E8 0F3AFFFF call ishare_u.004018F7
0040DEE8 > 59 pop ecx
0040DEE9 . 5E pop esi
0040DEEA . C3 retn
0040DEEB > E8 8737FFFF call ishare_u.00401677 ; Case 1 of switch 0040DECD
0040DEF0 . 5E pop esi
0040DEF1 . C3 retn
0040DEF2 > 3C 4D cmp al,0x4D
0040DEF4 . 75 0E jnz short ishare_u.0040DF04
0040DEF6 . 833D 78EE4200>cmp dword ptr ds:[0x42EE78],0x2
0040DEFD . 7C 05 jl short ishare_u.0040DF04
0040DEFF . E8 E335FFFF call ishare_u.004014E7
0040DF04 > 5E pop esi ; Default case of switch 0040DECD
0040DF05 . C3 retn
希望大家能帮帮我,我对逆向很有兴趣.现在刚上大一,对学校网络结构还不太了解,现在只拿了2台服务器做研究.喜欢网络编程,现在努力学逆向,但只会爆破.....有谁能指点迷津呢
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)