DelPhi 2020. 4. 12. 13:29

< 델파이 단축키 모음 >

[찾기]

Ctrl + F Find

Ctrl + R Find and Replace

F3 Search Again

[화면이동]

F11 View Object Inspector

F12 Toggle Form/Unit

Alt + 0 View Window List

Ctrl + F12 View Unit

Shift + F12 View Form

Ctrl + PgUp/PgDown CodeEditor에서 현재페이지의 첫줄(PgUp), 마지막줄(PgDown)로 이동

[컴파일/실행]

Ctrl + F9 Compile

F9 Run

F7 Trace Into

F8 Trace Over

F5 Set Breakpoint

Ctrl + F5 Add Watch

Ctrl + F7 Evaluate/Modify

[블록관련]

Ctrl + Shift + U Unindent

Ctrl + Shift + I Indent

Ctrl + O, C Column Block Mode (또는 Alt키를 누른상태에서 Mouse를 드래그 해

도 컬럼블럭 설정이 가능, Shift + Alt + Arrow Key 를 사용해도 컬

럼블럭 설정)

Ctrl + O, K Line Block Mode

[키 매크로]

Ctrl + Shift + R Record

* 키매크로 작성순서 : <Ctrl+Shift+R> -> <원하는키> -> <Ctrl+Shift+R>

Ctrl + Shift + P Play

[Object Inpector]

Ctrl + Down Object Inpector 상단의 Object List ComboBox 열기

이 상태에서 Component Name을 키보드로 치면 Incremental Search 기

능Tab Property 와 Property Value 부분을 전환가능하며,

Property 쪽에 Cursor 가 위치한 상태에서 키보드를 치면

Incremental Search

[Code Insight]

Ctrl + Space Code Completion 기능

Ctrl + J Code Template 기능

Ctrl + Shift + Up/Down Object 의 Member function/procedure 의 선언부와 구현부를

이동

Ctrl + Shift + C Object 의 Member function/procedure 의 선언부와 구현부중

의 한가지를 코딩 한후 누르게 되면 나머지 선언부 또는 구

현부를 완성시켜줌

[기타]

Alt + F10 현재 위치에서 Popup-Menu 띄우기

Ctrl + Enter Code Editor 에서 현재위치의 단어로 File Open을 시도(기본 확장자

는 .pas) 하고 현재 Path 에서 그 파일을 찾지 못하면 File Open

Dialog를 띄움.

Alt + { or } Find Matching Brace( ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘, ‘]’ 

 

posted by 핵커 커뮤니티
:
DelPhi 2020. 4. 12. 13:28

type

TArrayScan = record

ScanArray: STring;

Start: DWORD;

Finish: DWORD;

end;

Function GetMask(Array_of_bytes: String): String;

var

x, y: integer;

St: string;

Mask: string;

begin

St := StringReplace(Array_of_bytes, ' ', '', [rfReplaceAll]);

y := 1;

for x := 1 to (Length(St) div 2) do

begin

if (St[y] + St[y + 1]) <> '??' then

begin

Mask := Mask + 'O';

y := y + 2;

end else

begin

Mask := Mask + 'X';

y := y + 2;

end;

end;

Result := Mask;

end;

Procedure StringToArrayByte(Str: string; var Buffer: array of byte);

var

x, y, z: integer;

St: string;

begin

St := StringReplace(Str, ' ', '', [rfReplaceAll]);

y := 1;

for x := 0 to Length(St) div 2 - 1 do

begin

if St[y] + St[y + 1] <> '??' then

begin

Buffer[x] := StrToInt('$' + St[y] + St[y + 1]);

y := y + 2;

end else

begin

Buffer[x] := $00;

y := y + 2;

end;

end;

end;

Function CompareArray(DestAddress:DWORD ;CONST Dest: Array of byte; Source: array of byte;

ALength: integer; Mask: String; var ReTurn : TStringList) : Boolean;

var

x, y: integer;

a, b, c: integer;

begin

for x := 0 to Length(Dest) - Length(Source) do

begin

a:=0;

for y := 0 to Length(Source) - 1 do

begin

if (Dest[x + y] = Source[y]) or (Mask[Y+1] = 'X') then

begin

if y = (Length(Source) - 1) then

begin

Return.Add(IntToHex(DestAddress+x,8));

end;

end else

begin

Break;

end;

end;

end;

Result := True;

end;

