문제 관련 질문입니다!

안녕하세요 리버싱을 공부하고 있는 뉴비입니다. 다양한 방법으로 문제를 접근해보았는데 막혀서 질문드려봅니다. 저는 꾸준히 공부하고 있지만 아직까지는 rev-basic 류 문제들을 Ollydbg, x64dbg등의 동적 분석 디버거로 해결을 할 수 있는 정도의 수준입니다. 문제를 계속 분석하다 보니 이 정도까지는 접근하게 되었습니다.

=>ELF 분석을 하기위해서는 리눅스 환경에서 디버깅을 해야하는데 Ollydbg, x64dbg를 이용할 수는 없으므로, 저는 기드라라는 정적 분석 도구를 이용해 코드를 분석했습니다. 며칠씩 코드 보면서 분석하다 보니까 문제에서 어떠한 암호화 해시 알고리즘을 이용하는지와 프로그램의 큰 흐름은 파악하였습니다! 그런데 저의 정적분석 능력으로는 더 이상 세부 코드 분석이 안되어 진행이 안되네요... ㅠㅠ 암호화 해시 함수는 단방향이여서 대상 문자를 안다고 해도 역으로 input을 산출해 내는 것은 불가능하다고 생각하는데 제가 놓친 부분이 무엇일까요?

문제와 별개로 일반적으로 elf 파일 디버깅할 때 추천하시는 좋은 방법이 있을까요? 좀 찾아보니 IDA의 remote debugging 기능을 많이들 이용하시던데 무료 버전에서는 지원안하는 기능인 것 같아서 기드라를 이용하고 있는데 동적 분석 하기가 까다롭네요...!

#reversing
작성자 정보
답변 1
avatar
meu
대표 업적 없음

ELF 분석 환경 구성

말씀하신 대로 ELF를 분석하는 환경을 위해서는 Linux 환경 아래에서 실행한 뒤 분석해야 합니다. VMWare, Virtualbox를 통해 Ubuntu와 같은 Linux 환경을 구축하시거나, WSL을 이용해 Windows 아래에서 쉽게 Linux 환경을 구축하실 수 있습니다.

문제 접근 방식

암호화 해시 함수는 단방향이 맞습니다. 하나의 원문은 하나의 Hash에 1:1로 대응합니다만 hash된 값 자체가 무차별 대입 등으로 인해 사전에 이미 원문을 알고 있는 경우가 있을 수 있습니다. Rainbow table 에 자세한 정보가 있으니 참고해보세요!

2021.01.11. 10:55
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기