0x02 Reverse Engineer(124)
-
WindowsKernel
보호되어 있는 글입니다.
2018.05.05 -
Winkernel 문제 풀기 전 공부한 사항
[ 프롤로그 ]Reversing.kr의 WindowKernel문제 자체의 라이트업은 공개하지 않을것이며, 이 문제를 풀기 위해 사전적으로 공부했던 내용을 정리하여 올려본다. aka (삽질 && 지식 경험치 쌓기) WindowKernel 압축 해제 하면 두개의 파일을 획득할 수 있다. 1. WindowKernel.exe2. Winker.sys 바이너리를 실행하면 입력조차 할 수가 없다. 입력을 못하는 대신, 힌트를 떨궈준다. OpenSCManager에서 에러가 발생하였다고한다. OpenSCManager함수는 악성코드를 분석할 때 종종 봐왔던 함수이다.하지만, 이 함수는 비단 악성코드에서만 로드되는 함수는 아니다.무조건 이게 있다고 오!! 악성코드!! 이러면 안되는 것이다. 여튼 이 함수는 서비스를 등록한 ..
2018.05.04 -
ImagePrc
보호되어 있는 글입니다.
2018.05.04 -
Rootme ch25 C++ Basic
c++ 관련 문제를 며칠전에 풀고 rootme에서 c++문제를 풀어보기로 하였다. 시간 소요 : 15분(브레이크포인트를 검증하기 위해 걸지 않고 하니 시간이 오래 걸렸다. 대회에서는 이렇게 하지 않아야 겠다.) 루틴이 비교적 쉬운 문제였다고 본다. 전체적인 흐름은 다음과 같다.1. 매개변수 argc!=2이면 프로그램이 종료된다.2. 입력된 매개변수 argv[1]이 있으면 정상적인 흐름을 진행할 수 있다. 3. 입력된 매개변수와 상관없이 string객체에 생성된 문자열의 길이를 체크한다.4. 문자열은 힙에 할당된다. 메인함수부분이다.argc!=2가 아니면 실패 관련 구문으로 분기하게 된다. 실패 구문 매개변수가 2개 들어갔을 경우 allocator와 string클래스가 눈에 보인다. string으로 무엇인..
2018.05.03 -
Simple Crack Me Writeup
출처 : http://www.rohitab.com/discuss/topic/39048-serial-crackme/ 주제 : c++ 분석 공부 목적 워게임 기반 : Dev C++ v5.0 - v5.5 / MINGW32 / GNU C v4.x 바이너리를 열면, UserName과 Serial을 입력할 수 있다. 소스코드를 보자. 메인함수이다.메인함수에서 봐야 하는 부분은 start이다. 문자열을 string 클래스에 넣어둔다. Username과 Serial을 std::cin을 이용하여 입력한 후 serialfunc에 접근한다. 결과문 출력 또한 string 클래스를 이용함을 볼 수 있었다. 대부분의 crackMe를 풀 때는 참,거짓에 의해 출력문이 나왔는데 c++에서는 이렇게도 적용할 수 있는 것을 알게 되었..
2018.04.28 -
BruteForce is Wonderful!
예전에 멘토형(yyt3000)이 해당 문제를 주었을 땐 노가다로 풀었었는데 댕이댕이님의 블로그에서 이 문제를 또 발견 하여 이번엔 코드로 작성해서 풀어보았다. [바이너리] : 조건은 다음과 같다. #include #include #include // condition// arr[0] & 0xAD == 0 // arr_index0// arr[1] & 0x9A == 0 // arr_index1// arr[2] & 0x97 == 0 // arr_index2// arr[3] & 0xbf == 0 // arr_index3// arr[4] & 0x5FC5 == 0 // arr_index4// arr[5] & 0xD6 == 0 // arr_index5 char arr[] = "";static int arr_index..
2018.04.02