· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.HEAP —› Проверка тега [CODE]

Посл.отвђт Сообщенiе


Дата: Июн 26, 2003 18:09:28


;##################################################################### #####
.386
.model flat, stdcall
option casemap:none
title HTTPChk
;##################################################################### #####
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc
include C:\masm32\include\wsock32.inc
includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\user32.lib
includelib C:\masm32\lib\wsock32.lib
;##################################################################### #####
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text, 0
lbl:
ENDM
m2m MACRO M1, M2
push M2
pop M1
ENDM
m2mx MACRO M1, M2
mov eax, M2
mov M1, eax
ENDM
return MACRO RETVALUE
mov eax, RETVALUE
ret
ENDM
iif MACRO condition, if_true, if_false, return
.if condition
mov return, if_true
.else
mov return, if_false
.endif
ENDM
iifs MACRO condition, if_true, if_false, return
mov return, if_false
.if condition
mov return, if_true
.endif
ENDM
;##################################################################### #####
;##################################################################### #####
;##################################################################### #####
BlockHook PROTO
ErrorHandler PROTO C :DWORD,:DWORD,:DWORD,:DWORD
ExceptionFilter PROTO :DWORD
;##################################################################### #####
.const
szMsgAbout db "HTTPChk", 13, 10
db "401 HTTP scanner", 13, 10
db "Version 1.0", 13, 10
db "Coded by comrade <comrade2k@hotmail.com>", 13, 10
db "Web: http://www.comrade64.com/", 13, 10
db " http://comrade.win32asm.com/", 13, 10
db " http://comrade.ownz.com/", 13, 10
db " http://comrade64.cjb.net/", 13, 10, 13, 10
dwMsgAboutLen equ $ - szMsgAbout
szStatusWork db "Working...", 13, 10
szStatusDone db "Done", 13, 10
szErrorThread db 13, 10, "Error at %08Xh", 13, 10, "Registers:", 13, 10, "eax = %08Xh ebx = %08Xh ecx = %08Xh", 13, 10, "edx = %08Xh esp = %08Xh ebp = %08Xh", 13, 10, "esi = %08Xh edi = %08Xh", 13, 10, 13, 10, "Recovering...", 13, 10, 0
szErrorFinal db 13, 10, "Error at %08Xh", 13, 10, "Quitting...", 13, 10, 0

szRequest db "GET / HTTP/1.0", 13, 10, "Accept: */*", 13, 10, "Connection: Close", 13, 10, 13, 10
;##################################################################### #####
.data
;##################################################################### #####
.data?
hStdOut dd ?
hSocket dd ?
dwBytesDone dd ?
dwTime dd ?
szInput db 32 dup (?)
szMessage db 256 dup (?)
seh dd 6 dup (?)

