home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.sberbank.sumy.ua
/
2014.11.ftp.sberbank.sumy.ua.tar
/
ftp.sberbank.sumy.ua
/
incoming
/
1
/
15173225.asm
< prev
next >
Wrap
Assembly Source File
|
2014-02-08
|
8KB
|
352 lines
.386
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
include \masm32\include\comdlg32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\comdlg32.lib
ID_EDIT equ 10
return MACRO arg
mov eax, arg
ret
ENDM
WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
EditProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
FileOpenDialog PROTO :DWORD
GetExeToCopy PROTO
IncludeExeFile PROTO :DWORD
ExcludeExeFile PROTO
RawDeCoder PROTO :DWORD, :DWORD
.data
szClassName db "Kode_666",0
szDisplayName db "<+^->",0
stEditClass db "EDIT",0
cNewExe db "kode.exe",0
cExcludeFile db "666.exe",0
;comInk db "wbhf",0
comText db 256 dup(0)
CommandLine dd 0
hWnd dd 0
hInstance dd 0
hIcon dd 0
hEdit dd 0
PosX dd 0
PosY dd 0
dWidth dd 200
dHeight dd 80
lpEditProc dd 0
ofn OPENFILENAME <0>
szOrgFile db 256 dup(0)
szFile db "*.*",256 dup (0)
strFilter db "All Files",0
dWspritf db "%d",0
RawData db 100000 dup("6")
.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke GetCommandLine
mov CommandLine, eax
invoke WinMain, hInstance,NULL,CommandLine,SW_SHOWDEFAULT
invoke ExitProcess,eax
WinMain proc hInst :DWORD, hPrevInst :DWORD, CmdLine :DWORD, CmdShow :DWORD
LOCAL wc :WNDCLASSEX
LOCAL msg :MSG
mov wc.cbSize, sizeof WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW \
or CS_BYTEALIGNWINDOW
mov wc.lpfnWndProc, offset WndProc
mov wc.cbClsExtra, NULL
mov wc.cbWndExtra, NULL
push hInst
pop wc.hInstance
mov wc.hbrBackground, COLOR_WINDOW
mov wc.lpszMenuName, NULL
mov wc.lpszClassName, offset szClassName
push hIcon
pop wc.hIcon
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor, eax
push hIcon
pop wc.hIconSm
invoke RegisterClassEx, ADDR wc
invoke GetSystemMetrics,SM_CXSCREEN
sub eax, dWidth
shr eax,1
mov PosX, eax
invoke GetSystemMetrics,SM_CYSCREEN
sub eax, dHeight
shr eax,1
mov PosY, eax
invoke CreateWindowEx,WS_EX_LEFT,
ADDR szClassName,
ADDR szDisplayName,
WS_OVERLAPPED or WS_SYSMENU,
PosX,PosY,dWidth,dHeight,
NULL,NULL,
hInst,NULL
mov hWnd,eax
invoke ShowWindow,hWnd,SW_SHOWNORMAL
invoke UpdateWindow,hWnd
StartLoop:
invoke GetMessage,ADDR msg,NULL,0,0
cmp eax, 0
je ExitLoop
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
jmp StartLoop
ExitLoop:
return msg.wParam
WinMain endp
WndProc proc hWin :DWORD, uMsg :DWORD, wParam :DWORD, lParam :DWORD
.if uMsg == WM_CREATE
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR stEditClass,0,
WS_VISIBLE or WS_CHILDWINDOW or \
ES_AUTOHSCROLL or ES_NOHIDESEL,
6,10,180,20,hWin,ID_EDIT,hInstance,NULL
mov hEdit,eax
invoke SetWindowLong,hEdit,GWL_WNDPROC,EditProc
mov lpEditProc,eax
; xor DWORD PTR comInk, 03030303h
; invoke MessageBox, hWin, addr comInk, addr comInk,0
return 0
.elseif uMsg == WM_DESTROY
invoke PostQuitMessage,NULL
return 0
.endif
invoke DefWindowProc,hWin,uMsg,wParam,lParam
ret
WndProc endp
EditProc proc hCtl:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD
.if uMsg == WM_CHAR
.if wParam == VK_RETURN
invoke GetWindowText, hEdit, addr comText, 255
mov eax, DWORD PTR comText
xor eax,03030303h
.if eax == "fhbw"
invoke FileOpenDialog, hWnd
; invoke MessageBox, hWnd, addr szFile, addr szFile, 0
invoke GetExeToCopy
.else
invoke ExcludeExeFile
.endif
.endif
.endif
invoke CallWindowProc,lpEditProc,hCtl,uMsg,wParam,lParam
ret
EditProc endp
FileOpenDialog proc hwnd:DWORD
invoke RtlZeroMemory,ADDR ofn,SIZEOF ofn
mov ofn.lStructSize,SIZEOF ofn
mov eax,hwnd
mov ofn.hwndOwner,eax
mov eax,OFFSET szFile
mov ofn.lpstrFile,eax
mov ofn.nMaxFile,SIZEOF szFile
mov eax,OFFSET strFilter
mov ofn.lpstrFilter,eax
mov ofn.nFilterIndex,1
mov ofn.lpstrFileTitle,0
mov ofn.nMaxFileTitle,0
mov ofn.lpstrInitialDir,0
mov ofn.Flags,OFN_PATHMUSTEXIST
invoke GetOpenFileName,ADDR ofn
ret
FileOpenDialog endp
GetExeToCopy proc
LOCAL hGlobMem:DWORD
LOCAL lpGlobMem:DWORD
LOCAL hExeFileRead:DWORD
LOCAL hExeFileWrite:DWORD
LOCAL dwBytesWritten:DWORD
LOCAL dFileSize:DWORD
invoke GlobalAlloc, GMEM_MOVEABLE or GMEM_ZEROINIT, 1500000
mov hGlobMem,eax
invoke GlobalLock, hGlobMem
mov lpGlobMem,eax
invoke GetModuleFileName, hInstance, addr szOrgFile, 255
invoke CreateFile, addr szOrgFile, GENERIC_READ,\
0, NULL, OPEN_EXISTING,\
FILE_ATTRIBUTE_NORMAL, NULL
mov hExeFileRead,eax
invoke GetFileSize, hExeFileRead, 0
mov dFileSize,eax
invoke CreateFile, addr cNewExe, GENERIC_WRITE,\
0, NULL, CREATE_ALWAYS,\
FILE_ATTRIBUTE_NORMAL, NULL
mov hExeFileWrite, eax
invoke ReadFile, hExeFileRead, lpGlobMem, dFileSize, addr dwBytesWritten, NULL
push edi
cld
mov edi, lpGlobMem
mov ecx, dFileSize
mov eax,"6666"
repne scasd
mov eax,edi
add eax,4
pop edi
invoke IncludeExeFile, eax
invoke WriteFile, hExeFileWrite, lpGlobMem, dFileSize,\
addr dwBytesWritten, NULL
invoke CloseHandle, hExeFileWrite
invoke CloseHandle, hExeFileRead
invoke GlobalUnlock, hGlobMem
invoke GlobalFree, hGlobMem
ret
GetExeToCopy endp
IncludeExeFile proc lpStoreMem:DWORD
LOCAL hIncFile:DWORD
LOCAL dwBytesRead1:DWORD
invoke CreateFile, addr szFile, GENERIC_READ,\
0, NULL, OPEN_EXISTING,\
FILE_ATTRIBUTE_NORMAL, NULL
mov hIncFile,eax
invoke GetFileSize, hIncFile, 0
push edi
mov edi,lpStoreMem
mov DWORD PTR[edi],eax
add edi,4
mov ecx, edi
pop edi
; invoke wsprintf, addr szFile, addr dWspritf, DWORD PTR[ecx-4]
; invoke MessageBox, hWnd, addr szFile, addr szFile,0
push ecx
invoke RawDeCoder, ecx, DWORD PTR[ecx-4]
pop ecx
invoke ReadFile, hIncFile, ecx, DWORD PTR[ecx-4], addr dwBytesRead1, NULL
invoke CloseHandle, hIncFile
ret
IncludeExeFile endp
ExcludeExeFile proc
LOCAL hExFile:DWORD
LOCAL dwBytesWrittenInc:DWORD
invoke CreateFile, addr cExcludeFile, GENERIC_WRITE,\
0, NULL, CREATE_ALWAYS,\
FILE_ATTRIBUTE_NORMAL, NULL
mov hExFile,eax
invoke WriteFile, hExFile, addr RawData+12, DWORD PTR[RawData+8],\
addr dwBytesWrittenInc, NULL
invoke CloseHandle, hExFile
ret
ExcludeExeFile endp
RawDeCoder proc lpRawBits:DWORD, dRawSize:DWORD
push edi
xor ecx,ecx
RawDeCoder_do:
inc ecx
cmp ecx, dRawSize
jna RawDeCoder_do
pop edi
ret
RawDeCoder endp
end start