📄 win.asm
字号:
.endif
.elseif ax==FD_ACCEPT
mov addrsize,sizeof addrsock
.if uMsg == WM_SOCKET_LOGON1
invoke accept,sSockLogon1,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.elseif uMsg == WM_SOCKET_LOGON2
invoke accept,sSockLogon2,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.elseif uMsg == WM_SOCKET_LOGON3
invoke accept,sSockLogon3,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.elseif uMsg == WM_SOCKET_LOGON4
invoke accept,sSockLogon4,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.endif
.elseif ax==FD_READ
invoke recv,wParam,addr TmpBuff,128,0
.if eax != 128
invoke CallCloseSocket,wParam,hWin
ret
.endif
invoke CallCrypt,addr TmpBuff,63,2eh,0d9h
.if TmpBuff != 15h && TmpBuff != 25h && TmpBuff != 26h && TmpBuff != 36h
invoke CallCloseSocket,wParam,hWin
ret
.endif
.if TmpBuff == 15h
invoke CallGetUserName,addr TmpBuff+1,dword ptr TmpBuff+51
.elseif TmpBuff == 25h
mov addrsize,sizeof addrsock
invoke getpeername,wParam,addr addrsock,addr addrsize
invoke MemCopy,addr addrsock.sa_data+2,addr TmpBuff+55,4
invoke CallGetNetName,addr TmpBuff+1,dword ptr TmpBuff+51,dword ptr TmpBuff+55,addr TmpBuff+100
.elseif TmpBuff == 26h
invoke CallUnCalcProc,addr TmpBuff+1,63
invoke CallUpdateUserNum,addr TmpBuff+5,dword ptr TmpBuff+55
.elseif TmpBuff == 36h
mov addrsize,sizeof addrsock
invoke getpeername,wParam,addr addrsock,addr addrsize
invoke CallUnCalcProc,addr TmpBuff+1,63
invoke CallUpdateNetNum,addr TmpBuff+5,dword ptr addrsock.sa_data+2
.endif
.if eax == 0
.if TmpBuff == 15h || TmpBuff == 25h
.if TmpBuff == 15h
mov TmpBuff+64,26h
.else
mov TmpBuff+64,36h
.endif
invoke lstrcpy,addr TmpBuff+69,addr TmpBuff+1
invoke lstrcpy,addr TmpBuff+10,addr TmpBuff+100
invoke MemCopy,addr TmpBuff+51,addr TmpBuff+119,4
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
invoke GetTickCount
invoke CallCalcProc,addr TmpBuff+65,63,eax
invoke CallUnCrypt,addr TmpBuff+64,63,2eh,0d9h
invoke CallUnCrypt,addr TmpBuff,63,2eh,0d9h
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
invoke ShellSqlGetTipInfo,STEXT('SELECT ShowTip,TipText FROM T_TipInfo'),addr TmpBuff+10
mov TmpBuff+9,al
invoke GetTickCount
mov edx,dword ptr TmpBuff+101
xor edx,eax
mov dword ptr TmpBuff+98,edx
xor eax,999h
mov dword ptr TmpBuff+102,eax
.endif
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
invoke CallUnCrypt,addr TmpBuff,63,2eh,0d9h
.endif
invoke send,wParam,addr TmpBuff,128,0
invoke CallCloseSocket,wParam,hWin
.elseif ax == FD_CLOSE
invoke CallCloseSocket,wParam,hWin
.endif
xor eax,eax
ret
.elseif eax == WM_SOCKET_QUERY ; 查询次数/密码验证/个人登录
mov eax,lParam
mov edx,eax
shr edx,16
.if dx != 0
.if ax == FD_ACCEPT
invoke closesocket,wParam
.else
invoke CallCloseSocket,wParam,hWin
.endif
.elseif ax==FD_ACCEPT
mov addrsize,sizeof addrsock
invoke accept,sSockQuery,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.elseif ax==FD_READ
invoke recv,wParam,addr TmpBuff,128,0
.if eax != 128
invoke CallCloseSocket,wParam,hWin
ret
.endif
invoke CallCrypt,addr TmpBuff,56,2eh,0d9h
.if TmpBuff != 12h && TmpBuff != 22h && TmpBuff != 23h && TmpBuff != 34h
invoke CallCloseSocket,wParam,hWin
ret
.endif
.if TmpBuff == 12h ; 查询次数
invoke CallGetUserInfo,addr TmpBuff+1,dword ptr TmpBuff+51
.if eax != -1
mov dword ptr TmpBuff+37,eax
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 22h ; 查询次数
invoke CallGetNetInfo,addr TmpBuff+1,dword ptr TmpBuff+51
.if eax != -1
mov dword ptr TmpBuff+37,eax
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 23h ; 密码验证
movzx eax,TmpBuff+50
invoke CallSetUserValidate,addr TmpBuff+1,dword ptr TmpBuff+51,dword ptr TmpBuff+61,eax
.if eax == 0
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.if TmpBuff+50 == 0
invoke lstrcpy,addr TmpBuff+10,STEXT('修改成功,当前关闭密码验证!')
.else
invoke lstrcpy,addr TmpBuff+10,STEXT('修改成功,当前要求密码验证!')
.endif
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 34h ; 个人登录
movzx eax,TmpBuff+50
invoke CallSetUserSingle,addr TmpBuff+1,dword ptr TmpBuff+51,eax
.if eax == 0
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.if TmpBuff+50 == 0
invoke lstrcpy,addr TmpBuff+10,STEXT('修改成功,当前禁止个人版登录!')
.else
invoke lstrcpy,addr TmpBuff+10,STEXT('修改成功,当前允许个人版登录!')
.endif
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
mov TmpBuff,55h
.endif
.endif
invoke CallUnCrypt,addr TmpBuff,42,2eh,0d9h
invoke send,wParam,addr TmpBuff,128,0
invoke CallCloseSocket,wParam,hWin
.elseif ax == FD_CLOSE
invoke CallCloseSocket,wParam,hWin
.endif
xor eax,eax
ret
.elseif eax == WM_SOCKET_PASS ; 修改密码/修改IP
mov eax,lParam
mov edx,eax
shr edx,16
.if dx != 0
.if ax == FD_ACCEPT
invoke closesocket,wParam
.else
invoke CallCloseSocket,wParam,hWin
.endif
.elseif ax==FD_ACCEPT
mov addrsize,sizeof addrsock
invoke accept,sSockPass,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.elseif ax==FD_READ
invoke recv,wParam,addr TmpBuff,128,0
.if eax != 128
invoke CallCloseSocket,wParam,hWin
ret
.endif
invoke CallCrypt,addr TmpBuff,61,2eh,0d9h
.if TmpBuff != 24h && TmpBuff != 13h && TmpBuff != 14h
invoke CallCloseSocket,wParam,hWin
ret
.endif
.if TmpBuff == 14h ; 个人修改密码
invoke CallModifyUserPass,addr TmpBuff+1,dword ptr TmpBuff+51,dword ptr TmpBuff+55
.if eax == 0
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 24h ; 网吧修改密码
invoke CallModifyNetPass,addr TmpBuff+1,dword ptr TmpBuff+51,dword ptr TmpBuff+55
.if eax == 0
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的网吧名或密码。')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 13h ; 修改IP
mov addrsize,sizeof addrsock
invoke getpeername,wParam,addr addrsock,addr addrsize
invoke MemCopy,addr addrsock.sa_data+2,addr TmpBuff+59,4
invoke CallModifyUserIp,addr TmpBuff+1,dword ptr TmpBuff+51,dword ptr TmpBuff+59,dword ptr TmpBuff+55
.if eax == 0
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名或密码。')
mov TmpBuff,55h
.endif
.endif
invoke CallUnCrypt,addr TmpBuff,34,2eh,0d9h
invoke send,wParam,addr TmpBuff,128,0
invoke CallCloseSocket,wParam,hWin
.elseif ax == FD_CLOSE
invoke CallCloseSocket,wParam,hWin
.endif
xor eax,eax
ret
.elseif eax == WM_SOCKET_SUPPLY ; 个人版/网吧版卡号充值
mov eax,lParam
mov edx,eax
shr edx,16
.if dx != 0
.if ax == FD_ACCEPT
invoke closesocket,wParam
.else
invoke CallCloseSocket,wParam,hWin
.endif
.elseif ax==FD_ACCEPT
mov addrsize,sizeof addrsock
invoke accept,sSockSupply,addr addrsock,addr addrsize
invoke CallChangeSockAttrib,eax
.elseif ax==FD_READ
invoke recv,wParam,addr TmpBuff,128,0
.if eax != 128
invoke CallCloseSocket,wParam,hWin
ret
.endif
invoke CallCrypt,addr TmpBuff,111,2eh,0d9h
.if TmpBuff != 33h && TmpBuff != 22h && TmpBuff != 11h
invoke CallCloseSocket,wParam,hWin
ret
.endif
.if TmpBuff == 33h ; 个人版卡号充值
invoke CharUpper,addr TmpBuff+55
invoke StrCmpN,addr TmpBuff+55,STEXT('GY'),2
.if eax == 0
movzx eax,TmpBuff+109
invoke CallSupplySingle,addr TmpBuff+1,dword ptr TmpBuff+51,addr TmpBuff+55,dword ptr TmpBuff+105,eax
.if eax == -2
invoke lstrcpy,addr TmpBuff+1,STEXT('用户名已经存在或卡号、密码错误!')
mov TmpBuff,55h
.elseif eax == -3
invoke lstrcpy,addr TmpBuff+1,STEXT('用户名不存在或卡号、密码错误!')
mov TmpBuff,55h
.elseif eax == -4
invoke lstrcpy,addr TmpBuff+1,STEXT('充值卡号与所在地不符!')
mov TmpBuff,55h
.elseif eax == -1
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名、卡号或密码!')
mov TmpBuff,55h
.else
mov dword ptr TmpBuff+37,eax
mov al,TmpBuff+109
mov TmpBuff,al
invoke MemCopy,addr TmpBuff+51,addr TmpBuff+33,4
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.endif
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名、卡号或密码!')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 22h ; 网吧版卡号充值
invoke CharUpper,addr TmpBuff+55
or ebx,-1
invoke StrCmpN,addr TmpBuff+55,STEXT('BY'),2
.if eax == 0
mov ebx,2000
.else
invoke StrCmpN,addr TmpBuff+55,STEXT('PY'),2
.if eax == 0
mov ebx,4000
.else
invoke StrCmpN,addr TmpBuff+55,STEXT('LY'),2
.if eax == 0
mov ebx,1000
.else
invoke StrCmpN,addr TmpBuff+55,STEXT('LYBYWG'),6
.if eax == 0
mov ebx,1000
.endif
.endif
.endif
.endif
.if ebx != -1
movzx eax,TmpBuff+109
invoke CallSupplyNetwork,addr TmpBuff+1,dword ptr TmpBuff+51,addr TmpBuff+55,dword ptr TmpBuff+105,eax,ebx
.if eax == -2
invoke lstrcpy,addr TmpBuff+1,STEXT('用户名已经存在或卡号、密码错误!')
mov TmpBuff,55h
.elseif eax == -3
invoke lstrcpy,addr TmpBuff+1,STEXT('用户名不存在或卡号、密码错误!')
mov TmpBuff,55h
.elseif eax == -4
invoke lstrcpy,addr TmpBuff+1,STEXT('充值卡号与所在地不符!')
mov TmpBuff,55h
.elseif eax == -1
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名、卡号或密码!')
mov TmpBuff,55h
.else
mov dword ptr TmpBuff+37,eax
mov al,TmpBuff+109
mov TmpBuff,al
invoke MemCopy,addr TmpBuff+51,addr TmpBuff+33,4
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.endif
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名、卡号或密码!')
mov TmpBuff,55h
.endif
.elseif TmpBuff == 11h ; 网吧版向个人版充值
mov edx,dword ptr TmpBuff+105
.if edx == 1
mov edx,200
.elseif edx == 2
mov edx,400
.elseif edx == 3
mov edx,600
.elseif edx == 4
mov edx,800
.elseif edx == 5
mov edx,1000
.else
or edx,-1
.endif
.if edx != -1
movzx eax,TmpBuff+109
invoke CallSupplyNetToSingle,addr TmpBuff+1,dword ptr TmpBuff+51,addr TmpBuff+55,edx,eax
.if eax == -2
invoke lstrcpy,addr TmpBuff+1,STEXT('用户名已经存在或网吧名、密码错误!')
mov TmpBuff,55h
.elseif eax == -3
invoke lstrcpy,addr TmpBuff+1,STEXT('用户名不存在或网吧名、密码错误!')
mov TmpBuff,55h
.elseif eax == -1
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名、网吧名或密码!')
mov TmpBuff,55h
.else
mov dword ptr TmpBuff+37,eax
mov al,TmpBuff+109
mov TmpBuff,al
invoke lstrcpy,addr TmpBuff+1,STEXT('OK')
.endif
.else
invoke lstrcpy,addr TmpBuff+1,STEXT('错误的用户名、网吧名或密码!')
mov TmpBuff,55h
.endif
.endif
invoke CallUnCrypt,addr TmpBuff,42,2eh,0d9h
invoke send,wParam,addr TmpBuff,128,0
invoke CallCloseSocket,wParam,hWin
.elseif ax == FD_CLOSE
invoke CallCloseSocket,wParam,hWin
.endif
xor eax,eax
ret
.else
xor eax,eax
.endif
ret
ConfigDialogProc endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -