목록2019/01 (15)
OutDoorFrog의 리버싱 이야기
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
오늘은 게싱 능력 상승을 위해 Codegate 2018 예선에 출제되었던 easy_serial 문제를 풀어볼 것입니다. 그럼 문제를 풀면서 행복 회로를 활활 태워보러 갑시다! 실행 환경 결정 Detect It Easy를 이용해서 한 번 확인해봅시다. Elf64인 것을 확인할 수 있습니다. 돌려봅시다. 반응이 영 좋지 못하군요. IDA로 돌려봅시다. hs_main이라 main에서 또 main 호출하는 패턴이면 c 말고 다른 언어일 확률이 높습니다. shutdownHaskellAndExit... Haskell을 한 번 구글에 검색해봅시다. 네 함수형 프로그래밍 언어라는 점과 컴파일 과정을 나타내주는 사진을 구할 수 있었습니다. 복잡하긴 합니다만.. 요약하면 하스켈이라는 언어에서 C로 탈바꿈해서 나온거네요. ..
오늘은 z3에 적응하기 위해서 2018 Codegate 예선전 문제로 나온 Redvelvet을 풀어보겠습니다. 일단 DIE에 던져줍시다. 우분투 x64 환경에서 한 번 돌려봅시다. 프로그램이.. 죽어버렸네요. IDA로 살펴보면 27의 길이의 문자열을 입력받은 후 15개의 함수를 거쳐서 값을 검증한 후 SHA256 해시 함수로 암호화하여 바이너리에 하드코딩되어 있는 긴 문자열과 비교하고 있습니다. 이름을 지어주자. 이대로 계속 작업을 하다간 멘탈폭사를 겪을 수 있습니다. 네이밍을 해줍시다. 혹시 모르는 함수가 있다면 제가 참조글 링크를 해놨으니 한 번 보시는 것을 추천드립니다. OpenSSL 라이브러리 홈페이지에서 설명한 SHA*_* 함수 ptrace 함수 설명 흐름이 이제 보이는 것 같습니다. NULL을..