반응형 전체 글123 Christmas CTF 2020 - angrforge 이 문제는 분석보다는 기존에 나와있는 라이트업을 통해 angr의 활용방법을 정리하는 방법으로 진행한다. angr의 설치와 사용방법은 간단하게 zooonique.tistory.com/26 여기에 정리를 해뒀다. 구글링해보면 더 좋은 글들이 많다! 바이너리를 실행시키면, 57자리의 input을 받고 제대로 입력을 하면, "OMG, Thank you for your good works :)"이 출력된다. 더보기 import angr import claripy def main(): p = angr.Project('angrforge') # 8비트 즉 1바이트의 심볼릭 비트벡터를 57개 만들어준다. flag_chars = [claripy.BVS('flag_%d' % i, 8) for i in range(57)] #.. 2021. 1. 4. Python3 Angr Install & How to use Angr 문제를 접하고 푸는 도중에 기존에 알고있던 Angr과는 조금 바뀐 부분이 있어서 이에 대한 내용을 메모합니다. 일단 Angr을 설치하는데, Python3 환경에서 설치하여 구동한다. 참고한 블로그에 따르면, Python3의 가상환경을 생성하고 그 위에 설치한다. 그 이유는 angr의 모듈도 z3의 Solver를 이용하면서 동시에 설치하면 서로의 영역에 침범해서 모듈을 사용할 수 없다고 한다. 아래와 같은 순서대로 설치를 진행한다. sudo apt install python3 sudo apt install python3-pip sudo apt install git sudo apt-get install virtualenvwrapper python2.7-dev build-essential libxml.. 2021. 1. 4. Christmas CTF 2020 - Screw_Driver Driver파일을 분석하는 문제이다. 문제파일에는 file,Screw_Driver.sys라는 파일이 주어진다. Screw_Driver를 분석해보면, 처음에 DriverEntry라는 함수가 있다. DriverEntry는 직관적으로 처음에 시작되는 함수인 것을 알 수 있다. 그 흐름을 따라가보면, sub_140002BF8이라는 함수가 실행된다. RtlInitUnicodeString 함수는 두번째 파라미터의 문자열을 첫번째 파라미터에 Unicode형태로 저장하는 함수이다. IoCreateDevice 함수는 드라이버에 쓰이는 DeviceObject를 만든다. 중요한 부분은 빨간박스 부분이다. MajorFunction의 14번째에 해당하는 내용은 IRP_MJ_SYSTEM_CONTROL을 호출한다. 이 내용은 뒷부.. 2020. 12. 30. Christmas CTF 2020 - lock 처음에 dump파일이 주어진다. Hxd나 메모장으로 해당파일을 열어보면 ARM 어셈블리어로 구성된 내용을 확인할 수 있다. 해당 dump파일을 변환하여 ELF파일로 바꿔서 아이다로 편하게 볼 수 있을까? 고민했지만, 실패했다. 정말 오랜만에 어셈블리어를 읽기시작했다. (STR과 LDR의 개념을 잘 익혀두는 것이 좋다.) 더보기 0000000000000c50 : c50: a9be7bfd stp x29, x30, [sp, #-32]! // 스택 공간 c54: 910003fd mov x29, sp c58: d2800021 mov x1, #0x1 // #1 c5c: d2800260 mov x0, #0x13 // #19 c60: 97fffee0 bl 7e0 c64: f9000be0 str x0, [sp, #16].. 2020. 12. 28. 이전 1 ··· 23 24 25 26 27 28 29 ··· 31 다음 반응형