목록0x02 Reverse Engineer (107)
constWORLDant
잡담 : 첫 번째 바이너리에서 플래그 획득에 대해서는 별다른 소득이 없었었다. 그렇다면, sys파일이 중요하다는 것이라는 것을 알게 되었다. ( 이까지 알게 된건 몇개월 전이지만, 코드 분석을 완벽하게 하지 않아서 이때까지 풀지 못하였었다.) 이전글에서 적었던걸로 기억나지만, 한번 더 기술해본다. SYS파일의 엔트리는 DriverEntry이다.그리고 __security_init_cookie는 윈도우즈 환경에서의 BOF 방지에 사용되..
WindowsKernel 문제를 풀기전 삽질했던 거에 대해서 적어보려한다. 우선 WindowsKernel 압축을 해제하면, 두개의 파일이 떨어진다.WindowKernel.exeWinker.sysWindowKernel.exe에 Winker.sys가 dll로 쓰이게 된다.DLL과 sys는 파일구조는 둘다 PE포맷이다.하지만, 조금 다르다. sys파일은 디바이스 드라이버로 동작하며, 엔트리 포인트가 DriverEntry로 시작된다.&nb..
보호되어 있는 글입니다.
[ 프롤로그 ]Reversing.kr의 WindowKernel문제 자체의 라이트업은 공개하지 않을것이며, 이 문제를 풀기 위해 사전적으로 공부했던 내용을 정리하여 올려본다. aka (삽질 && 지식 경험치 쌓기)WindowKernel 압축 해제 하면 두개의 파일을 획득할 수 있다.1. WindowKernel.exe2. Winker.sys 바이너리를 실행하면 입력조차 할 수가 없다. 입력을 못하는 대신..
보호되어 있는 글입니다.
c++ 관련 문제를 며칠전에 풀고 rootme에서 c++문제를 풀어보기로 하였다.시간 소요 : 15분(브레이크포인트를 검증하기 위해 걸지 않고 하니 시간이 오래 걸렸다. 대회에서는 이렇게 하지 않아야 겠다.)루틴이 비교적 쉬운 문제였다고 본다.전체적인 흐름은 다음과 같다.1. 매개변수 argc!=2이면 프로그램이 종료된다.2. 입력된 매개변수 argv[1]이 있으면 정상적인 흐름을 진행할 수 있다.3. 입력된 매개변수와 상관없이 string객체에 생..
출처 : 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 클래스에..
예전에 멘토형(yyt3000)이 해당 문제를 주었을 땐 노가다로 풀었었는데 댕이댕이님의 블로그에서 이 문제를 또 발견 하여 이번엔 코드로 작성해서 풀어보았다. [바이너리] : 조건은 다음과 같다.#include <stdio.h>#include <string.h>#include <Windows.h>// condition// arr[0] & 0xAD == 0 // arr_ind..
출처 : https://stop2y.blog.me/이 분의 블로그를 구경하다가 리버싱 문제를 하나 보게 되어 풀어보았다. 알고리즘은 다음과 같다.코드는 다음과 같다.#include <stdio.h>#include <stdlib.h>int main(){ char arr[] = "\x42\x69\x74\x78\x2c\x5c\x6D\x7f\x7f\x7b\x63\x7e\x68\x2c\x36\x2c\x5f\x6f\x6d..
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int t = 0x64; unsigned char name[100] = "\x0"; printf("name 입력 >> "); scanf("%s", name); int n = strlen((const char*)name); if (n < 4) return -1; for (int i ..