목록2018/09 (31)
OutDoorFrog의 리버싱 이야기
이 이야기는 어느 작은 개구리의 이야기입니다. 바깥 개구리의 정보보안 이야기! 이야기는 시간을 거슬러 올라갑니다. 제 초등학교 시절.. 마인크래프트라는 게임이 유행할 시절이었습니다. 옛날에는 이 게임을 모르는 아이들이 없었습니다. 저는 친구에게 게임 설치 파일을 공유해달라 부탁을 했고 받은 파일을 실행시켜서 악성 코드에 감염됬습니다. 그 때 처음으로 저에게 목표가 생겼습니다. "악성 코드를 만들어보자"라는 목표입니다. 악성 코드를 만들기 위해서 처음으로 계획도 짰습니다.
리버서가 바이너리를 복구하는 이야기입니다. 0. 문제 설명 파이썬 암호화 코드가 있는 "ENC.py" 파이썬 코드에 의해 암호화된 데이터를 지닌 "ENCRYPTED" 문제는 두 파일로 구성이 되어 있습니다. Python, 파일 입출력, 정렬 알고리즘에 지식이 있으면 풀 수 있습니다. 1. Python 코드를 봅시다. from struct import unpack,pack table = [48, 27, 50, 8, 47, 73, 12, 4, 66, 0, 14, 77, 56, 26, 63, 67, 17, 11, 68, 22, 72, 69, 60, 64, 74, 58, 54, 42, 65, 32, 33, 40, 39, 37, 51, 59, 24, 35, 38, 61, 21, 31, 57, 20, 76, 13,..
이 이야기는 어느 리버서의 고통받는 이야기입니다. Windows API 만져본지 8개월이 다 되가는데 분석 문제가 나왔습니다. 문제가 이렇게 나올 줄은 몰랐으며 리버싱하는데 꽤나 걸렸던 문제입니다. 한 글자 한 글자를 연산하는 문제!!! 같이 보시죠!! 1. DIE로 분석 Default로 설정이 되어 있군요.. 2. IDA로 분석해볼까? 붉은색을 Brush Paint로 칠했군요. Hand-Ray 프레임워크를 사용합시다. 핸드-레이 프레임워크는 c->asm, asm->c 가 가능한 프레임워크 입니다. 용량도 가벼워서 사람들이 정말 많이 사용하는데요. 그렇습니다. 우리의 뇌와 손이 있으면 됩니다. 말 그대로 인간 디컴파일러!! 3. 힌트 코인 IDA 덕분에 Winmain으로 Main 함수가 만들어져있는 것을..
편안한 개구리입니다. 암드 캔 두 애니띵, WriteUP을 시작하겠습니다. . . . . . . 우리는 리버싱을 할려면 3가지 요구 조건을 만족해야합니다. 해당 CPU 아키텍쳐를 아는가?해당 어셈블리어를 아는가?리버싱 환경이 구성이 되었는가? 저는 환경 구성, CPU 아키텍쳐, 어셈공부까지 했습니다만.. 좀 더 좋은 방법 급박한 대회에서 점수를 버는 방법이 있습니다. Hex-Ray사에서 제공하는 디컴파일 기능을 이용하는 것입니다. 급박한 상황에서 애용하는 기능 중 하나지만 공부할 때는 지양하는 기능입니다. (뭐니뭐니 해도 핸드-레이가 공부에 최고)1. IDA 이렇게 상당히 희귀한 문제는 난이도가 그만큼 너프되기 마련입니다. 2. 디컴파일 사스가 Hex-Rays;;;; 저는 이거 디컴파일 하는데 2시간 걸..
블로그의 주인장 바깥 개구리 입니다.(개굴) 심플 리버싱에 대해서 포스트를 시작하겠습니다. 1. Die 이용 Detect It Easy는 정적 분석에 사용하는 도구 중 하나입니다. 사용한 언어, 파일 패킹 여부, 사용한 컴파일러, 사용한 링커 등의 정보를 수집할 때 사용합니다. 리버싱 환경을 정하고 어떤 디버거를 사용할지 판단할 때 씁니다. EntryPoint 값을 참고해서 Main 함수의 시작점이 어디일지 유추하기도 합니다. 사용 예시 PE 파일 -> 환경 : Windows, 디버거 : x32dbg, x64dbg, IDA ELF 파일 -> 환경 : Linux, 디버거 : EDB, IDA C언어로 작성했고 ImageBase값이 Default 입니다. 메인 함수가 401000에 위치하고 있지 않을까 유추해..