
리버스 엔지니어링에서의 심리전
: 리버스 엔지니어링의 심리전
github.com/xoreaxeaxeax/repsych // domas // @xoreaxeaxeax
REpsych 도구 세트는 프로그램의 제어 흐름 그래프(CFG)를 통해 이미지를 생성하는 것을 보여주는 개념 증명입니다.
| 일반적인 함수의 CFG | REpsych가 생성한 CFG |
|---|---|
![]() | ![]() |
이 프로젝트에는 특별한 목적은 없지만(가능하다는 것을 보여주는 것 외에는), 가능한(진지하지 않은) 응용 분야는 DEF CON 프레젠테이션에 설명되어 있습니다.
이 프로그램은 테스트된 모든 버전의 IDA Pro 리버스 엔지니어링 도구에서 안정적으로 작동하며, 다른 CFG 뷰어(Hopper, BinNavi, radare2 등)에서는 부분적으로 안정적으로 작동합니다.
이 도구 세트는 소스 이미지를 실제 동작하는 프로그램으로 변환하여, 프로그램의 제어 흐름 그래프가 소스 이미지를 생성하도록 합니다.
이미지에서 새 프로그램을 생성하려면:
두 개의 동작하는 프로그램(repsych_v1 및 repsych_v2)이 생성됩니다. 각각은 CFG 렌더러가 CFG 노드를 올바르게 배치하도록 하는 서로 다른 전략을 사용합니다.
이 도구는 소스 이미지의 각 픽셀에 대해 기본 블록(CFG 노드)을 생성합니다. 따라서 작은 소스 이미지(100x100 이하)를 사용하는 것이 좋으며, CFG 뷰어에서 허용되는 노드 수를 늘려야 할 수도 있습니다.
도구에 텍스트 이미지를 입력으로 사용하는 경우, 먼저 이미지를 2 BPP 흑백 비트맵으로 변환한 다음 24 BPP 비트맵으로 변환하세요. 그러면 흑백이 아닌 색상이 제거되어 제어 흐름 그래프에서 가장 좋은 결과를 얻을 수 있습니다.





이 기법에 대한 자세한 내용은 DEF CON 프레젠테이션에 설명되어 있습니다.
프레젠테이션 슬라이드는 여기에서 제공됩니다.
REpsych는 Christopher Domas(@xoreaxeaxeax)의 개념 증명입니다.