data_start equ $
sin sockaddr_in <>
wsData WSADATA <>
data_size equ $ - data_start
;##################################################################### #####
.code
start: invoke GetStdHandle, STD_OUTPUT_HANDLE
mov [hStdOut], eax
invoke SetUnhandledExceptionFilter, ADDR ExceptionFilter
invoke WriteFile, [hStdOut], ADDR szMsgAbout, dwMsgAboutLen, ADDR dwBytesDone, 0
; install the SEH-frame
assume fs:nothing
push OFFSET ErrorHandler
push FS:[0]
mov [seh], esp
mov [seh+4], ebp
mov [seh+8], ebx
mov [seh+12], esi
mov [seh+16], edi
mov [seh+20], OFFSET @@safe
mov FS:[0], esp
; critical code
; zero uninitialized data
push edi
xor eax, eax
mov ecx, data_size shr 2
mov edi, data_start
rep stosd
IF data_size AND 3
mov edi, data_start
mov ecx, data_size and 3
rep stosb
ENDIF
pop edi
; parse the command-line
call GetCommandLine
xor ecx, ecx
mov dl, " "
.if byte ptr [eax]==""""
mov dl, """"
.endif
@@clcz: cmp byte ptr [eax], 0
jne @@clck
jmp @@safe
@@clck: cmp byte ptr [eax], dl
je @@cldn
inc eax
jmp @@clcz
@@cldn: inc eax
cmp dl, """"
sete cl
add eax, ecx
push eax
; initialize winsock
invoke WSAStartup, 101h, ADDR wsData
invoke WSASetBlockingHook, ADDR BlockHook
invoke WriteFile, [hStdOut], ADDR szStatusWork, sizeof szStatusWork, ADDR dwBytesDone, 0
call inet_addr ;invoke inet_addr, eax
mov [sin.sin_family], AF_INET
mov [sin.sin_port], 80 shl 8
mov ecx, 255
@@try: push ecx
push eax
mov [sin.sin_addr], eax
call GetTickCount
mov [dwTime], eax
invoke socket, PF_INET, SOCK_STREAM, 0
mov [hSocket], eax
push eax
invoke connect, eax, ADDR sin, sizeof sin
test eax, eax
jnz @@next
invoke send, [hSocket], ADDR szRequest, sizeof szRequest, 0
inc eax
jz @@next
invoke recv, [hSocket], ADDR szInput, sizeof szInput, 0
inc eax
jz @@next
.if dword ptr [szInput+9] == " 104"
invoke inet_ntoa, dword ptr [sin.sin_addr]
xor ecx, ecx
@@chkz: cmp byte ptr [eax+ecx], 0
je @@wrip
inc ecx
jmp @@chkz
@@wrip: invoke WriteFile, [hStdOut], eax, ecx, ADDR dwBytesDone, 0
invoke WriteFile, [hStdOut], ADDR szMsgAbout+7, 2, ADDR dwBytesDone, 0
.endif
@@next: call closesocket
pop eax
pop ecx
add eax, 1 shl 24
dec ecx
jnz @@try
@@safe: pop FS:[0]
call WSAUnhookBlockingHook
call WSACleanup
invoke WriteFile, [hStdOut], ADDR szStatusDone, sizeof szStatusDone, ADDR dwBytesDone, 0
call ExitProcess
;##################################################################### #####
BlockHook proc
call GetTickCount
sub eax, [dwTime]
cmp eax, 500
jl @@quit
call WSACancelBlockingCall
@@quit: ret
BlockHook endp
;##################################################################### #####
ErrorHandler proc C lpExcept:DWORD, lpFrame:DWORD, lpContext:DWORD, lpDispatch:DWORD
mov eax, [lpExcept]
mov ecx, [lpContext]
invoke wsprintf, ADDR szMessage, ADDR szErrorThread, [eax][EXCEPTION_RECORD.ExceptionAddress], [ecx][CONTEXT.regEax], [ecx][CONTEXT.regEbx], [ecx][CONTEXT.regEcx], [ecx][CONTEXT.regEdx], [ecx][CONTEXT.regEsp], [ecx][CONTEXT.regEbp], [ecx][CONTEXT.regEsi], [ecx][CONTEXT.regEdi]
invoke WriteFile, [hStdOut], ADDR szMessage, eax, ADDR dwBytesDone, 0

mov eax, [lpContext]
m2m [eax][CONTEXT.regEsp], [seh]
m2m [eax][CONTEXT.regEbp], [seh+4]
m2m [eax][CONTEXT.regEbx], [seh+8]
m2m [eax][CONTEXT.regEsi], [seh+12]
m2m [eax][CONTEXT.regEdi], [seh+16]
m2m [eax][CONTEXT.regEip], [seh+20]

xor eax, eax ; continue execution
ret
ErrorHandler endp
;##################################################################### #####
ExceptionFilter proc lpExcept:DWORD
mov eax, [lpExcept]
invoke wsprintf, ADDR szMessage, ADDR szErrorFinal, [eax][EXCEPTION_RECORD.ExceptionAddress]
invoke WriteFile, [hStdOut], ADDR szMessage, eax, ADDR dwBytesDone, 0
invoke closesocket, [hSocket]
invoke ExitProcess, 0
xor eax, eax
inc eax ; EXCEPTION_EXECUTE_HANDLER
ret
ExceptionFilter endp
;##################################################################### #####
;##################################################################### #####
;##################################################################### #####
end start


Дата: Июн 26, 2003 18:15:15

Баги


Дата: Июн 26, 2003 18:16:21


invoke blabla, addr
2 5 66 77


Дата: Июн 26, 2003 18:17:56 · Поправил: Asterix

Да нет вроде работает
.386

.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\winmm.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\winmm.lib

.data
MsgCaption db "message",0
MsgBoxText db "The project is loaded successfully!",0
SoundResource db "MySound",0

.data?
hModule dd ?

.code
start:
invoke GetModuleHandle,NULL
mov hModule,eax
invoke PlaySound, addr SoundResource,hModule,SND_RESOURCE or SND_ASYNC or SND_LOOP
invoke MessageBox, NULL,addr MsgBoxText, addr MsgCaption, MB_OK
invoke ExitProcess,NULL
end start


Дата: Июн 26, 2003 18:19:51

Только плотнее бы строчки надо, по высоте


Дата: Июн 26, 2003 19:43:35 · Поправил: Four-F


.386
.model flat, stdcall
option casemap:none

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; I N C L U D E F I L E S
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

include \masm32\include\windows.inc

include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; F U N C T I O N S P R O T O T Y P E S
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

proto00 TYPEDEF proto
proto01 TYPEDEF proto :DWORD
proto02 TYPEDEF proto :DWORD, :DWORD
proto03 TYPEDEF proto :DWORD, :DWORD, :DWORD
proto04 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD
proto05 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto06 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto07 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto08 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto09 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto10 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto11 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto12 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto13 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto14 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto15 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto16 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto17 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto18 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto19 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
proto20 TYPEDEF proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD

pproto00 TYPEDEF PTR proto00
pproto01 TYPEDEF PTR proto01
pproto02 TYPEDEF PTR proto02
pproto03 TYPEDEF PTR proto03
pproto04 TYPEDEF PTR proto04
pproto05 TYPEDEF PTR proto05
pproto06 TYPEDEF PTR proto06
pproto07 TYPEDEF PTR proto07
pproto08 TYPEDEF PTR proto08
pproto09 TYPEDEF PTR proto09
pproto10 TYPEDEF PTR proto10
pproto11 TYPEDEF PTR proto11
pproto12 TYPEDEF PTR proto12
pproto13 TYPEDEF PTR proto13
pproto14 TYPEDEF PTR proto14
pproto15 TYPEDEF PTR proto15
pproto16 TYPEDEF PTR proto16
pproto17 TYPEDEF PTR proto17
pproto18 TYPEDEF PTR proto18
pproto19 TYPEDEF PTR proto19
pproto20 TYPEDEF PTR proto20

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; U S E R D E F I N E D S T R U C T U R E S
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

pr UNION
i00 pproto00 ?
i01 pproto01 ?
i02 pproto02 ?
i03 pproto03 ?
i04 pproto04 ?
i05 pproto05 ?
i06 pproto06 ?
i07 pproto07 ?
i08 pproto08 ?
i09 pproto09 ?
i10 pproto10 ?
i11 pproto11 ?
i12 pproto12 ?
i13 pproto13 ?
i14 pproto14 ?
i15 pproto15 ?
i16 pproto16 ?
i17 pproto17 ?
i18 pproto18 ?
i19 pproto19 ?
i20 pproto20 ?
pr ENDS

ROUTE2 STRUCT
tag DWORD ?
funcaddr pproto02 ?
ROUTE2 ENDS

ROUTE4 STRUCT
tag DWORD ?
funcaddr pproto04 ?
ROUTE4 ENDS

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; C O N S T A N T S
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

.const

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; I N I T I A L I Z E D D A T A
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

.data
szCaption db "Caption", 0
szText db "Text", 0

offProc2 dd OFFSET Proc2
offProc4 dd OFFSET Proc4

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; U N I N I T I A L I Z E D D A T A
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

.data?
MyRoute2 ROUTE2 <?>
MyRoute4 ROUTE4 <?>

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
; C O D E
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

.code

Proc4 proc hWnd:HWND, lpText:LPSTR, lpCaption:LPSTR, uType:UINT
invoke MessageBox, hWnd, lpText, lpCaption, MB_OK
ret
Proc4 endp

Proc2 proc par1:DWORD, par2:DWORD
mov eax, par1
add eax, par2
ret
Proc2 endp

start:

mov MyRoute2.funcaddr, Proc2
; direct
invoke proto02 ptr [Proc2], 1, 2
; indirect
invoke pproto02 ptr [offProc2], 1, 2
; indirect
invoke [MyRoute2.funcaddr], 1, 2
; indirect
lea ebx, MyRoute2
invoke [ebx].ROUTE2.funcaddr, 1, 2

mov MyRoute4.funcaddr, Proc4
; direct
invoke proto04 ptr [Proc4], NULL, offset szText, offset szCaption, MB_OK
; indirect
invoke pproto04 ptr [offProc4], NULL, offset szText, offset szCaption, MB_OK
; indirect
invoke [MyRoute4.funcaddr], NULL, offset szText, offset szCaption, MB_OK
; indirect
lea ebx, MyRoute4
invoke [ebx].ROUTE4.funcaddr, NULL, offset szText, offset szCaption, MB_OK

invoke ExitProcess, 0

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::

end start



Действительно работает! А мы столько мучились.
А что это за разрывы после 70-ого символа ':' или '#' ?


Дата: Июн 26, 2003 22:32:02 · Поправил: Aquila

Пока не постите с тэгом [code] - его надо немного доработать.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.103