채팅0

    드디어 오토에임 끝

    조회수 77

    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;

    댓글0

      게시글 리스트
      제목작성자작성일조회
      공지10-208928
      978901-2878
      978801-2841
      978701-27149
      978601-2675
      978501-26160
      978401-23255
      978301-22294
      978201-22249
      978101-21283
      978001-21136
      977901-19219
      977801-17320
      977701-15267
      977601-141078
      977501-13546
      977401-1394
      977301-10157
      977201-10597
      977101-05208
      안내 배너 이미지