chipkkang9's story

[Whois 정보보안교육] assemlator 문제풀이 본문

CTF/Pwnable

[Whois 정보보안교육] assemlator 문제풀이

chipkkang 2021. 11. 29. 19:33

준비물


IDA Pro 7.0, Linux 작업환경 (본인은 kali linux를 사용함)

https://hex-rays.com/ida-pro/

 

IDA Pro – Hex Rays

Substantial changes Is to be expected in every release: new features, supported processors, etc which are all added after deliberation and discussion.

hex-rays.com

 

문제소개


[DoPwn] assemlator

 

문제풀이

 


세 번째 문제는 assemlator 문제이다.

문제 설명을 보니 어셈블리언어를 읽는 문제같다.

IDA로 바로 파일을 열어보았다.

 

assembly 파일을 IDA로 연 화면

 

조금 의심스러운 함수는 12번째 줄에 assembly_calc라는 함수이다.

들어가보니 다음과 같은 화면이 나왔다.

 

assembly_calc함수의 내부코드

 

천천히 해석해보도록 하자.

main 함수 11번째줄을 보면, v4에 scanf를 통해 정수를 입력받고 있다.

 

그리고, 입력받은 v4로 assembly_calc함수에서

0xABCDXOR 연산한 값이 4886774851과 같은지를 비교한 후,

같다면 flag를 토해내고,

아니면 Wrong을 출력하는 프로그램같다.

 

4886774851은 hex 값으로 따지면,

0x123464443과 같으므로, 0xABCD와 XOR 연산했을 때 해당 같이 나오는 값은

0x12346EF8E밖에 없음을 알 수 있다.

 

따라서 a1의 hex값은 12346EF8E이고, 이는 10진수로

4886818702이므로 이 값이 답임을 알 수 있다.

 

assemlator의 flag를 딴 화면

 

그대로 넣어주면 flag가 출력되는 간단한 문제였다!

Comments