Microcurruption Johannesburg

8

Microcurruption의 Johannesburg다.

문제를 읽어보면 Lockitall LOCKIT PRO r b.04라고 되어있다. 사용자 매뉴얼을 열었다.

#include<io.c>
#include<lib.c>
int main(void){
 char ∗pw = ‘‘password’’;
 char buf[16];
 char ∗ptr = buf;
 puts(‘‘Whatisthepassword?’’);
 gets(buf,15);
 while(∗pw && ∗buf)
  if(∗pw++ != ∗buf++)
            return 1;
 if(∗pw != ∗buf)
        return 1;
 INT(0x7F);    
 return0;
}

코드 자체는 입력 받은 값과 같은지 비교해서 문을 열어준다고 되어있다. 예상했던 것과 같이 길이 검사를 하는 부분이 있는데 길이가 같은지 검사하는 JEQ (JZ) 명령어를 통과할 수 있게 5C로 맞춰주고 ret를 unlock_door로 맞춰주면 열린다.

61616161616161616161616161616161615C4644

 

댓글 없음:

댓글 쓰기

Microcurruption Addis Ababa

11 Microcurruption의 Addis Ababa다. 4482: 3f40 0a00 mov #0xa, r15 4486: b012 5045 call #0x4550 <putchar> 448a: 8193 0...