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
댓글 없음:
댓글 쓰기