본문 바로가기

[backdoor] 2013-bin-50 (50p) 첫 화면이다. binary 분석 문제이며, 인증키는 MD5 해시값의 SHA256 해시값이다. 32bit 버전을 받은 후, IDA로 분석했다. main 함수 prolog 및 첫 부분이다. 위의 jle문(argc 비교문)에서 분기되는 실패 메시지이다. 실패 메시지는 붉게 처리하겠다. argc가 1보다 클 경우 이러한 루틴을 거치고 바로 밑에 cout 문이 많이 나오는데, 별 의미는 없어 보여서 그냥 낚시용 코드로 간주했다. 그 다음 루틴인데, byte 단위로 무언가를 넣고 strcmpr 함수로 비교한다. ASCII 범위 숫자일 경우, 단축키 R을 누르면 다음과 같이 그에 해당하는 글자로 변환해준다. strcmpr 함수의 결과로 성공, 실패 분기가 이뤄지는데, 역시 실패 메시지는 붉게 물들였다. 성공 시 fl.. 더보기
[CodeEngn Challenges] Cryptology 02 대치 암호(substitution cipher) 문제이다. 암호 테이블을 세어 보면 26자이다. 알파벳과 대응될 가능성이 있다. 이를 전제로, 문제에서 준 단서를 표로 정리해보면 다음과 같다. 암호 테이블에서 아직 알려지지 않은 글자는 e, h, o, r, s, t이며, 정상 테이블에서는 e, f, p, s, t, y가 정해져 있지 않다. 이에 대한 대응 관계를 추론해야 한다. 주어진 암호문을 이 표를 토대로 치환해보면, yefpsqfgt -----------> ?????c?d? 정해지지 않은 알파벳으로 구성할 수 있는 조합 중, f, t를 각각 o, e라고 하면 qfgt -----------> code 로 변환할 수 있다. 테이블을 다시 그려보면, 이렇게 추가된다. 남은 h, r, s, t에 대해, 가.. 더보기