联创宽带上网助手协议的简单分析(一)start包和off包

工具:ollydbg2.0 , Wireshark,

         步骤:

1.      软件有加壳,要先脱壳,在这里就不说了,另外写了一篇

2.      Wireshark抓包,发现用的是802.1XEAP协议,eap具体的协议结构网上有很多的

 

宽带上网助手认证网络总共要发送3个数据包,1个发起连接请求的广播start包,1identity包,在这里是用户名包,还有一个则是密码包,若认证成功则会返回success包,之后每隔一段时间服务器就发送request包,客户端回应identity包,直到用户下线或断网,下线则发生off

3.      start包和off包的构造:

OD载入脱壳后的程序,右键->search for->all intermodulelar call中找到pcap_sendpacket函数,双击来到相应的代码,向上找下就发现有4处调用这个函数,在每个函数的最开始都下断点,让程序运行起来,会发现断在第一个start包的构造函数处(因为源程序中有把状态写入日志的无关部分,所以代码有省略)

Address   Hex dump          Command                            Comments

00408AA0  /$  56            PUSH ESI                           ; 发送start包和off

00408AA1  |.  68 80000000   PUSH 80                            ; /Arg1 = 80

00408AA6  |.  E8 E3460000   CALL 0040D18E                      ; /mycrack.0040D18E

00408AB6  |>  53            PUSH EBX

00408AB7  |.  8A5C24 0C     MOV BL,BYTE PTR SS:[ARG.1]

00408ABB  |.  80FB 01       CMP BL,1

00408ABE  |.  57            PUSH EDI

00408ABF  |.  0F85 C0000000 JNE 00408B85                       ; 是否是第一个请求包arg1==1?

                                 …………………………………

00408B83  |.  EB 10         JMP SHORT 00408B95

00408B85  |>  A1 A0984100   MOV EAX,DWORD PTR DS:[4198A0]      ; off包时候的服务器mac

00408B8A  |.  8BD6          MOV EDX,ESI

00408B8C  |.  8902          MOV DWORD PTR DS:[EDX],EAX

00408B8E  |.  66:8B0D A4984 MOV CX,WORD PTR DS:[4198A4]

00408B95  |>  66:894A 04    MOV WORD PTR DS:[EDX+4],CX

00408B99  |>  E8 428AFFFF   CALL 004015E0                      ; [mycrack.004015E0

00408B9E  |.  80FB 01       CMP BL,1

00408BA1  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]

00408BA3  |.  8D56 06       LEA EDX,[ESI+6]

00408BA6  |.  890A          MOV DWORD PTR DS:[EDX],ECX         ; 写入本机的MAC地址

00408BA8  |.  66:8B40 04    MOV AX,WORD PTR DS:[EAX+4]

00408BAC  |.  66:8942 04    MOV WORD PTR DS:[EDX+4],AX

00408BB0  |.  C646 0C 88    MOV BYTE PTR DS:[ESI+0C],88        ; 写入88 802.1X Authentication (0x888e)

00408BB4  |.  C646 0D 8E    MOV BYTE PTR DS:[ESI+0D],8E        ; 写入8E

00408BB8  |.  C646 0E 01    MOV BYTE PTR DS:[ESI+0E],1         ; 写入1 version

00408BBC  |.  885E 0F       MOV BYTE PTR DS:[ESI+0F],BL        ; 写入type,start1

00408BBF  |.  C646 10 00    MOV BYTE PTR DS:[ESI+10],0         ; 写入length   0

00408BC3  |.  C646 11 00    MOV BYTE PTR DS:[ESI+11],0         ; 0

00408BC7  |.  75 04         JNE SHORT 00408BCD

00408BC9  |.  6A 00         PUSH 0

00408BCB  |.  EB 06         JMP SHORT 00408BD3

00408BCD  |>  E8 EE87FFFF   CALL 004013C0                      ; [mycrack.004013C0

00408BD2  |.  50            PUSH EAX

00408BD3  |>  E8 74440000   CALL <JMP.&ws2_32.htonl>           ; Jump to ws2_32.htonl

00408BD8  |.  8B3D 68654100 MOV EDI,DWORD PTR DS:[416568]      ; ASCII "linkage"

00408BDE  |.  8D4E 12       LEA ECX,[ESI+12]

00408BE1  |.  8BD1          MOV EDX,ECX

00408BE3  |.  893A          MOV DWORD PTR DS:[EDX],EDI         ; 填入link

00408BE5  |.  8B3D 6C654100 MOV EDI,DWORD PTR DS:[41656C]      ; ASCII "age"

00408BEB  |.  6A 1E         PUSH 1E                            ; start包长度

00408BED  |.  897A 04       MOV DWORD PTR DS:[EDX+4],EDI       ; 填入agelinkagetrailer部分

00408BF0  |.  56            PUSH ESI                           ; start包地址

00408BF1  |.  8941 08       MOV DWORD PTR DS:[ECX+8],EAX

00408BF4  |.  E8 17360000   CALL 0040C210                                                 ;发送start

在这里离线包和start包差不多,就只是type处不同,startoff包的构造比较简单没有经过任何处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值