;************************************************************; ; КОММЕНТЫ!!! заебало на след день как после ; ; пьянки его разбирать..Че и нахуй я хотела ; ;************************************************************; .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