0x02 Reverse Engineer(124)
-
ROOTME PYC-BYTECODE
Python중에 pyc로 되어 있어서 pyc decompiler를 이용하였다. 파이썬 역분석을 처음 해봐서 엄청 해맸다. 문제를 보면 KEY값이 하드코딩 되어있고, 사용자가 입력한 PASS를 통해 KEYOUT를 생성할 수 있다. 파이썬의 ord는 문자의 코드 값을 구하는 함수이다. 이를 chr로 변환하여 풀었다. 코드를 많이 변환하지 않고 결과가 SOLUCE와 같아야 하기 때문에 SOLUCE를 인자로 삼고 브루트포싱 했다.. 후 오래걸렸다. 문제:print('Welcome to the RootMe python crackme')PASS = raw_input('Enter the Flag: ')KEY = 'I know, you love decrypting Byte Code !'I = 5SOLUCE = [ 57..
2018.05.19 -
ROOTME ELF PTRACE
PTRACE 안티디버깅 우회 한 뒤 문자열 비교 하면 끝
2018.05.19 -
ROOTME FAKE INSTRUCTION
FAKE INSTRUCTION에 꽂혀야 하는데... blowfish에 꽂혀서 못풀었따. 문제 명을 잘 읽자. 그럼 끝...
2018.05.19 -
KISA Diary 문제풀이 및 상세분석
팀원인 zer0day에게 바이너리를 우연히 받았다. 감사따리다~~ (grin) 오늘 받았으니 오늘 안에 끝내고 싶어서 집에서 분석을 하고, 잠시 밥을 먹으러 외출했다가 카페와서 마무리 하였다. (저번 키사문제도 맥주 한잔 하고 풀었는데.. 얘도 맥주 마시고 분석했다..맥주는 좋다.) 우선, 바이너리를 통해 반성을 해본 것이 있다. 1. 아직까지 WIN32API 분석 속도가 느린 점이다.지금 까지 한 3개 정도의 프로그램을 분석해보았는데, 이 녀석은 핵심 심볼도 일부 지워져 있고,(MessageBox 얘만 살아있으면 되게 빨리 감을 잡았을 텐데..) 코드가 TEXT섹션과 CODE섹션에 병합되어 있는 형태여서 다소 생소하였다. 그리고 break point와 trace를 동시에 보는 눈이 부족했다. 2. 바이..
2018.05.18 -
Reversing.kr WindowKernel 상세분석2
잡담 : 첫 번째 바이너리에서 플래그 획득에 대해서는 별다른 소득이 없었었다. 그렇다면, sys파일이 중요하다는 것이라는 것을 알게 되었다. ( 이까지 알게 된건 몇개월 전이지만, 코드 분석을 완벽하게 하지 않아서 이때까지 풀지 못하였었다.) 이전글에서 적었던걸로 기억나지만, 한번 더 기술해본다. SYS파일의 엔트리는 DriverEntry이다.그리고 __security_init_cookie는 윈도우즈 환경에서의 BOF 방지에 사용되는 카나리이며, 이 카나리는 4바이트 이상의 배열에서만 동작하게 되며, 함수프롤로그에서 ebp와 xor를 취하여 백업을 시켜둔뒤, 함수 에필로그에서 검증을 하는 것으로만 알고 있었는데, 직접 들어가보니 무조건 xor ebp는 아닌 것을 알게 되었다. int __security_..
2018.05.05 -
Reversing.kr WindowKernel 상세분석
WindowsKernel 문제를 풀기전 삽질했던 거에 대해서 적어보려한다. 우선 WindowsKernel 압축을 해제하면, 두개의 파일이 떨어진다.WindowKernel.exeWinker.sys WindowKernel.exe에 Winker.sys가 dll로 쓰이게 된다.DLL과 sys는 파일구조는 둘다 PE포맷이다. 하지만, 조금 다르다. sys파일은 디바이스 드라이버로 동작하며, 엔트리 포인트가 DriverEntry로 시작된다. 그리고 DeviceAttach, DeviceRemove, Deviceloctl, Read, Write 등의 OS에서 장치를 제어하기 위한 인터페이스 함수를 구현한다. 디바이스 드라이버이기 때문에 커널모드에서 수행되고, 모든 프로그램에 동일한 인스턴스를 보여준다.응용프로그램은 직..
2018.05.05