los videos son buenos, incluso se escuchan disparos, voces de personas, aunque parecen fantasmas, porque el que hace los tutoriales se queda callado cuando escucha ruidos... jeje
estos videos tienen de todo
estos videos tienen de todo

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
loop_recv:
push 0
push 50
push buff
push dword[rsocket]
call [recaddr] <-- recv()
cmp eax, -1
je loop_recv
push 0
push srelen
push sre
push dword[soadd]
call [senaddr] <-- send()
section .data
sockAddr dw AF_INET ; sockAddr Structure .. check API reference..
sockAddrp dw ?
sockAddrip dd 0
sockAddrZ rb 8
sockAddrSize = $-sockAddr ; Size of struct (16 bytes)
remoAddr dw ? ; Another sockAddr Structure
remoAddrp dw ?
remoAddrip dd ?
remoAddrZ rb 8
remoAddrSize dd ?
invoke bind, [hSocket], sockAddr, sockAddrSize
.accept_loop:
mov [remoAddrSize], sockAddrSize ; Store our sockAddr structures size
invoke accept, [hSocket], remoAddr, remoAddrSize ; Accept any incoming connections
cmp eax, -1 ; Did we get one?
je .accept_loop ; Nah, keep trying
mov [hRemoteSocket], eax ; Yes we did, so store the new sockets handle
.recv_loop:
xor eax, eax ; Clear eax (mov eax, 0)
mov dword [recvBuf], eax ; Zero recvBuf (otherwise it keeps thinking we have data)
invoke recv, [hRemoteSocket], recvBuf, 1024, 0 ; Try and recieve any data being sent
cmp eax, 0 ; Did we get any?
je .end_recv_loop
push 0x00000000
push 0xB9220002
mov esi,esp
push byte 16
push esi
push dword[soadd]
call [binaddr] <-- bind()
push lis
push dword [wsaddr]
call _GetProcAddress@8
mov [lisaddr], eax
push 2
push dword[soadd]
call [lisaddr] <-- listen()
push accp
push dword [wsaddr]
call _GetProcAddress@8
mov [accaddr], eax
ac_acp:
push 0x00000000
push 0x00000000
mov esi, esp
push byte 16
push dword[soadd]
call [accaddr] <--- accept()
cmp eax, -1
je ac_acp
mov [rsocket], eax <-- guardo en otro registro, no se si esto este bien pero asi lo vi en el codigo de arriba
push rec
push dword [wsaddr]
call _GetProcAddress@8
mov [recaddr], eax
loop_recv:
push 0
push 1024
push buff
push dword[rsocket]
call [recaddr] <-- recv()
cmp eax, -1
je loop_recv
push eax
call _printf
[BITS 32]
section .data
wsdll: db 'ws2_32.dll',0
wsaddr: dd '0xFFFFFFFF'
Getpc: dd '0xFFFFFFFF'
WStp: db 'WSAStartup',0
WSaddr: dd '0xFFFFFFFF'
WSD: dd 'WSADATA',0
saveWSA: dd '0xFFFFFFFF'
soc: db 'socket',0
soadd: dd '0xFFFFFFFF'
conn: db 'connect', 0
conaddr: dd '0xFFFFFFFF'
sen: db 'send', 0
sendadd: dd '0xFFFFFFFF'
res1: db "WSAStartup %d", 10, 0
res2: db "Socket %d", 10, 0
res3: db "connect %d", 10, 0
res4: db "send %d", 10 ,0
sre: db "hola mundo",0
section .bss
sn resb 10
section .text
global _WinMain@16
extern _ExitProcess@4
extern _LoadLibraryA@4
extern _GetProcAddress@8
extern _printf
extern _WSAStartup@8
_WinMain@16:
xor eax, eax
push wsdll
call _LoadLibraryA@4
mov [wsaddr], eax
push WStp
push dword [wsaddr]
call _GetProcAddress@8
mov [Getpc], eax
push WSD
push 0x202
call [Getpc]
mov [saveWSA], eax
cmp dword [saveWSA], -1
jne mns1
je erro
mns1:
push dword [saveWSA]
push res1
call _printf
push soc
push dword [wsaddr]
call _GetProcAddress@8
mov [Getpc], eax
push 6
push 1
push 2
call [Getpc]
mov [soadd], eax
push dword [soadd]
push res2
call _printf
push conn
push dword [wsaddr]
call _GetProcAddress@8
mov [conaddr], eax
push dword [conaddr]
push res3
call _printf
push 0x0100007F
push 0xB9220002
mov esi, esp
push byte 16
push esi
push dword [soadd]
call [conaddr]
erro:
push 0
call _ExitProcess@4format PE console 4.0
entry start
include 'include\win32a.inc'
section '.data' data readable writable
wsadata WSADATA
saddr sockaddr_in
sock_size = $-saddr
sock dd ?
sin_addr dd ?
sin_port dd ?
section '.code' code readable executable
start:
invoke WSAStartup, 0202h, wsadata
invoke socket, AF_INET, SOCK_STREAM, 0
mov[sock], eax
mov[saddr.sin_family], AF_INET
mov[saddr.sin_port], 0xB922
mov[saddr.sin_addr], 0x0100007F
invoke connect, [sock], saddr, sock_size
invoke ExitProcess,0
section '.idata' import data readable writeable
library kernel, 'KERNEL32.DLL',\
winsock, 'WSOCK32.DLL'
import kernel,\
ExitProcess, 'ExitProcess'
import winsock,\
WSAStartup, 'WSAStartup',\
WSACleanup, 'WSACleanup',\
socket, 'socket',\
connect, 'connect',\
sendto, 'sendto',\
closesocket, 'closesocket' [BITS 32]
section .data
wsdll: db 'ws2_32.dll',0
wsaddr: dd '0xFFFFFFFF'
Getpc: dd '0xFFFFFFFF'
WStp: db 'WSAStartup',0
WSaddr: dd '0xFFFFFFFF'
WSD: dd 'WSADATA',0
saveWSA: dd '0xFFFFFFFF'
soc: db 'socket',0
soadd: dd '0xFFFFFFFF'
conn: db 'connect', 0
conaddr: dd '0xFFFFFFFF'
sen: db 'send', 0
sendadd: dd '0xFFFFFFFF'
sre: db "hola mundo",0
section .bss
sn resb 10
section .text
global _WinMain@16
extern _ExitProcess@4
extern _LoadLibraryA@4
extern _GetProcAddress@8
extern _printf
extern _WSAStartup@8
_WinMain@16:
xor eax, eax
push wsdll
call _LoadLibraryA@4
mov [wsaddr], eax
push WStp
push dword [wsaddr]
call _GetProcAddress@8
mov [Getpc], eax
push WSD
push 0x202
call [Getpc]
mov [saveWSA], eax
push soc
push dword [wsaddr]
call _GetProcAddress@8
mov [Getpc], eax
push 6
push 1
push 2
call [Getpc]
mov [soadd], eax
push conn
push dword [wsaddr]
call _GetProcAddress@8
mov [conaddr], eax
push dword [soadd]
mov eax, 0x00000000
mov eax, 0x00000000
mov eax, 0x0100007f
mov eax, 0x5c110002
mov eax, 16
push eax
call [conaddr]
push sen
push dword [wsaddr]
call _GetProcAddress@8
mov [sendadd], eax
push dword [soadd]
push sre
push sn
push 0
call [sendadd]
erro:
push 0
call _ExitProcess@4
[BITS 32]
section .data
cual: db 'Cual es tu nombre?',0
STDIN equ 0
section .bss
buf: resb 64
lent: equ $-buf
section .text
global _WinMain@16
extern _printf
extern _fgets
extern _stdin
extern _ExitProcess@4
_WinMain@16:
push cual
call _printf
add esp, 4
push STDIN
push lent
push buf
call _fgets
push 0
call _ExitProcess@4
ret 16[Bits 32]
section .data
remote_file db 'http://underc0de.org/foro/Themes/underc0de/images/theme/logo.png',0
local_file db 'deje.png',0
url db 'urlmon.dll'
ldlib dd '0xFFFFFFFF'
URDo db 'URLDownloadToFileA'
urd dd '0xFFFFFFFF'
section .text
extern _LoadLibraryA@4
extern _GetProcAddress@8
extern _FreeLibrary@4
extern _ExitProcess@4
global _WinMain@16
_WinMain@16:
push url
call _LoadLibraryA@4
mov [ldlib], eax
push URDo
push dword [ldlib]
call _GetProcAddress@8
mov [urd], eax
push 0
push 0
push local_file
push remote_file
push 0
call [urd]
call _FreeLibrary@4
push 0
call _ExitProcess@4
ret 16
offset PE: 0xE0 - 0x28 = 0xB8 (4 bytes)
Se puede apreciar en la comparacion la cabecera PE desplazada 0x28 bytes hacia abajo (considerese abajo, como desplazamiento hacia menor direccion que la actual), y se ve la "Bound Import Table" intacta (la que en el otro capitulo eliminamos/sobreescribimos)