
: 리버스 엔지니어링의 심리전
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)의 개념 증명입니다.