본문 바로가기

분류 전체보기264

[Reversing.kr] (Reversing) randsomware 풀이 문제파일을 다운받으면, 이렇게 구성되어있다. file 은 암호화된 파일이다. 문제이름이 randsomware 이기때문에, file 을 바꿀것이라는걸 짐작할 수 있으므로, 복사본을 만들어놓자. 실행하면 입력한 키값을 바탕으로 복호화를 해주는데, 복호화된 모습을 보니, exe 파일과 비슷한것같다. 올리디버거로 열심히 분석을 해봐도, 이상하게 아무것도 안나와서, DIE 로 열어보니, UPX 로 패킹된걸 볼 수 있다. 바로 언패킹해버리자. x32 디버거로, 언패킹된 프로그램에서 key : 문자열을 찾아왔다. 여기가 main 함수인것같다. 참고로 앞으로 중간중간 있게될 0x401000 함수는 아무의미없는 명령어 덩어리이다. 실행속도약간 늦추는 역할을한다. 첫번째, ebp-0x18 = key key 배열의 주소값을.. 2020. 6. 22.
[CTF] RACTF 2020 Writeup 4250 점중에 2500 점 획득해서 168등을 하게 되었습니다. 이번에도 팀원들이 잘해준것같습니다. 한 문제를 깨면, 다른 연관된 문제가 풀리는 퀘스트형식으로 되어있는점이 신기하고 재밌었어요. misc pearl pearl pearl osint RAirways pwn Not really AI Finches in a Stack Finches in a Pie rev Solved in a Flash Snakes and Ladders (crypto 는 각각 카이사르, 비즈네르 암호라 따로 다루지는 않겠습니다) MISC pearl pearl pearl 문제서버에 접속해 pwntools 로 값을 받아올때, log level 을 debug 로 설정하면, 이렇게 값이 옵니다. \r \n 두가지가 불규칙적으로 반복되는.. 2020. 6. 10.
[HackCTF] (Pwnable) RTL_Core 풀이 undefined4 main(void) { int iVar1; char local_24 [24]; undefined *local_c; local_c = &stack0x00000004; setvbuf(stdout,(char *)0x0,2,0); puts("코어 파일에 액세스중입니다...\n패스코드를 입력해주세요"); printf("Passcode: "); gets(local_24); iVar1 = check_passcode(local_24); if (iVar1 == hashcode) { puts("코드가 일치하구나. 좋아, 다음 단서를 던져주지"); core(); } else { puts("실패!"); } return 0; } 바이너리파일과, 라이브러리파일을 준다. check_passcode() 함수로 암.. 2020. 6. 3.
[CTF] CastorsCTF 2020 Write up 개인1856점, 총 4974점을따서 43등을 했습니다. 첫날 서버오류로 디코방에서 문제를 받고 운영자에게 DM으로 flag 를 인증한게 기억에납니다. 점수별 난이도조절을 실패해서 43등까지 온것같네요. pwn abcbof babybof1 babybof1 pt2 babybof2 babyfmt rev Vault0 Vault1 Stacking Xor Reverse-me forensic Manipulation Leftovers coding arithmetics PWNABLE abcbof gets 로 입력을 받고 [rbp-0x110] [rbp-0x10] 과 'CyberCastors' 을 비교합니다. gets 로 입력을 받으니, dummy 값 0x100 개를 채우고 rbp-0x10 값을 CyberCastors 로 .. 2020. 6. 1.