ahh taj divni windows i asm =))

ahh taj divni windows i asm =))

offline
  • Pridružio: 29 Jan 2005
  • Poruke: 94
  • Gde živiš: Beograd, Srbija

Evo jedan lep program za korisnike WinXP ili drugog NT based operativnog sistema =)
Na kraju imte binary ovog koda pa ko voli nek izvoli, program nije destruktivan uopste...

.586 .model flat, stdcall locals jumps include \tasm32\include\useful.inc include \tasm32\include\mz.inc include \tasm32\include\pe.inc null                        equ      0 MB_OK                       equ      0 TOKEN_ADJUST_PRIVILEGES     equ   20h SE_PRIVILEGE_ENABLED        equ   02h TOKEN_ASSIGN_PRIMARY        equ (0001h) TOKEN_DUPLICATE             equ (0002h) TOKEN_IMPERSONATE           equ (0004h) TOKEN_QUERY                 equ (0008h) TOKEN_QUERY_SOURCE          equ (0010h) TOKEN_ADJUST_GROUPS         equ (0040h) TOKEN_ADJUST_DEFAULT        equ (0080h) TOKEN_ADJUST_SESSIONID      equ (0100h) STANDARD_RIGHTS_REQUIRED    equ 0F0000h TOKEN_ALL_ACCESS            equ (STANDARD_RIGHTS_REQUIRED+TOKEN_ASSIGN_PRIMARY+TOKEN_DUPLICATE+ \                                 TOKEN_IMPERSONATE+TOKEN_QUERY+TOKEN_QUERY_SOURCE+ \                                 TOKEN_ADJUST_PRIVILEGES+TOKEN_ADJUST_GROUPS+TOKEN_ADJUST_SESSIONID+ \                                 TOKEN_ADJUST_DEFAULT)                                 PROCESS_ALL_ACCESS          equ (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 0FFFh) SYNCHRONIZE                 equ 100000h PAGE_EXECUTE_READWRITE      equ 40h MEM_COMMIT                  equ 1000h MEM_RESERVE                 equ 2000h TOKEN_PRIVILEGES STRUCT    TP_count    dd ?    TP_luid     dq ?    TP_attrib   dd ? TOKEN_PRIVILEGES  ENDS extrn OpenProcessToken:proc extrn GetCurrentProcess:proc extrn LookupPrivilegeValueA:proc extrn AdjustTokenPrivileges:proc extrn MessageBoxA:proc extrn VirtualAllocEx:proc extrn OpenProcess:proc extrn WriteProcessMemory:proc extrn ReadProcessMemory:proc extrn CreateRemoteThread:proc extrn EnumProcesses:proc extrn CloseHandle:proc extrn GetProcAddress:proc extrn GetModuleHandleA:proc extrn ExitProcess:proc extrn ExitThread:proc .data                      tp       TOKEN_PRIVILEGES <>                      token    dd   ?                      se_debug db "SeDebugPrivilege",0                      mText    db "SeDebugPrivilege has been activated",0                      procBuf  dd 1024 dup(0)                      proces   dd ?                      api_name db "GetProcAddress",0                      dll      db "kernel32.dll",0                      my_base  dd ?                      hProcess dd ?                      counter  dd ?                      dummy    dd ?                      curbase  dd ?                      base     dd ? .code start:                             call GetModuleHandleA, null                      mov my_base, eax                      mov eax, dword ptr FS:[30h]                      push eax                      pop curbase                      add curbase, 8                                    call GetCurrentProcess                      call OpenProcessToken, eax, TOKEN_ALL_ACCESS, offset token                      lea edi, tp.TP_luid                      call LookupPrivilegeValueA, null, offset se_debug, edi                      mov tp.TP_count, 1                      mov tp.TP_attrib, SE_PRIVILEGE_ENABLED                      call AdjustTokenPrivileges, token, null, offset tp, size TOKEN_PRIVILEGES, null, null                      test eax, eax                      jz __exit                      call MessageBoxA, null, offset mText, offset se_debug, MB_OK __exit:                      call CloseHandle, token                      call EnumProcesses, offset procBuf, 1024*4, offset proces                      mov ecx, proces                      shr ecx, 2    ;divide by 4 __loop_processes:                      mov counter, ecx                      mov eax, offset procBuf                      mov eax, dword ptr[eax+ecx*4]                      call OpenProcess, PROCESS_ALL_ACCESS, 0, eax                      test eax, eax                      jz __next_process                      mov hProcess, eax                      call ReadProcessMemory, hProcess, curbase, offset base, 4, offset dummy                      mov eax, base                      cmp eax, my_base                      jne __close_handle                      call VirtualAllocEx, hProcess, null, end_RemoteThread-RemoteThread, \                                           MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE                      test eax, eax                      jz __close_handle                      push eax                      call WriteProcessMemory, hProcess, eax, offset RemoteThread,\                                                          end_RemoteThread-RemoteThread, offset dummy                      pop eax                      call CreateRemoteThread, hProcess, null, null, eax, null, null, offset dummy __close_handle:                      call CloseHandle, hProcess            __next_process:                                   mov ecx, counter                      loop __loop_processes                            call ExitProcess, null               RemoteThread:                      call KernelBase                      @pushsz <"LoadLibraryA">                      push eax                      call GetProc                      @pushsz <"user32.dll">                      call eax                      @pushsz <"MessageBoxA">                      push eax                      call GetProc                      push MB_OK                      @pushsz <"Sloboda ili Smrt">                      @pushsz <"Za Slobodu Srpstva i Srbije, poginuti nama zao nije">                      push null                      call eax                      ret                                             KernelBase:                      mov esi, FS:[0] __seh:                      lodsd                      cmp eax, 0FFFFFFFFh                      je  __find_kernel                      mov esi, eax                      jmp __seh  __find_kernel:                       mov edi, [esi+4]        ;seh handle                      and edi, 0FFFF0000h     ;Wipe low word __spin:                      cmp word ptr[edi], 'ZM'                           jz __test_pe                      sub edi, 10000h                      jmp __spin __test_pe:                      mov ebx, edi                      add ebx, [ebx.MZ_lfanew]                      cmp word ptr[ebx],'EP'                      je __ret_kernel_base                      jmp __spin    __ret_kernel_base:                      mov eax, edi                      ret GetProc: handle equ dword ptr[ebp+8] api    equ dword ptr[ebp+12]                      push ebp                      mov ebp, esp                      mov esi, api __api_len:                      lodsb                      test al, al                      jnz __api_len                      sub esi, api                      mov ecx, esi                          mov ebx, handle                      add ebx, [ebx.MZ_lfanew]                      mov ebx, [ebx.NT_OptionalHeader.OH_DirectoryEntries.DE_Export.DD_VirtualAddress]                      add ebx, handle                      mov edx, [ebx.ED_AddressOfNames]                      add edx, handle                      sub eax, eax __find_api:                      mov esi, [edx]                      add esi, handle                      mov edi, offset api                      push ecx                             cld                      repe cmpsb                      pop  ecx                      jz __find_ordinal                      add edx, 4                      inc eax                      jmp __find_api __find_ordinal:                      mov esi, [ebx.ED_AddressOfNameOrdinals]                      add esi, handle                      sub edx, edx                      mov dx, word ptr[esi+eax*2]                              mov esi, [ebx.ED_AddressOfFunctions]                      add esi, handle                      mov eax, [esi+edx*4]                      add eax, handle                          mov esp, ebp                      pop ebp                      ret 8       end_RemoteThread: end start

