rendered paste body;************************************************************;
; КОММЕНТЫ!!! заебало на след день как после ;
; пьянки его разбирать..Че и нахуй я хотела ;
;************************************************************;
.586
.model flat, stdcall
option casemap:none
STD_OUTPUT_HANDLE equ -11
STD_INPUT_HANDLE equ -12
RESOURSETYPE_DISK equ 1h
;лень подключать инки... легче так процедуры определить. Не ходите дети в школу)
extern lstrcatA@8:NEAR
extern lstrlen@4:NEAR
extern GetStdhandle@4:NEAR
extern WriteConsoleA@20:NEAR
extern ExitProcess@4:NEAR
extern GetCommandLineA@0:NEAR
extern WNetAddConnection2A@16:NEAR
NETRESOURCE struct
dwScope DWORD ? ;подсоединен, запоминаемый или глобальный ресурс
dwType DWORD ? ;диск, люой или сетевой принтр
dwDisplayTipe DWORD ? ;представление ресурса сет броузером
dwUsage DWORD ? ;нулл
ipLocalName DWORD ? ;локальное имя устройства
ipRemoteName DWORD ? ;Имя самого устройства. к примеру ЭПСОН или еще что
ipComment DWORD ? ;комментарий к данному устройству
ipProvide DWORD ? ;имя провайдера
NETRESOURSE ends
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\mpr.lib
;mrp.lib необходима для получения ресурсов локальной сети
.data
Error1 db "Слишком мало параметров", 0 ;если структура заполнится не до конца
Error2 db "Ошибка", 0
TextStr db "-->", 0
Obnarujenie db "Были обнаружены следующие устройства: ", 0
.data?
NR NETRESOURCE <0>
Buffer db ?
BuffSize db 100 dup(0)
BufferTwo db ?
BuffZise db 100 dup(0)
Dero4kO db 0
DlinnaSimv DWORD ?
handl3 DWORD ?
.code
entry:
deskript: ;получение хэндлов.количеств параметров и прочей херни
push STD_OUTPUT_HANDLE
call GetStdHandle@4
mov handl3, eax
call NUMPAR
cmp eax, 3 ;хватит ли у нас параметров?
jnb okay ;если да.
lea ebx, Error1 ;отобразим ошибку и с вещами на выход
call SETMSG
jmp ExitO_o
deskript endp
okay: ;если все параметры на месте, то едем дальше
;получаем их
mov edi, 2
lea ebx, Buffer
call GETPAR ;param
mov edi, 3
lea ebx, BufferTwo
call GETPAR
;заполняем структуру
mov NR.dwType, 0
lea eax, BufferTwo
mov NR.IpLocalName, eax
lea eax, Buffer
mov NR.IpRemoteName, eax
mov NR.IpProvider, 0
;идем на коннект, хуле
push 0
push offset Dero4kO
push offset Dero4kO
push offset NR
call WNetAddConnection2A@16
cmp eax, 0
je edem_dalwe
lea ebx, Error2
call SETMSG
jmp ExitO_o
okay endp
edem_dalwe:
push offset TextStr
push offset Buffer
call lstrcatA@8
lea ebx, Buffer
call SETMSG
jmp Perv
edem_dalwe endp
ExitO_o:
push 0
call ExitProcess@4
ExitO_o endp
perv:
cmp byte ptr [esi], 0
je chetv
cmp byte ptr [esi], 0
je vtor
add ecx, edx ;nomer parametra
xor edx, edx
jmp tret
perv endp
vtor:
or edx, 1
vtor endp
tret:
inc esi
jmp pjat
tret endp
chetv:
mov eax, ecx
ret
NUMPAR endp
;EBX ukazevaet na bufer, kuda belpomewen param
;stroka s NULL-okon4aniem
;EDI - nome parametra
get CommandLineA@0
mov esi, eax ;pointer na strolu
xor ecx, ecx ;obNULL chet4ik
mov edx, 1
chetv endp
pjat:
cmp byte ptr [esi], 0
je devjat
cmp byte ptr [esi], 32
je shest
add ecx, edx ;n0m3r param
xor edx, edx
jmp sem
pjat endp
shest:
or edx, 1
shest endp
sem:
cmp ecx, edi
jne vosem
mov al, byte ptr [esi]
cmp al, 32
je vosem
mov byte ptr [ebx], al
inc ebx
sem endp
vosem:
inc esi
jmp pjat
vosem endp
devjat::
mov byte ptr [ebx], 0
ret
GETPAR endp
;vevod soobw
;ebx ---> str
SETMSG proc
push ebx
call lstrlen@4
push 0
push offset DlinnaSimv
push eax
push ebx
push HANDL
call WriteConsoleA@20
ret
SETMSG endp
devjat endp
end entry