кто падскажет как пингануть кавота я пробовал дизассемблировать ping.exe и сматреть как это сделано там. Там используется IcmpSendEcho из Icmp.dll Однако я недоконца разобрался с параметрами. Он в любом случае возвращает ноль что как я понял изучая ping.exe означает что хост пингуется. В OllyDbg после вызова возвращает ошибку LastErr ERROR_INVALID_ACCESS (0000..C) вот как уменя это было сделано .data caption db "Ping",0 text db "Ping response from " responseip db 20 dup (0) text1 db "No ping response!",0 count dd 20h pname db "IcmpSendEcho",0 dllname db "Icmp.dll",0 fa dd ? ip dd 0A51e000Ah buff db 20h dup ("k") var1 dd 1ff8h var2 db 10 dup (0) var3 dd ? var4 dd ? wahwah WSADATA <?> .code start: push offset wahwah push 101h call WSAStartup@8 push offset dllname call LoadLibraryA@4 push offset pname push eax call GetProcAddress@8 test eax, eax je exit mov fa, eax push var1 push offset ip push offset count push count push offset buff push ip push 0DFFFFFFFh call fa подскажитте пожалуйста может кто знает что уменя тут нетак
Код (Text): typedef struct tagIPINFO { u_char Ttl; u_char Tos; u_char IPFlags; u_char OptSize; u_char *Options; }IPINFO; typedef IPINFO* PIPINFO; typedef struct tagICMPECHO { u_long Source; u_long Status; u_long RTTime; u_short DataSize; u_short Reserved; void FAR *pData; IPINFO ipInfo; }ICMPECHO; typedef ICMPECHO* PICMPECHO; DWORD Ping(void) { DWORD ulAddr=inet_addr("127.1.2.3");//адрес который надо пинговать SOCKADDR_IN sin; IPINFO ipInfo; ICMPECHO icmpEcho; HANDLE hndlFile; hndlFile = pIcmpCreateFile(); ipInfo.Ttl = 255; ipInfo.Tos = 0; ipInfo.IPFlags = 0; ipInfo.OptSize = 0; ipInfo.Options = NULL; icmpEcho.Status = 0; pIcmpSendEcho( hndlFile,ulAddr, NULL, 0, &ipInfo, &icmpEcho, sizeof(struct tagICMPECHO), 2000); if (icmpEcho.Status) { //Ошибка хост не доступен } pIcmpCloseHandle(hndlFile); return 0; }