|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 27, 2004 11:20:15 прога получет файл и шифрует в base64, затем помещает текст в файл. но не работает... в чём ошибка? .386 .model flat, stdcall option casemap :none ; ================================================= include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\wsock32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\wsock32.lib .data AppName1 db "\1.exe",0 szSFileName db "C:\11111.txt",0 .DATA? WinDir db 1024 dup(?) FHndl dd ? sf dd ? cmd dd ? lpBuf1 db 32768 dup(?) .code start: invoke WSAStartup, 1, offset lpBuf1 EncodeBuf proc uses esi edi ebx lpSrc, lpDst, Len: DWORD mov esi, lpSrc mov edi, lpDst mov ecx, Len xor eax, eax xor ebx, ebx @gen: lodsb shl eax, 8 loop @@2 shl eax, 8 jmp @@4 @@2: lodsb shl eax, 8 loop @@3 jmp @@4 @@3: lodsb dec ecx @@4: push ecx push 4 pop ecx push ecx @@: rol edx, 8 mov dl, al and dl, 00111111B shr eax, 6 loop @B pop ecx @edx_conv: cmp dl, 62 jae dl_62_63 cmp dl, 51 ja digit_0_9 add dl, 'A' cmp dl, 'Z' jbe @F add dl, 'a'-'Z'-1 @@: jmp rotate_edx digit_0_9: add dl, 30h-52 jmp rotate_edx dl_62_63: sub dl, 62 shl dl, 2 add dl, 43 rotate_edx: rol edx, 8 loop @edx_conv xchg eax, edx stosd xchg eax, edx pop ecx ; CRLF inc ebx inc ebx cmp ebx, 24h jnz @next xor ebx, ebx mov al, 0ah stosb @next: or ecx, ecx jnz @gen ret EncodeBuf endp Sendtext proc lpMailMessage: DWORD LOCAL hFile, bWritten: DWORD invoke CreateFile, offset szSFileName, GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 0, 0 mov hFile, eax inc eax jz @end invoke lstrlen, lpMailMessage mov edx, eax invoke WriteFile, hFile, lpMailMessage, edx, addr bWritten, NULL invoke CloseHandle, hFile @end: mov eax, 1 ret Sendtext endp invoke GetWindowsDirectory, addr WinDir, 1024 invoke lstrcat,addr WinDir,addr AppName1 invoke _lopen, addr WinDir, OF_READ cmp eax, 4294967295 je quit mov cmd, eax invoke GetFileSize, cmd, NULL mov sf, eax invoke GlobalAlloc, 64, eax cmp eax,0 je quit mov FHndl, eax invoke _lread, cmd, FHndl, sf invoke _lclose, cmd invoke lstrlen, FHndl push eax invoke EncodeBuf, FHndl, edi, eax invoke Sendtext, edi invoke GlobalFree, FHndl invoke LocalFree, edi quit: invoke ExitProcess,eax end start |
|
|
Дата: Апр 27, 2004 11:31:20 К "вирусному оружию" прилагается исходник с перекодировкой в басе64 и вставкой текста и представляешь даже с отсылкой письма. Правда там всё на тасме, а в твоём коде разбираться лениво... |
|
|
Дата: Апр 27, 2004 13:12:15 · Поправил: q_q xsnatch Для начала перенести точку входа ... start: invoke WSAStartup, 1, offset lpBuf1 ; !!! это вообще не надо. EncodeBuf proc uses esi edi ebx lpSrc, lpDst, Len: DWORD ...на правильное место ...Sendtext endp start: ; !!! real position invoke GetWindowsDirectory, addr WinDir, 1024 ...Потом подумай какое значение находится в регистре edi перед invoke EncodeBuf, FHndl, edi, eax invoke Sendtext, edi ... invoke LocalFree, edi ... PS используй тег для оформления кода. |
|
|
Дата: Апр 27, 2004 14:21:57 Спасибо! очень толковое обьяснение !:) Я попробую |
|
|
Дата: Апр 27, 2004 18:16:29 Тема перемещена, т.к. свои программы дебажьте сами! А не выливайте мусор в форум |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.044 |