Top

[pwnable.kr]_Ieg문제풀이

모의해킹/[CTF] pwnable.kr

2022. 2. 27.

이번 건 지난번 것보다

한 단계 낮은 Hard Level

라서 그런지

조금 빠르게

작성되는듯합니다.( ´∀`)

스샷.1

그럼 지문 마이웨이 직역

으로 는 다음과 같습니다.

Daddy told me I should study arm.
(셈님이 arm 공부해야 한다고 말했당께.)
But I prefer to study my leg!
(근디 나는 leg 공부가 더 하고싶당께?)

스샷. 2

ssh leg@pwnable.kr -p2222

바로 접속해주시고

스샷. 3

ls -l로 파일부터 확인해줍니다.

그런데 어떻게 할 방법이 없군요,

접근 시도가 안됩니다…? ōxō

접근 시도가 안됩니다…? ōxō​​

그럼 아까 지문에 있는

다운로드 부분에서

Download :

 http://pwnable.kr/bin/leg.c
http://pwnable.kr/bin/leg.asm

각각 받아둡니다

다운로드를 하고 바로

leg.c를 확인해 봅시다.

스샷. 4

key1부터 3까지의

함수들은 ARM 어셈블리어

로 작성되었습니다.

먼저 main 함수를 보면 위 3개의

함숫값을 모두 더한 값을

맞추면 키값을 받아 챙길 수

있는 모양입니다.

main 함수 어셈코드도

봅시다.

스샷. 5

함수를 통해 구한 r0 값을

모두 더해서 최종적으로

r2에 들어가는 것을

알 수 있습니다.

그럼 각 함수를 보겠습니다.

스샷. 6

key1함수의 c와 어셈코드 입니다.

pc라는 값을 r3에 넣고

다시 r3 릉 r0에 넣습니다.

그럼 pc라는 값이 key1의

값이 되겠습니다.

pc가 뭔지 잠깐 들여다본다면

 cpu가 명령어 하나를 수행할 때 fetch > decode > execute
 의 과정을 거친다고 합니다.
 2개의 opcode를 실행하려면
 fetch > decode > execute > fetch > decode > execute
 총 6번의 작업이 필요합니다.
 
이렇게 병렬적으로 단계를 수행하면 2개의
 opcode를 실행할 때 6번의 작업이
 필요했던 것을 4번으로 줄일 수 있습니다.
 직렬보다 효율적이라고 합니다.
 
 pc는 fetch할 주소를 담고 있습니다.
 현재 명령어가 execute 단계라면,
 다음 명령어는 dexode 단계,
 
 그다음 명령어는 fetch
 단계 이겠습니다.
 
 그래서 pc는 다음번째 명령어의 주소를 담고
 있게 됩니다.
 

이제 본론으로 돌아와서

key1 함수에 pc의 값은

0x00008ce4

되겠습니다.

이제 key2로 가봅시다.

스샷. 7

r3에 pc 값(0x00008d08)

을 대입하고, 4를 더해서

r0에 대입합니다.

key2의 값은

0x8d08 + 4 = 0x8d0c

key3을 봅시다.

스샷. 8

lr이라는 값을 r3에 대입하고

r3의 값을 r0에 대입합니다.

그러면 lr이라는 값을

구하면 될 듯합니다.

main함수를 보면

스샷. 9

lr의 값은

0x00008d80

3가지 모두 구했읍니다.

 key1 | 0x8ce4

 key2 | 0x8d0c

 key3 | 0x8d80

모두 합산하면

0x1a770

그럼 바로 키값을

받아챙기러 가봅시다 ㅋㅅㅋ

이렇게 입력창에다가

 108400을 입력하겠습니다.

그리고 프로그램 특성상

반드시 정수로

입력해야 됩니다.

스샷. 10

이렇게 키값이 나오고

스샷. 11

받아챙긴 값으로

처음 화면으로 돌아와서

빈칸에 입력하고

auth 버튼을 누르면 됩니다.

미션 완료 동시에

2 포인트 받아 챙겨젔습니다.

그럼 다시 최초의 화면에

돌아 와보면 이렇게

완료되었다고 녹색

점선으로 표시가 됩니다.

긴 글을 보시느라 감사합니다.

수고하셨습니다(ㆁᴗㆁ✿)

좋은 하루 되시고 하시는 일 잘 되시고

날이 덥습니다 더위 먹지 않게 유의하시고

코로나 조심하세요

'모의해킹 > [CTF] pwnable.kr' 카테고리의 다른 글

[pwnable.kr] Fla_ 문제풀이  (0) 2022.04.10
[pwnable.kr]_Random문제풀이  (0) 2022.02.27
[pwnable.kr]_Input문제풀이  (0) 2022.02.27
[pwnable.kr]_passcode문제풀이  (0) 2022.02.27
[pwnable.kr]_Memcpy문제풀이  (0) 2022.02.27