채팅0

    드디어 오토에임 끝

    조회수 255

    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

      게시글 리스트
      제목작성자작성일조회
      공지10-208936
      979613:593
      979513:593
      979401-3178
      979301-30108
      979201-30132
      979101-30129
      979001-2998
      978901-28256
      978801-2863
      978701-27226
      978601-26108
      978501-26214
      978401-23311
      978301-22350
      978201-22288
      978101-21324
      978001-21150
      977901-19246
      977801-17351
      안내 배너 이미지