채팅0

    드디어 오토에임 끝

    조회수 371

    https://streamable.com/lg000v

     

     

    가오좀 살릴려고 폼 없애고 콘솔로 했습니다.

    웹통신도 감지하는거같아서 다 빼고 핫키로 했어요.

     

    쓰레드하이재킹 + 매뉴얼매핑 + dll 기록 제거 요 밑에 소스 첨부해드립니다.

     

    function GetPebAddress: Pointer;
    var
     hNtDll: THandle;
     NtQueryInfo: function(ProcessHandle: THandle; ProcessInfoClass: Integer;
                  ProcessInfo: Pointer; ProcessInfoLen: ULONG; RetLen: PULONG): LongInt; stdcall;
     pbi: record
       ExitStatus: LongInt;
       PebBaseAddress: Pointer;
       others: array[0..3] of NativeUInt;
     end;
     ReturnLength: ULONG;
    begin
     Result := nil;
     hNtDll := GetModuleHandle('ntdll.dll');
     @NtQueryInfo := GetProcAddress(hNtDll, 'NtQueryInformationProcess');
     if Assigned(NtQueryInfo) then
     begin
       if NtQueryInfo(GetCurrentProcess, 0, @pbi, SizeOf(pbi), @ReturnLength) = 0 then
         Result := pbi.PebBaseAddress;
     end;
    end;

    procedure EraseDllFromSystem(const DllName: string);
    var
     Peb, Ldr: Pointer;
     Head, Curr: PListEntry;
     Entry: PLdrDataTableEntry;
     ModuleBase: NativeUInt;
     OldProtect: DWORD;
    begin
     ModuleBase := GetModuleHandle(PChar(DllName));
     if ModuleBase = 0 then Exit;

     Peb := GetPebAddress;
     if Peb = nil then Exit;

     Ldr := PPointer(NativeInt(Peb) + $18)^;
     Head := PListEntry(NativeInt(Ldr) + $10);
     Curr := Head^.Flink;

     while Curr <> Head do
     begin
       Entry := PLdrDataTableEntry(Curr);
       if (Entry^.BaseDllName.Buffer <> nil) and
          SameText(Entry^.BaseDllName.Buffer, DllName) then
       begin

         Curr^.Blink^.Flink := Curr^.Flink;
         Curr^.Flink^.Blink := Curr^.Blink;

         Entry^.InMemoryOrderLinks.Blink^.Flink := Entry^.InMemoryOrderLinks.Flink;
         Entry^.InMemoryOrderLinks.Flink^.Blink := Entry^.InMemoryOrderLinks.Blink;

         Break;
       end;
       Curr := Curr^.Flink;
     end;

     if VirtualProtect(Pointer(ModuleBase), 4096, PAGE_EXECUTE_READWRITE, @OldProtect) then
     begin
       FillChar(Pointer(ModuleBase)^, 4096, 0);
       VirtualProtect(Pointer(ModuleBase), 4096, OldProtect, @OldProtect);
     end;
    end;

    댓글1

    회원프로필

    멋있네요 진짜.. 저는 구해서 쓰는 것 밖에 못하는데 직접 개발하시는건 리스펙합니다

    2026.01.29 16:05

      게시글 리스트
      제목작성자작성일조회
      977901-19267
      977801-17382
      977701-15299
      977601-141263
      977501-13621
      977401-13113
      977301-10180
      977201-10657
      977101-05226
      977001-05128
      976901-04451
      976801-04354
      976701-02254
      976612-30174
      976512-29444
      976412-17244
      976312-15685
      976212-15284
      976112-15679
      976012-14363
      안내 배너 이미지