VMT <- 얜 IL2CPP이라 해당사항 없고
Inline <- .text 무결성에서 걸리고
VEH(Page_Guard) <- NGS가 VEH도 검사함? 얘도 보안팅
SEH/VEH(Access_Violation) <- not working
남은 건 EPT hook <- 하이퍼바이저 구현해야하는데 AMD cpu가 없어서 SVM은 못쓰고 지금 인텔와서 gbhv보고 하기는 너무 귀찮음
NGS CRC 검증 자체를 조져야 할 것 같은데 얘네 메모리 region 체크할 때 ntqueryvirtualmemory 안쓰냐?
디버거 붙여서 winapi로 콜스택 보고 올라갈라하는데 ntqueryvirtualmemory쓰는 애가 없네
그리고 메랜 자체 프로세스 CRC 검사는 blackCipher에서 이뤄지냐 아니면 blackClient <- 얘가 하냐?
잘 알고있는 사람은 답변해주면 좋겠음 지금 어셈 단에서 해보려고 하는데 자꾸 후킹만 걸면 팅나서 짜증나서 crc부터 조져야겠음
| 제목 | 작성자 | 작성일 | 조회 | |
|---|---|---|---|---|
| 19055 | 듀프 삽니다+1 | 01-27 | 177 | |
| 19054 | 01-27 | 324 | ||
| 19053 | 01-27 | 384 | ||
| 19052 | 01-27 | 234 | ||
| 19051 | 01-27 | 161 | ||
| 19050 | 01-27 | 137 | ||
| 19049 | 올려주세요..+2 | 01-27 | 161 | |
| 19048 | 힌트좀 줍쇼+6 | 01-27 | 692 | |
| 19047 | 01-27 | 468 | ||
| 19046 | 휴 드디어 듀프 뚫엇다+12 | 01-27 | 681 | |
| 19045 | 01-27 | 273 | ||
| 19044 | 01-27 | 2914 | ||
| 19043 | 01-27 | 292 | ||
| 19042 | 01-27 | 598 | ||
| 19041 | 01-27 | 287 | ||
| 19040 | 01-27 | 567 | ||
| 19039 | 01-27 | 403 | ||
| 19038 | 01-27 | 292 | ||
| 19037 | 01-27 | 635 | ||
| 19036 | 01-27 | 581 |
댓글38
veh seh 감지아니고
vmt 후킹으로도 충분히 할거 다 할수 있음
Crc 검산 blackcipher 말고도
msw.exe 내에 모듈 뭔지는 기억안나는데 거기서도 함
말이 안됨. 민훅부터 vmt veh 다 해봤는데 후킹만 걸면 보안팅남
AllocConsole 인젝 방법 등등 다 커널에서 해서 아무 상관 없고 후킹 이슈인데
내가 타겟으로 하는 dll은 GameAssembly.dll 함수고 ㅇㅇ..
Crc 검산 자체를 조지는건(그냥 ngs가 하트비트만 보내게 하도록)
외국인들은 옛날에 CreateSnapshot에 sleep 걸어놨다고 그랬는데 지금은 안되는 것 같고
그래서 어쨋든 .text섹션만 확인하려면 NtQueryregion 같은거로 RW WX RWX 이런 섹션만 찾아서 ITERATION 해야하니까
당연히 쓰는줄 알았는데
vmt는 내가 시도해봤는데 xlua에서 vtable 참조해서 호출 안하고 바로 다이렉트 콜 때림
왠진 모르겠음
ㅁㄹ 내가 했을때는 veh page guard 로 crc 우회했었음 지금은 crc 패치안하고
Vmt 후킹하는데 잘찾아보셈 님이 못찾는거임
그리고 내가 아는 옵치 때 he4rtbleed 맞음?
vtable 검사 안함
Xlua에서 파싱되갖고 들어가는 JIT 개념함수라서 Vtable사용을 안하는 것 같던데
GameAssembly에서 xlua_loadbuffer 호출하는부분 잘보셈
내가 지금 새벽 운동 나와서 컴이 아닌데 xlua_loadbuffer 호출하는 부분은 그냥 dll에서 함수 주소 resolve한다음 호출하는 루틴밖에 없었을텐데 내가 잘못 기억하고 있는건가? 근데 지금 vtable은 다 떠나서 내가 타깃으로 하는 함수를 브포를 걸어보면 백트레이스에 단 하나도 vtable에서 참조해서 call하는 루틴이 없어서 vtable의 포인터를 swap해도 아무런 효과가 없엄
내가 지금 swap해서 쓰는데
GameAssembly ScriptedManaged된 함수 중에 걸어서 쓰는거??
ept가기전에 pte도 있음 하이퍼바이저도 필요 없고
PTE는 poolalloc해서 pte 순회하면서 supervisor flag 바꿔줘갖고 유저모드에서 커널 모드 메모리 접근 가능하게
해줄 때 지금 쓰고 있고(PerfectInjector꺼 좀 빌려서) 근데 내가 필요한건 코드의 흐름을 바꾸고 싶은건데 PTE에서 어떻게 해야 코드 흐름을 바꿀 수 있음..? EPT야 vmexit으로 control flow 바꾼다해도 pte는 모르겠는데
pte에 nx 플래그 바꾸고 게이 공간으로 점프
value가 번지 점프였나 그럴꺼임
그니까 그건 그냥 dll 위한 메모리 할당이고 지금 그건 당연히 다 하고 게임 내 .text부분 함수를 후킹할라 하는데 바이트 패치가 되갖고 Veh를 썼는데 veh도 잡힌다는 말임 ㅇㅇ
뭐 게이 veh 쓸때 dr 플래그 바꿔서 쓰는거 아님?
pte는 물리주소에 건다고 생각하셈
아 지금 네 말은 하꼬마냥 유저모드에서 타겟으로 하는 함수 주소에 virtualProtect써서 page guard Dr 플래그 set 하지말고 VA->PA 한 후에 그.PA에 해당하는 PTE를 찾아서 NX를 조지라는거지? 아이디어는 알겠는데 내가 윈도우 인커널즈 읽을 때만해도 PTE최소 사이즈가 4KB라고 들었는데 이러면 한 함수만 조지는게 아니라 동일 메모리 영역 다 가는거 아니냐
맞음 ㅇㅇ
쉬벌 그러면 내가 원하는 함수 말고도 다른 영역 침범해서 걸면 다른 곳에서 예외 발생하먼 그건 어떡함 RIP 확인해서 영역 보고 Passthru할지 말지 정하는겨?
nx 돌려주고 다음 코드로 번지
OK 좋은 아이디어 감사하다
좋은 밤 되길 바라
뭔 유저모드선에서 해결못해서 ept까지가냨ㅋㅋㅋㅋㅋㅋ 코미디가 따로없네
EAC BE 유저라서 로우레벨이.더 편하다 미안하다
그럼 그냥 기존대로 올려쓰면되지 왜 굳이 이고생을 ?
NGS가 처음이라 버벅대는 중
원래 SVM으로 NPT 후킹해서 다 썼는데 이번에 13900이 너무 쌔끈해서 들여오니 하이퍼바이저를 다시 만들어야하게 생겼어
이기야 너가 못찾는 이유를 알려주겠다.
ntqueryvirtualmemory의 옵코드를 스캔하면 ntqueryvirtualmemory의 복사본이 여러개 로드되어 있을 것이다. 그것을 직접 함수포인터로 만들어서 호출을 하기때문에 ntdll의 ntqueryvirtualmemory에 브레이크포인트를 걸어도 찍힐일이 없다는것이지.
추신: 확인해본적X 뇌내망상임
WinApi 함수를 복사해서 쓰면 Copy On Write는 왜 만들었냐 임마
이기야.. 너를 실험해보려고 한 말이었는데 딱 걸려들었노?? 실제로 블랙싸이퍼는 nt 함수 복사해서 쓰고(2년전 확인) 나도 nt 함수 복사해서 함수포인터로 만들어 사용한다 이기야 아직멀었노?? Copy On Write같은 소리 하지말고 더 공부하고 와라
함수 자체를 복사해서 쓰는게 아니라 GetProcBase같은거로 Export된 함수 주소를 가져와 쓰는거겠지..
nt함수도 내부적으로 ntoskrnl로 들어가는데 그걸 복사한다는건 ReactOs 소스코드 보고 직접 구현했다는 소리밖에 안되는데
이기게이가 언노운치트 안티치트 바이패스 게시글 보고 뽕이차서 머가리가 돌아버렷노?? 그냥 유저모드에서 rax에 nt 함수 번호 적고 syscall 하는 옵코드 쓰면 된다 게이야;;;;; 물론 블랙싸이퍼는 ntdll 이름 바꿔서 로드 한번 더해서 그냥 갖다 쓴다 이기야 (2년전 확인)
아아 나는 함수를 복사한다길래 구현까지 복사한다고 생각했지 너무 날 서게 얘기한 것 같다 미안미안
오늘 내내 이거랑 씨름해서 좀 예민했나봐
ㄴ ntdll 복사본 tmp 모듈에 브포거셈 그렇게 잘못된 정보 알려준것도 아닌데 혼자 왜이리 부정적으로 대하노
tmpxx
영웅아 오랜만이다
임영웅?
영웅아 모르는 척 하지마라 너의 영어로 된 용어 떡칠한 말투와 남이 친절하게 알려줘도 틀에 박힌 생각으로 본인의 생각만 말하는 tmi력까지 난 다 기억한다.. 다른 사진 다 올리기 전에 1:1 걸어줘♥
진짜 거짓말이 아니라 진짜 모릅니다 ㅋㅋㅋ 1대1은 걸어볼게요
아임쏘리 게이야 . . .