Wargame.kr 포스트는 이해한 내용과 복습을 위한 목적으로 작성되었습니다.

이번 포스트에서는 easy_crackme 문제에 대한 이해와 풀이를 진행해보도록 하겠습니다.


이번에는 생각해보면 간단한 문제이지만, IDA를 다뤄보려고 이것저것 뒤져보느라 열심히 풀어보게 된 문제입니다.

문제를 풀어보도록 하겠습니다.




 

 문제 이해


문제는 다음과 같습니다.

리버싱 문제라고 합니다.

원래는 x64dbg를 이용하여 문제를 풀이하려 했으나, ida를 사용해보는 것도 좋을 것 같아 사용하지도 못하는 IDA로 삽질을 해보았습니다.

거두절미하고 문제풀이로 들어가보도록 하겠습니다.



 

 문제 풀이


먼저 IDA로 문제를 열어보면 다음과 같이 나타나게 됩니다.


별로 봐도 도움이 안 되는 창입니다.


일단 Shift + F12를 클릭하여 String View로 들어가보도록 합시다.


여기서 G00d! 라는 문자가 있는 것을 확인하고, 신나게 더블클릭을 눌러보았습니다.

그러자 다음과 같이 나타나게 됩니다.


띠용.

위의 영역은 text 영역이라고 합니다.

여기서 aG00d에서 x를 눌러도 해당 위치의 View로 넘어가져야 하는데, 어째 캡처할 때는 안 넘어가지네요....

문제 풀다 뭐 잘못 건드렸나..


그래서 다음과 같이 aSorryServerIsD 함수를 클릭하여 x 버튼을 클릭하여 해당 위치의 IDA-View로 들어갔습니다.

OK를 누르게 되면 다음과 같이 나오게 됩니다.


여기서 해당 부분을 클릭하고 F5를 눌러주면 다음과 같은 코드로 넘어가지게 됩니다.

괴..굉장해..


여기서 위로 조금 올라가보면...

이런 소스가 나타나게 됩니다.


이 소스를 쭉 해석하면,

"_my_b"가 문자열에 있는지 비교하고, wtoi로 1114가 있는지 비교하고, "birth"가 문자열에 있는지 비교합니다.

이를 조합하면 1114_my_birth 가 답이 되게 됩니다.




+ Recent posts