Preface

누군가가 말했다.

“역공학을 하기 위해선 정공학을 해야 한다.”

그렇다. 리버싱 워게임을 풀다 보면 알고리즘적 요소들이 즐비해 있다는 것을 느낄 때가 참 많다.

알고리즘은 CTF에서 역산을 할 때라든지 아니면 특정 알고리즘을 사용해 짜인 코드를 분석할 때라든지 다양하게 이용된다.

익스코드 짜는 속도가 알고리즘 실력에 비례한다. 이렇게 되면 분석이 적고 구현이 어려운 문제에선 알고리즘을 배운 사람이 절대적으로 유리하다. 속도가 생명인 CTF에서 익스코드 짜는 속도는 아주 중요하다.

리버싱을 잘 하기 위해선 백준 플레는 달아야하지 않을까 싶다. ChatGPT가 다 풀어주는 세상이긴 하지만 알면서 쓰는 것과 모르고 쓰는 것의 차이는 크다.

따라서, 알고리즘을 공부할 필요가 있다 생각한다. 웹 해킹이 웹 개발을 팔요로 하는 것처럼 말이다.

Algorithms for Reversing

boj

solved.ac

Implementation

DP(Dynamic Programming)

BFS/DFS

Brute Force