1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
unit uNetstatTable; interface uses GnuGettext, SysUtils, Classes, Windows, Dialogs, uProcesses_new, WinSock; const SIZE = 100000; MIB_TCP_STATE_LISTEN = 2; type TCP_TABLE_CLASS = integer; PMIB_TCPROW_OWNER_PID = ^MIB_TCPROW_OWNER_PID; MIB_TCPROW_OWNER_PID = packed record dwState: DWORD; dwLocalAddr: DWORD; dwLocalPort: DWORD; dwRemoteAddr: DWORD; dwRemotePort: DWORD; dwOwningPid: DWORD; end; PMIB_TCPTABLE_OWNER_PID = ^MIB_TCPTABLE_OWNER_PID; MIB_TCPTABLE_OWNER_PID = packed record dwNumEntries: DWORD; table: array [0 .. SIZE - 1] of MIB_TCPROW_OWNER_PID; //table: array [0 .. 99999] of MIB_TCPROW_OWNER_PID; end; tNetstatTable = class private hLibModule: THandle; DLLProcPointer: Pointer; procedure LoadExIpHelperProcedures; procedure UnLoadExIpHelperProcedures; public pTcpTable: PMIB_TCPTABLE_OWNER_PID; updating_table: integer; updating: integer; procedure UpdateTable; function GetPorts4PID(pid: integer): string; function GetPortCount4PID(pid: integer): integer; function isPortInUse(port: integer): string; function isPortInUsePID(port: integer): integer; constructor Create; destructor Destroy; override; end; var NetStatTable: tNetstatTable; implementation uses uTools, uMain; const TCP_TABLE_OWNER_PID_ALL = 5; var getting_data_1: integer; getting_data_2: integer; getting_data_3: integer; getting_data_4: integer; GetExtendedTcpTable:function(pTcpTable: Pointer; dwSize: PDWORD; bOrder: BOOL; lAf: ULONG; TableClass: TCP_TABLE_CLASS; Reserved: ULONG): DWORD; stdcall; { tNetStatTable } constructor tNetstatTable.Create; begin DLLProcPointer := nil; hLibModule := 0; pTcpTable := nil; updating := 0; updating_table := 0; getting_data_1 := 0; getting_data_2 := 0; getting_data_3 := 0; getting_data_4 := 0; try LoadExIpHelperProcedures; except fMain.AddLog('NetStatTable', 'Problem loading IP Library', ltError); raiseLastOSError(); end; end; destructor tNetstatTable.Destroy; begin try UnLoadExIpHelperProcedures; if (pTcpTable <> nil) then FreeMem(pTcpTable); except end; inherited; end; function tNetstatTable.GetPortCount4PID(pid: integer): integer; var i: integer; begin result := 0; if updating = 1 then exit; getting_data_1 := 1; //fMain.updateTimerNetworking(False); for i := 0 to NetStatTable.pTcpTable.dwNumEntries - 1 do if NetStatTable.pTcpTable.table[i].dwOwningPid = Cardinal(pid) then result := result + 1; getting_data_1 := 0; //fMain.updateTimerNetworking(True); end; function tNetstatTable.GetPorts4PID(pid: integer): string; var i: integer; port: string; begin result := ''; if updating = 1 then exit; getting_data_2 := 1; //fMain.updateTimerNetworking(False); for i := 0 to NetStatTable.pTcpTable.dwNumEntries - 1 do begin if NetStatTable.pTcpTable.table[i].dwOwningPid = Cardinal(pid) then begin port := IntToStr(NetStatTable.pTcpTable.table[i].dwLocalPort); if result = '' then result := port else result := result + ', ' + port; end; end; getting_data_2 := 0; //fMain.updateTimerNetworking(True); end; function tNetstatTable.isPortInUse(port: integer): string; var i: integer; path: string; pid: Cardinal; begin result := ''; if updating = 1 then exit; getting_data_3 := 1; //fMain.updateTimerNetworking(False); for i := 0 to NetStatTable.pTcpTable.dwNumEntries - 1 do begin if NetStatTable.pTcpTable.table[i].dwLocalPort = Cardinal(port) then begin pid := NetStatTable.pTcpTable.table[i].dwOwningPid; path := Processes.GetProcessName(pid); if path <> '' then result := path else result := _('unknown program'); getting_data_3 := 0; exit; end; end; getting_data_3 := 0; //fMain.updateTimerNetworking(True); end; function tNetstatTable.isPortInUsePID(port: integer): integer; var i: integer; begin result := -1; if updating = 1 then exit; getting_data_4 := 1; //fMain.updateTimerNetworking(False); for i := 0 to NetStatTable.pTcpTable.dwNumEntries - 1 do begin if NetStatTable.pTcpTable.table[i].dwLocalPort = Cardinal(port) then begin result := NetStatTable.pTcpTable.table[i].dwOwningPid; getting_data_4 := 0; exit; end; end; getting_data_4 := 0; //fMain.updateTimerNetworking(True); end; procedure tNetstatTable.LoadExIpHelperProcedures; begin hLibModule := LoadLibrary('iphlpapi.dll'); //if hLibModule = 0 then // exit; GetExtendedTcpTable := GetProcAddress(hLibModule, 'GetExtendedTcpTable'); //DLLProcPointer := GetProcAddress(hLibModule, 'GetExtendedTcpTable'); //if not Assigned(DLLProcPointer) then //begin // ShowMessage(IntToStr(GetLastError)); //end; end; procedure tNetstatTable.UnLoadExIpHelperProcedures; begin if hLibModule > HINSTANCE_ERROR then FreeLibrary(hLibModule); end; procedure tNetstatTable.UpdateTable; var dwSize: DWORD; Res: DWORD; //GetExtendedTcpTable: TGetExtendedTcpTable; i: integer; try_limit: integer; counter: integer; localPTcpTable: PMIB_TCPTABLE_OWNER_PID; auxPTcpTable: PMIB_TCPTABLE_OWNER_PID; begin if updating = 1 then exit; if ((getting_data_1 = 1) or (getting_data_2 = 1) or (getting_data_3 = 1) or (getting_data_4 = 1)) then exit; if updating_table = 1 then exit; updating := 1; //if (DLLProcPointer = nil) or (hLibModule < HINSTANCE_ERROR) then if (hLibModule < HINSTANCE_ERROR) then begin exit; end; //GetExtendedTcpTable := DLLProcPointer; try try_limit := 10; counter := 0; dwSize := 0; Res := GetExtendedTcpTable(localPTcpTable, @dwSize, False, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0); while ((Res = ERROR_INSUFFICIENT_BUFFER) and (counter < try_limit)) do begin GetMem(localPTcpTable, dwSize); // das API hat die "gewnschte" Grsse gesetzt Res := GetExtendedTcpTable(localPTcpTable, @dwSize, False, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0); inc(counter); end; if (Res = NO_ERROR) then begin for i := 0 to localPTcpTable.dwNumEntries - 1 do begin localPTcpTable.table[i].dwLocalPort := ((localPTcpTable.table[i].dwLocalPort and $FF00) shr 8) or ((localPTcpTable.table[i].dwLocalPort and $00FF) shl 8); localPTcpTable.table[i].dwRemotePort := ((localPTcpTable.table[i].dwRemotePort and $FF00) shr 8) or ((localPTcpTable.table[i].dwRemotePort and $00FF) shl 8); end; auxPTcpTable := pTcpTable; pTcpTable := localPTcpTable; if auxPTcpTable <> nil then begin FreeMem(auxPTcpTable); auxPTcpTable := nil; end; end else if (Res = ERROR_NO_DATA) then begin if pTcpTable <> nil then begin FreeMem(pTcpTable); pTcpTable := nil; end; exit; end else begin fMain.AddLog('NetStatTable', Format('NetStat TCP service stopped. Please restart the control panel. Returned %d',[Res]), ltError); if pTcpTable <> nil then begin FreeMem(pTcpTable); pTcpTable := nil; end; exit; //raiseLastOSError(); // Error-Handling end; finally // If (pTcpTable <> Nil) Then FreeMem(pTcpTable); end; updating := 0; end; initialization NetStatTable := tNetstatTable.Create; finalization NetStatTable.Free; end.