목록공부 (37)
OutDoorFrog의 리버싱 이야기
편안한 개구리입니다. 암드 캔 두 애니띵, 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에 위치하고 있지 않을까 유추해..
멘탈을 기르는 블로그의 주인장 OutDoorFrog입니다! 오늘은 해시와 암호화에 대해 알아봅시다. 1. 목표 암호화와 해시의 차이를 알아봅시다.특정한 암호화 함수의 알고리즘을 배우고 C로 구현해봅시다.특정한 해시 함수의 알고리즘을 배우고 C로 구현해봅시다.이런 분류의 문제를 대응할 방법을 생각해봅시다. 포스팅을 시작하겠습니다. 2. 배움이 필요하다고 느낀 이유 제가 참여한 여러 CTF에서 암호화, 해시에 관련된 문제가 많이 나왔습니다. 한 CTF마다 한 문제는 나오는 편이라 알아두는 편이 좋다고 판단했습니다. (소스 코드도 있는 프로그램이 리버싱도 쉽지 않습니까?) 3. 암호화와 해시의 차이를 알아봅시다! 해시는 단방향 암호화 기법입니다.암호화는 양방향 암호화 기법입니다. 단방향 암호화 기법은 평문을 ..
삽질 하는 개구리 OutDoorFrog입니다. 오늘은 CodeEngn Advanced 2 문제를 풀어봅시다. 1. 실행을 시켜보자. 환경 : Windows 10, 64bit Windows10, 64bit 환경을 기준으로 실행이 안 됩니다. 환경 : Windows7, 32bit Windows7 32bit 환경을 기준으로 실행이 됩니다. 2. DIE(Detect It Easy)를 사용해서 이유를 밝혀내자. 1. PE322. Linker : MS linker(6.0)3. Compiler : VS C/C++ (12, C++)4. Tool : VS 6.0 64bit 환경에서 실행이 안되는 이유가 있었습니다. 혹시 문제가 실행이 안되시는 분이라면 Vmware로 Windows7, 32bit 환경을 구축합시다. 3. ..
이 일기는 어느 리버서의 삽질 일기입니다. 질문 하나 드리도록 하겠습니다. 여러분은 빨간 길과 파란 길을 선택할 수 있습니다. 빨간 길은 길이 험하고, 시간이 많이 걸립니다.파란 길은 길이 평탄하고 시간도 적게 걸립니다. 여러분이라면 어떤 길을 선택하시겠습니까?? 그 길을 선택한 후, 후회하지 않을 자신이 있나요? 파란 길(Write UP) 1. 여러분은 DIE(Detect It Easy)로 파일이 깝니다. 패킹 되어 있는 문제를 보고 깊은 감명을 받으세요. 2. upx307w 를 사용합시다. 명령어 팁 : 파일경로/upx -d [파일경로/파일이름] 언패커를 이용해서 언패킹 해줍니다. (EP : 1770 입니다) 3. 한 번 실행을 해봅시다. 디버깅하지 않았을 경우 디버깅 했을 경우 이러한 패턴을 용의 ..