반응형

reversing 57

[Tenable CTF] The only tool you'll ever need - 리버싱 / Strings

아주아주 쉬운 리버싱 문제 사실 너무 쉬워서 리버싱이라 부르기도 좀 그렇다. 문제 풀이수가 얼마나 쉬웠는지 증명해주고 있다. 문제에서 주어지는 것은 a.out 파일이다. 문제 설명을 보면 리버싱 문제를 풀기위한 가장 파워풀한 도구가 뭔지 아냐고 물어보는데 여러 후보들이 있지만 이 문제의 경우 메모장도 그중 하나일것 같다. 메모장으로 a.out 파일을 열어서 스크롤을 조금만 내려보면 플래그가 보인다.. 플래그의 내용에 strings 가 있는걸로 보아 문제 출제자의 의도는 strings 도구를 사용하라는 것인듯 하다. 리눅스 환경에서 strings 명령어를 이용해 a.out 파일을 확인해보면 똑같이 플래그를 찾을 수 있다.

CTF/리버싱 2023.03.22

[DiceCTF] babymix - 리버싱 / IDA / Python

쉬운것 같으면서도 쉽지 않은 리버싱 문제 python z3 를 알고있다면 금방 풀수있다. babymix 라는 이름의 바이너리 파일이 하나 주어진다. 한번 실행시켜봤다. admin 비밀번호를 입력하라고 요구하고, 비밀번호가 틀리면 Incorrect 메세지가 출력되면서 종료된다. 바로 IDA 를 이용해 디컴파일 해보았다. main 함수를 보면 사용자의 입력값을 s에 담아 check815546 함수로 집어넣는다. 그 검증결과가 참일경우 Correct 라는 메세지가 출력된다. check815546 함수를 살펴봤다. 사용자가 입력한 값의 각 자리를 계산해서 특정한 조건을 만족시키는지 검증한다. 그런데 한번 검증하고 끝나는게 아니라 여기서 또 check921708 함수를 호출한다. check921708 함수도 마찬..

CTF/리버싱 2023.03.05

[CTFlearn] RE_verseDIS - 리버싱 / IDA / Python

CTFlearn 의 일흔 여섯번째 문제 이번엔 Medium 난이도의 리버싱 문제이다. 숨겨진 비밀번호를 찾으라고 한다. 문제에서 주어지는 것은 problem 파일이다. 리눅스 환경에서 시험삼아 실행시켜 보았다. 비밀번호를 입력받는데 test 라고 입력했더니 틀린 비밀번호라는 문구가 출력된다. 바로 IDA 라는 디스어셈블러를 이용해 problem 파일을 열고, F5를 눌러 main 함수의 수도코드를 살펴보았다. key 배열에 들어있는 값을 key2 배열로 옮겨서 집어넣고, msg 배열에 str[4 * 1] ^ LOBYTE(key2[i]) 의 결과값을 집어넣는다. 그리고 사용자의 입력값이 msg 배열과 같은지 검증하고 있다. key 배열에는 IdontKnowWhatsGoingOn 라는 값이 들어있고, str..

워게임/CTFlearn 2023.03.03

[LACTF] caterpillar - 리버싱 / 자바스크립트

