ELF를 다뤘던 것과 비슷하게, 윈도우 실행 파일(PE, Portable Executable) 리버싱을 시작하려면 이 포맷 구조부터 이해해야 한다. exe, dll, sys 전부 이 포맷을 쓴다. …
2026-07-20 03:10:34 · 조회 2안티 디버깅·패킹 글에서 실행을 방해하는 기법들을 다뤘는데, 코드 자체를 읽기 어렵게 비트는 난독화(Obfuscation)는 또 다른 층위의 방해 기법이다. 그중 가장 흔하고 강력한 게 Contro…
2026-07-20 03:10:34 · 조회 2Frida는 실행 중인 프로세스에 JavaScript 코드를 주입해서, 함수 호출을 가로채고(hook) 인자·리턴값을 실시간으로 보거나 바꿀 수 있게 해주는 동적 계측(Dynamic Instrume…
2026-07-19 19:34:18 · 조회 3안드로이드 앱은 자바/코틀린으로 작성되어 바이트코드(DEX)로 컴파일되기 때문에, 네이티브 바이너리보다 디컴파일 결과가 원본 소스에 훨씬 가깝게 나온다. 그래서 입문 난이도가 상대적으로 낮은 편이다…
2026-07-19 19:34:18 · 조회 2iOS는 안드로이드보다 분석 진입 장벽이 조금 더 높다. 앱스토어 배포 바이너리는 애플의 FairPlay DRM으로 암호화되어 있고, 탈옥(Jailbreak)되지 않은 정상 기기에서는 Frida 같…
2026-07-19 19:34:18 · 조회 2크랙미(Crackme)는 리버싱 연습을 위해 일부러 만들어진 프로그램이다. 보통 "정답을 입력하면 성공 메시지를 보여준다"는 단순한 목표를 갖고 있고, 실제 소프트웨어의 라이선스 체크 로직을 축약해…
2026-07-19 19:34:18 · 조회 2리버싱(리버스 엔지니어링)은 소스 코드 없이 컴파일된 바이너리(또는 앱)의 동작을 이해하는 작업이다. 악성코드 분석, 취약점 연구, 라이선스 검증 우회, 프로토콜 분석 등 목적은 다양하지만 시작점은…
2026-07-19 19:32:50 · 조회 2디컴파일러가 있어도 결국 중요한 분기나 이상하게 최적화된 부분은 어셈블리를 직접 읽어야 확실해진다. 이 글은 리버싱에서 실제로 가장 자주 마주치는 x8664 명령어 패턴 위주로 정리한다 — 명령어 …
2026-07-19 19:32:50 · 조회 2정적 분석만으로는 "이 변수가 실제로 어떤 값을 갖는지", "이 분기가 실제로 어느 쪽으로 가는지"를 확신하기 어려울 때가 많다. 디버거로 실제 실행시키면서 관찰하면 훨씬 빠르게 답이 나온다. 플랫…
2026-07-19 19:32:50 · 조회 2분석당하기 싫은 프로그램(악성코드, 상용 소프트웨어의 라이선스 체크 로직, 게임 치트 방지 등)은 디버거가 붙어있는지 스스로 감지하거나, 분석을 어렵게 만드는 장치를 넣어둔다. 이 글은 자주 나오는…
2026-07-19 19:32:50 · 조회 2