Obsidium 관련 정리 어떻게 하다보니 Obsidium이라는 Protector를 접했다. 처음에는 디버거 조차 붙지 않아서 몇 번의 삽질 끝에 '일단' 디버거는 붙이는 방법을 기재한다. (1) 안티 디버깅 우회0. x64dbg 및 ScyllaHide 플러그인 설치 (혹은 커널 레벨에서의 안티 디버깅 관련 API를 우회하고 싶으면 TitanHide 이용) ScyllaHide : https://github.com/x64dbg/ScyllaHide/releases1. Single Step, Breakpoint, Access Violation, illegal instruction, Divide by zero 예외 무시 처리2. ScyllaHide 옵션을 Obsidium 옵션으로 설정3. Shift + F9로 예외 무시 실행 디버거의 로.. 더보기 VMProtect로 난독화 된 악성코드 분석에 대한 예시 해당 악성코드는 system32 폴더에 악성 DLL을 생성한 후에 winlogon 프로세스에 Injection을 한다.원본 코드는 다음과 같다. 내가 개발한 API 난독화 해제 모듈을 이용하면 다음과 같다. 정상적으로 API 호출이 보이고 파라미터들도 잘 보인다. 하지만 몇 가지 버그가 있어서 함수 Call을 제대로 잡지 못한다. 현재는 수정을 한 상태이다. 더보기 PinTool 을 이용한 API Call 추적 및 API 난독화 패턴 테스트 대상은 성공이라는 메시지를 띄우는 간단한 프로그램이다. 다음은 Themida 로 패킹한 바이너리를 Trace한 결과이다. Themida로 패킹된 바이너리에서의 MessgeBox 함수 호출 난독화 여기서 이상한 점이 있다. Call MessageBoxA(W)가 아닌 좀 더 하위 레벨의 API인 MessageBoxTimeoutA 함수가 호출되었다는 점이다.여기서 도출할 수 있는 점은 MessageBoxA(W) 함수의 코드를 Themida 로 패킹 시에 별도의 공간에 복사한 후 call이 아닌 ret 또는 jmp를 이용해서 MessageTimeoutA 함수로 점프한다는 점이다. 이번에는 VMProtect 3.0.9 버전으로 패킹된 바이너리를 Trace한 결과이다. VMProtect로 패킹된 바이너리에서.. 더보기 이전 1 2 3 4 5 다음