i binary ->>>>
get.filehosting.org/nf27377.exe
ili
mycity.rs/must-login.png

Ne pokretati u Win98 jer nema APIje koje ovaj program koristi =)))



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • mr_W 
  • Počasni građanin
  • Pridružio: 22 Mar 2004
  • Poruke: 835

c0mrade,

ti si moj Idol!

Hajde mi (a i ostalima) objasni šta ovaj program uopšte radi, kako to radi, i zašto to radi...



offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

i sta ovaj progy radi? Smile

offline
  • Pridružio: 29 Jan 2005
  • Poruke: 94
  • Gde živiš: Beograd, Srbija

A da zaboravih da kazem sta radi =)
Pa ovako prvo preko EnumProcess lista sve aktivne proceses...
Posle toga bira samo user processes to jest proceses koji imaju base adresu 400000 i u njih ubacuje kod koji stampa poruku. Naime buduci da se koriste API za alociranje memorije u drugom procesu i kreiranje threada u drugom procesu nista se ne menja na procesu koji radi osim sto izbacuje messagebox, doduse videce se vise messageboxova odjednom buduci da program brzo radi (samo winAPI) nikakve funkcije sa strane... i sve radi normalno

offline
  • mr_W 
  • Počasni građanin
  • Pridružio: 22 Mar 2004
  • Poruke: 835

c0mrade

a zašto je korisno da on baš to radi ?

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Sram te bilo !
Smile

offline
  • Pridružio: 29 Jan 2005
  • Poruke: 94
  • Gde živiš: Beograd, Srbija

A ko je rekao da je korisno? =)
Moze da bude korisno ako pokusavas da sprecavas bufferoverflow (http://nonenone.net/progz/security.zip)

Ali eto sad sam napisao jer imam neke ideje sa ovim kodom pa reko da podelim sa ljudima nesto interesantno...
Zar nije vajkad bilo interesantno uticati na sve procese u sistemu? Ja sam uvek voleo da se igram sa procesima, kako na unix, tako na win...
A binary sam dao cisto ako nekog mrzi da kompajlira kod =)

beli haha =)

Ko je trenutno na forumu
 

Ukupno su 883 korisnika na forumu :: 11 registrovanih, 1 sakriven i 871 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Dimitrije Paunovic, doloress, Kriglord, mikki jons, Miškić, Ognjen D., simazr, Sir Budimir, sovanova95, stalja, uruk