reversing(18)
-
Reversing.kr - Easy Keygen
Easy Keygen 문제입니다. 문제 이름처럼 Keygen을 하는 문제 같습니다. 문제를 실행시켜보면 위와 같이 이름하고, 시리얼 번호를 받습니다. 그리고 함께 들어 있는 Readme.txt 를 확인해보면 시리얼이 5B134977135E7D13일때의 key값을 찾아보라고 합니다. IDA에서 똑같이 string 부분을 확인해보고, 이를 따라 들어가면 메인함수를 확인할 수 있습니다. 아래 메인함수를 분석해보면 sprintf부분에서 ^(xor)연산이 있는것을 봐서 해당 부분에서 연산이 일어나는 것을 확인할 수 있습니다. v6, v7, v8 이 각각 v6(0x10), v7(0x20), v8(0x30) 을 가지고 있습니다. 또한 [29번줄] scanf에서 이름을 입력 받고, 이를 9변수에 저장한 후 [35번줄]..
2021.06.24 -
Rootme - ELF x86 - Stack buffer overflow basic 1
해당 문제는 lob와 비슷한 pwnable문제 입니다. #include #include #include #include int main() { int var; int check = 0x04030201; char buf[40]; fgets(buf,45,stdin); printf("\n[buf]: %s\n", buf); printf("[check] %p\n", check); if ((check != 0x04030201) && (check != 0xdeadbeef)) printf ("\nYou are on the right way!\n"); if (check == 0xdeadbeef) { printf("Yeah dude! You win!\nOpening your shell...\n"); setreuid(get..
2021.06.11 -
Reversing.kr - Easy Crack
처음 풀이하는 Reversing.kr 문제이다. Reversing에 대한 이해가 부족하고 다시 기초를 다지면서 어셈블리어를 분석하기 위해서 풀이하기로 마음먹었다. 능력이 되는 문제까지 풀어봐야겠다. 해당 프로그램은 위와 같이 입력 창을 띄워주고, 입력을 받아서 맞는지, 틀리는지에 따라서 참 거짓을 출력해주는 프로그램이다. 문자열 부분을 확인해봐서 분기문을 찾아가는 쪽으로 방향을 정해봤다. Congratulation! 부분이 이제 correct부분이니 이 부분을 따라가보면 아래와 같은 메인 출력부분을 찾을 수 있습니다. 여기 코드를 분석해보면 15번째 분기문인 if문에 걸리지 않으면 출력이 되는 것을 확인할 수 있습니다. stack frame 을 확인해보면 String, v3, v4, v5 순서로 이어져 ..
2021.05.16 -
rootme - ELF x86 - Basic
이 문제도 쉽게 풀었습니다. 파일 다운받고, ida로 확인해보면 위이 같이 나오고, 어셈 확인하면 password 확인이 가능합니다. 커맨드에도 똑같이 입력해서 확인해보면 password확인이 가능합니다 :)
2021.04.30 -
rootme - PE x86 - 0 protection
처음에 웹사이트에 접속하면 위와 같이 나오는데 이것도 무난한 PE파일의 리버싱 같습니다. 다운받아서 ida로 까보면 메인 함수를 발견할 수 있고, python으로 string형태로 바꿔주면 solve가 가능합니다 :)
2021.04.28 -
rootme - ELF x86 - 0 protection
처음에 접속하면 위와 같이 나오는데 그냥 무난하게 ez한 문제 같았다. 처음 파일을 다운받고 32비트인 것을 확인하고 ida로 실행 시켜보니 password를 주고 이를 입력하면 되는 문제였다. 그대로 실행시켜주고 123456789를 입력하고 password를 출력해주었다. 물론 굳이 실행시키지 않아도 알수 있지만^^
2021.04.26