Function ArrayScan(Struct: TArrayScan): TStringList;

var

ArrayStruct: TArrayScan;

mbi: Memory_Basic_Information;

StartAdr: DWORD;

FinishAdr: DWORD;

Mask: string;

Str : STring;

Buffer: array of byte;

ScanBuffer: array of byte;

data : COPYDATASTRUCT;

reTurn: TStringList;

begin

//

Str := StringReplace(Struct.ScanArray,' ','',[rfReplaceAll]);

StartAdr := Struct.Start;

FinishAdr := Struct.Finish;

Mask := GetMask(Str);

SetLength(ScanBuffer, Length(Str) div 2);

StringToArrayByte(Str, ScanBuffer);

reTurn := TStringList.Create;

while StartAdr <= FinishAdr - $10 do

begin

VirtualQueryEx(HandleWindow, PDWORD(StartAdr), mbi, sizeof(mbi));

if ((Mbi.RegionSize > 0) and

((Mbi.Type_9 = MEM_PRIVATE) or (Mbi.Type_9 = MEM_IMAGE)) and

(Mbi.State = MEM_COMMIT) and

((Mbi.Protect = PAGE_READONLY) or

(Mbi.Protect = PAGE_READWRITE) or

(Mbi.Protect = PAGE_WRITECOPY) or

(Mbi.Protect = PAGE_EXECUTE) or

(Mbi.Protect = PAGE_EXECUTE_READ) or

(Mbi.Protect = PAGE_EXECUTE_READWRITE) or

(Mbi.Protect = PAGE_EXECUTE_WRITECOPY) )) then

begin

SetLength(Buffer, 0);

SetLength(Buffer, mbi.RegionSize);

ReadProcessMemory(HandleWindow, mbi.BaseAddress, @Buffer[0],mbi.RegionSize, buf);

CompareArray(DWORD(mbi.BaseAddress),Buffer,ScanBuffer,Length(ScanBuffer),Mask,reTurn);

StartAdr := DWORD(MBI.BaseAddress) + MBI.RegionSize;

end else

begin

StartAdr := DWORD(MBI.BaseAddress) + MBI.RegionSize;

end;

end;

data.dwData := 4;

data.cbData := SizeOf(reTurn);

data.lpData := @reTurn;

Result := reTurn;

end;

posted by 핵커 커뮤니티
:
DelPhi 2020. 4. 11. 13:54

uses Windows;var BytesWritten: cardinal; PID, Process, Thread, ThreadId, hKernel: dword;pLoadLibrary, Paramaters: pointer; DLL: AnsiString; begin DLL := 'C:\test.dll'; // Must be full path name. PID := 3160; Process := OpenProcess(PROCESS_ALL_ACCESS, False, PID);Paramaters := VirtualAllocEx(Process, nil, Length(DLL), MEM_COMMIT,PAGE_EXECUTE_READWRITE); WriteProcessMemory(Process, Paramaters, PAnsiChar(DLL),Length(DLL), BytesWritten); hKernel := GetModuleHandle('KERNEL32.DLL'); pLoadLibrary := GetProcAddress(hKernel, 'LoadLibraryA'); Thread := CreateRemoteThread(Process, nil, 0,pLoadLibrary, Paramaters, 0, ThreadId); WaitForSingleObject(Thread, INFINITE);VirtualFreeEx(Process, Paramaters, 0, MEM_RELEASE); CloseHandle(Thread);CloseHandle(Process);end.

My DLL code is simple like this:

uses SysUtils, Classes, Windows;{$R *.res}procedure EntryPoint(Reason: dword); stdcall;begin if Reason = DLL_PROCESS_ATTACH then begin MessageBox(0, 'DLL Injected', 'DLL Injected', 0); end;end;begin DLLProc:= @EntryPoint; EntryPoint(DLL_PROCESS_ATTACH);end.>

 

@ALL 중요포인트! < OK !​ 

posted by 핵커 커뮤니티
:
DelPhi 2020. 4. 11. 13:50

Delphi.7.Second.Edition.v7.2.vol1.egg
10.00MB
Delphi.7.Second.Edition.v7.2.vol2.egg
10.00MB
Delphi.7.Second.Edition.v7.2.vol3.egg
10.00MB
Delphi.7.Second.Edition.v7.2.vol4.egg
10.00MB
Delphi.7.Second.Edition.v7.2.vol5.egg
2.05MB

posted by 핵커 커뮤니티
: