우선 크랙은 성공했다. 정확히 프로그램을 분석도 했지만 운이 좋게도 치환암호 였고 계속 디버깅을 하다보니 같은자리를 여러번 도는 루프문에 BP를 걸었던것도 이를 통해서 암호화 되는 길이를 알아낸것 그리고 마지막에 16진수 변환에서 FORMATE 함수를 찾은것이 운이 좋았다.
책의 내용도 크게 다른것은 없었다.
오히려 마지막에 Q&A 가 나에게 큰의미를 줬다.
1. 리버싱에는 정석은 없다.
책에서는 숫자에 64를 더하고 문자로 치환을 하는데 나 같은 경우는 아스키에 100을 더하고 헥스로 치환을 했다.
결과적으로 맞고 이과정에서 16진수와 10진수 변환을 여러차례 시도해보았기 때문에 틀린답은 아니다.
책에는 정답이 적혀 있지 않다. 이런 해결책이 적혀 있고 나의 해결책을 찾아서 글로 나타내는 것이 더 의미가 있다고 생각을 했다....(고등학교 수학은 풀이도 외워야한다... 특히 서술형...)ㅅㅂ
2. TEST AX,AX
그냥 AX가 0이 맞는지 구분하는 문장이다.
3. 자신도 이 책을 스는 과정에서 여러번 리트라이를 했다.
나는 이문제를 풀면서 정말 많이 리트라이도 많이 했고 특히 어셈블리 코드의 경우 정말 너무 길다. 하나하나 읽기도 벅찰정도이며 변화하는 레지스터들의 값도 어려웠지만 한 100번 보니까 이해가 조금씩 되더라
4. 끈기 앞에는 장사없다.
이말이 가장 의미가 깊었다. 문제를 푸는 중간에도 키젠을 만드는 중간에도 중간 중간 포기를 했지만 끈기 있게 노력해서 성취해서 기쁘다.
=======================
수강신청하기 싫다... 왜 이런 제도를 만든거지?
'리버싱 > 리버싱 핵심원리' 카테고리의 다른 글
11_Lenas_Reversing_for_Newbies 분석 실폐 (0) | 2020.02.28 |
---|---|
함수 호출 규약(Calling convention) (0) | 2020.02.28 |
abex' crackme #2 암호해독 (0) | 2020.02.27 |
abex' crackme #2 (0) | 2020.02.27 |
스택 프레임 (0) | 2020.02.26 |