본문 바로가기

Reversing24

[HackCTF] (Reversing) Strncmp 풀이 문제를 다운받아 실행해보자 아무거나 입력하면 Always dig depper 이라 출력하고 종료한다. 항상 삽질하라는 충고같다. rsi, rdi (입력값) 을 인자로 주고있다. 그렇다면 rsi 를 확인해보자 main+188 에 BP 를 걸어 rsi 값을 확인해보자 이상한 문자열이 나온다. 이걸 입력해보면 Good game이라고 나온다. 하지만 이게 flag가 아니라는걸 알수있다. 힌트로 준것처럼 계속 삽질을 해보면 위에 나온 strcmp 함수 뒤에 _ 이 붙어 사용자가 작성한 함수인걸 알수있다. 한번 확인해보자 [loc_400712] 문자열에서 하나씩 값을 가져와 key와 xor 후 다시 s (사용자 입력 문자열) 에 덮어쓴다. (덮어쓰는것처럼 보이지만, gdb로 삽질하여 확인한 결과 값을 덮을려했지만 .. 2020. 3. 3.
[HackCTF] (Reversing) Welcome_REV 풀이 문제파일을 다운받아서 아이다로 열어보면 ELF 파일인걸 알수있다. 값을 입력받고, check_password함수로 값을 판단한다. 입력값을 가지고 여러 반복문을 실행하는데, 딴건 다 필요없고 핵심은 가장 아래에있는 큰박스만 보면된다. strncmp 로 edx(입력값)과 문자열을 비교하고있다. 문자열을 자세히보면 끝에 = 이 붙는걸 봐선 base64인코딩된 문자열인걸 알수있고, 디코딩해보면 FLAG가 나온다. 2020. 3. 3.
[HackCTF] (Reversing) Reversing Me 풀이 문제를 보면 c언어 코드 하나를 던져줍니다. [소스분석] 키를 입력하고 키의 길이가 serial의길이와 같아야한다 i < strlen(serial) 과 enter[i] xor (i%2) == serial[i] 를 만족하면 i 를 증가시킨다 i-1 과 enter의 길이가 같아질때까지 반복을했으면 (enter 문자열이 모두 조건에 맞는다면) 정답일세! 를 출력해준다. [문제풀이] serial과 복호화루틴이 나와있으니 이를바탕으로 쉽게 복호화프로그램을 만들수있다. enter[i] xor (i%2) == serial[i] 이기때문에 serial[i] 와 (i%2) 를 xor해준다면 조건에 맞는 enter[i] 를 얻을수있다. 이를 바탕으로 복호화프로그램을 제작하면 다음과같다 [소스코드] 2020. 2. 29.
[HackCTF] (Reversing) handray 풀이 문제를 다운받으면 handray elf 파일이 주어집니다. 실행시켜보면 개행도 해주지않고 flag를 뛰어넘었다면서 종료해버립니다. ida로 열어보겠습니다 string 값과 array 값으로 복호화를하는것을 확인할수있습니다. [복호화 루틴] rbp+var_8 값을 counter 으로 활용해서 rbp+var_8 2020. 2. 29.