자바스크립트 난독화와 관련된 리버싱 문제 복잡해 보이지만 어렵지 않게 풀 수 있다. const flag = "lactf{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}"; if (flag.charCodeAt(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~[]) == -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~[]..

CTF/리버싱 2023.02.23

[CTFlearn] Reykjavik - 리버싱 / IDA

CTFlearn 의 예순 여섯번째 문제 이번엔 쉬운 난이도의 리버싱 문제이다. 문제 설명을 보면 gdb 를 이용해보라고 하는데 더 쉬운 IDA 를 이용해 풀것이다. 문제 제목인 Reykjavik 는 아이슬란드의 수도라고 한다. 문제 출제자가 아이슬란드 사람인가 보다. 문제에서 주어지는 것은 Reykjavik 바이너리 파일이다. 한번 실행시켜 봤는데 인자로 플래그를 입력받는듯 했다. 바로 IDA 라는 디스어셈블러를 이용해 바이너리를 열어보았다. main 함수의 수도 코드를 살펴보니 v3 변수에 사용자가 입력한 인수를 저장하고 아래쪽에 strcmp 함수로 v3 와 CTFlearn{Is_This_A_False_Flag?} 가 같은지 비교하고 있다. 같으면 아래쪽 printf 가 실행되는데 이건 가짜 플래그라고..

워게임/CTFlearn 2023.02.09

[JISCTF] Baby Reverse - 리버싱 / IDA

제목처럼 간단한 리버싱 문제 아무런 설명없이 파일만 덩그러니 주어진다. Easy.zip 파일 압축을 풀어보면 Easy 라는 이름의 파일이 들어있다. 리눅스 환경에서 file 명령어를 통해 어떤 파일인지 확인할 수 있다. ELF 파일이라고 나오는데 ELF는 리눅스에서 실행가능한 실행파일이다. 한번 실행시켜 봤더니 실행하자마자 Try harder!! 라는 문구가 나오면서 프로그램이 종료된다. IDA라는 디스어셈블러를 이용해 Easy 파일을 열어 main 함수의 수도코드를 살펴보았다. 가장 먼저 보이는 조건문에서 argc가 1인지 확인을 한다. 여기있는 argc는 argument의 갯수를 의미한다. 아까처럼 ./Easy 라고만 실행하면 argc 는 1이 되어서 Try harder!! 가 출력되고 끝나는 것이다..

CTF/리버싱 2023.01.17

[CTFlearn] PIN - 리버싱 / IDA

CTFlearn의 쉰 여섯번째 문제 이번엔 처음으로 나온 리버싱 문제이다. 문제 난이도가 Medium으로 분류되어 있는데 풀어보면 Easy 수준으로 느껴질만큼 쉽다. 문제에서 주어지는것은 rev1 파일이다. 리눅스 환경에서 file 명령어를 통해 어떤 파일인지 확인할 수 있다. ELF 파일이라고 나오는데 ELF는 리눅스에서 실행가능한 실행파일이다. 한번 실행시켜 봤더니 실행하자마자 Masukan PIN = 이라는 문구가 나오며 사용자 입력을 받는데 123 이라고 입력해봤더니 PIN salah! 라는 문구가 출력되었다. 검색해보니 salah 는 잘못되었다는 뜻이라고 한다. IDA 라는 디스어셈블러를 이용해 rev1 파일을 열어보았다. main 함수의 수도코드를 가장 먼저 살펴보니 scanf 로 사용자의 입..

워게임/CTFlearn 2023.01.13

[PoseidonCTF] The Large Cherries - 리버싱 / IDA / Pwntool

쉬운 난이도의 리버싱 문제 원격으로 접속할 수 있는 주소와 Lao-Tzu 라는 이름의 바이너리 파일이 제공된다. 참고로 Lao-Tzu 는 춘추시대 철학자인 노자를 말한다. Lao-Tzu 파일을 리눅스 환경에서 실행시켜 보았다. Enter the secret for the magic word : 라면서 사용자의 입력을 기다린다. 123 이라고 입력해봤는데 magic word 가 아닌지 바로 프로그램이 종료되었다. 바로 IDA를 이용해 바이너리를 열어서 main 함수를 살펴보았다. Enter the secret for the magic word : 라는 문구가 출력된 후에, scanf 로 사용자 입력을 받아 v9 변수에 저장한다. 그다음 magic_word 함수에 v9를 인수로 집어넣고, 그 결과를 v4에 ..

CTF/리버싱 2022.11.12

[2020CCE] Easyransom - 리버싱 / IDA / HxD / XOR

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 제목에서 알 수 있듯이 이번 문제는 랜섬웨어와 관련된 문제이다. 랜섬웨어는 몸값을 뜻하는 Ransom과 Software(소프트웨어)가 더하여진 합성어로 컴퓨터에 저장된 문서파일이나 사진 등을 암호화하고, 복호화하는 대가로 몸값을 요구하는 악성코드를 말한다. 문제파일로 두개의 파일이 주어진다. 하나는 easyransome.exex.exe 파일이고 다른 하나는 flag.txt.easyransom 파일이다. exe 파일이 랜섬웨어 역할을 하는 파일인것 같고, flag.txt.easyransom 파일은 flag.txt 파일이 암호화되어서 easyransom 으로 확장자가 바뀐듯 하다. 암호화된 파일을 HxD..

CTF/리버싱 2022.11.04

[2020CCE] My Friend - 리버싱 / IDA / Python

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 이번에 포스팅 할 문제는 My Friend 라는 제목의 리버싱 문제이다. 주어지는 파일은 mf 라는 이름의 바이너리 파일이다. 리버싱 카테고리에 있는 문제고, 알 수 없는 바이너리 파일을 받았으니 바로 IDA 라는 디스어셈블러를 이용해 열어보았다. IDA에서 인식하길 해당 파일은 Mach-O 파일이라고 한다. Mach-O 파일은 애플의 MacOS 에서 동작하는 프로그램이다. 개인적으로 CTF에서 Mach-O 파일이 나오는걸 이때 처음봤다. IDA로 분석해보면 함수가 친절하게 이거밖에 없다. 그중 _main 함수와 _get_flag 함수가 눈에 띈다. _main 함수의 내용이다. 별 내용이 없다. 사용..

CTF/리버싱 2022.11.01
반응형