Básicamente conseguía la IP de un sitio pasado como parámetro, pero el ensamblado que le había hecho era bastante malo, hoy que tuve un rato, lo desensamble(bendito IDA

Reduje el código de la vez pasada para que quede bien legible, y se entienda.
Aquí la función (compilada en delphi 7), ojala les sirva

Código
program Gathor; {$APPTYPE CONSOLE} (***********************************) (* Funcion GetIp por WarZ0n3 *) (* Explicacion: *) (* PoC usando Winsocks en assembly *) (* Uso: *) (* Consigue la IP de un sitio web *) (* pasado como argumento *) (***********************************) uses SysUtils, Windows, WinSock; var SITE : string; (* Reporte por WarZ0n3 00408174 /$ 53 PUSH EBX 00408175 |. 81C4 70FEFFFF ADD ESP,-190 0040817B |. 54 PUSH ESP ; /pWSAData 0040817C |. 6A 01 PUSH 1 ; |RequestedVersion = 1 (1.0.) 0040817E |. E8 91FFFFFF CALL <JMP.&wsock32.WSAStartup> ; \WSAStartup 00408183 |. 90 NOP 00408184 |. 90 NOP // Solo para demostracion en el stack 00408185 |. 90 NOP 00408186 |. 68 B8814000 PUSH Project2.004081B8 ; /Name = "www.youtube.com" 0040818B |. E8 7CFFFFFF CALL <JMP.&wsock32.gethostbyname> ; \gethostbyname 00408190 |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C] 00408193 |. 33D2 XOR EDX,EDX 00408195 |. 90 NOP 00408196 |. 90 NOP // Solo para demostracion en el stack 00408197 |. 90 NOP 00408198 |. 90 NOP 00408199 |. 8B0490 MOV EAX,DWORD PTR DS:[EAX+EDX*4] 0040819C |. FF30 PUSH DWORD PTR DS:[EAX] 0040819E |. E8 61FFFFFF CALL <JMP.&wsock32.inet_ntoa> 004081A3 |. 8BD8 MOV EBX,EAX 004081A5 |. 90 NOP 004081A6 |. 90 NOP // Solo para demostracion en el stack 004081A7 |. 90 NOP 004081A8 |. 90 NOP 004081A9 |. E8 6EFFFFFF CALL <JMP.&wsock32.WSACleanup> ; [WSACleanup 004081AE |. 8BC3 MOV EAX,EBX 004081B0 |. 81C4 90010000 ADD ESP,190 004081B6 |. 5B POP EBX 004081B7 \. C3 RETN *) function GetIP(): PChar; assembler; asm PUSH EBX ADD ESP, 0FFFFFE70h PUSH ESP PUSH 1 CALL WSASTARTUP NOP NOP NOP PUSH SITE // 04081B4h CALL GetHostByName MOV EAX, [EAX+0Ch] XOR EDX, EDX NOP NOP NOP MOV EAX, [EAX+EDX*4] PUSH DWORD PTR [EAX] CALL INET_NTOA MOV EBX, EAX CALL WSACleanup MOV EAX, EBX ADD ESP, 190h POP EBX RETN end; begin SITE:= ParamStr(1); WriteLn('[Sitio web]: ', SITE, #13#10+'[Ip]: ', GetIP()); end.

