The MASM Forum Archive 2004 to 2012

General Forums => The Campus => Topic started by: Farabi on June 04, 2010, 01:25:42 AM

Title: Check Outgoing connection
Post by: Farabi on June 04, 2010, 01:25:42 AM
I want to check all of my active connection include the port used for all application that used internet connection like netstat.exe did. What function I should use?
Title: Re: Check Outgoing connection
Post by: Richard van Petrov on June 04, 2010, 02:17:43 AM
You can do this by using the IP Helper API (documentation; http://msdn.microsoft.com/en-us/library/aa366073%28v=VS.85%29.aspx)
Title: Re: Check Outgoing connection
Post by: Farabi on June 04, 2010, 07:12:45 AM
Quote from: Richard on June 04, 2010, 02:17:43 AM
You can do this by using the IP Helper API (documentation; http://msdn.microsoft.com/en-us/library/aa366073%28v=VS.85%29.aspx)

Yeah but the .lib file on MASM32 is broken.
Title: Re: Check Outgoing connection
Post by: Richard van Petrov on June 04, 2010, 11:01:40 PM
Try and run this code; it should work for you.

conoutmon.asm:

include \masm32\include\masm32rt.inc

include \masm32\include\iphlpapi.inc
includelib \masm32\lib\iphlpapi.lib

MIB_TCPSTATS struct
        dwRtoAlgorithm  DWORD ?
        dwRtoMin        DWORD ?
        dwRtoMax        DWORD ?
        dwMaxConn       DWORD ?
        dwActiveOpens   DWORD ?
        dwPassiveOpens  DWORD ?
        dwAttemptFails  DWORD ?
        dwEstabResets   DWORD ?
        dwCurrEstab     DWORD ?
        dwInSegs        DWORD ?
        dwOutSegs       DWORD ?
        dwRetransSegs   DWORD ?
        dwInErrs        DWORD ?
        dwOutRsts       DWORD ?
        dwNumConns      DWORD ?
MIB_TCPSTATS ends

.data

        tcpStats        MIB_TCPSTATS <>

        szTcpTotal      DB "Total # TCP Connections : ",0
        szTcpCap        DB "TCP Stats",0

.code

start:

INVOKE  GetTcpStatistics, OFFSET tcpStats
MOV     ESI, alloc(512)
MOV     EAX, tcpStats.dwNumConns
MOV     EAX, ustr$(EAX)
PUSH    EAX
XOR     EAX, add$(ESI, OFFSET szTcpTotal)
POP     EAX
XOR     EAX, add$(ESI, EAX)
INVOKE  MessageBox, 0, ESI, OFFSET szTcpCap, MB_OK or MB_ICONINFORMATION
INVOKE  ExitProcess, 0

end start
Title: Re: Check Outgoing connection
Post by: Farabi on June 05, 2010, 12:55:48 AM
Thanks for the Code I got it working anyway.