dreamhack 리버싱 rev-basic-6번 코드
·
문제풀이/리버싱
#include int main() { int answer[32] = {0x00, 0x4D, 0x51, 0x50, 0xEF, 0xFB, 0xC3, 0xCF, 0x92, 0x45, 0x4D, 0xCF, 0xF5, 0x04, 0x40, 0x50, 0x43, 0x63}; int compare[516] = {0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0..
dreamhack 리버싱 rev-basic-5번 코드
·
문제풀이/리버싱
#include int main() { int answer[32] = {0xAD, 0xD8, 0xCB, 0xCB, 0x9D, 0x97, 0xCB, 0xC4, 0x92, 0xA1, 0xD2, 0xD7, 0xD2, 0xD6, 0xA8, 0xA5, 0xDC, 0xC7, 0xAD, 0xA3, 0xA1, 0x98, 0x4C}; int a = 0; //아스키코드 반복 변수 int c = 0; //answer count 변수 int k = 0; //답 문자 int s = 0; //변수 a 되돌리기 for(a=0; a
dreamhack 리버싱 rev-basic-4을 풀어보자.
·
문제풀이/리버싱
#include int main() { int a = 0; //아스키코드 반복문 count 변수 int k = 0; //정답 문자 담을 변수 int c = 0; //배수 반복문 count 변수 int answer[28] = {0x24, 0x27, 0x13, 0xC6, 0xC6, 0x13, 0x16, 0xE6, 0x47, 0xF5, 0x26, 0x96, 0x47, 0xF5, 0x46, 0x27, 0x13, 0x26, 0x26, 0xC6, 0x56, 0xF5, 0xC3, 0xC3, 0xF5, 0xE3, 0xE3}; for(c=0; c
shr, shl, sar, sal
·
리버싱/공부
shift 연산이다. 이 어셈블리어를 공부하기 전에 https://dojang.io/mod/page/view.php?id=183 C 언어 코딩 도장: 24.3 부호 있는 자료형의 비트 연산 알아보기 지금까지 부호 없는(unsigned) 자료형으로 비트 연산을 했습니다. 하지만 부호 있는 자료형을 비트 연산할 때는 부호 비트를 조심해야 합니다. 먼저 부호 없는 자료형과 부호 있는 자료형에 >> 연산 dojang.io 이곳에서 보수에 대한 개념을 공부를 하는게 좋다. 부호가 있는 연산은 왼쪽에서 숫자가 채워질 때 1로 채워진다....(모르던 사실) shr, shl은 부호가 없는 연산이다. (즉 c언어로 따지면 unsigned int로 선언된 변수를 연산할 때 사용한다.) 가독성을 위해 AL레지스터(2byte..
mov와 lea
·
리버싱/공부
mov는 값이 복사되고 lea는 주소가 복사된다. 만약 eax에 0, ebx에 04012EF, [0x04012EF] -> 123이 들어있다고 가정하면 MOV EAX, [EBX] -> EAX에 EBX의 주소값인 0x04012EF의 값인 123이들어간다. LEA EAX, [EBX] -> EAX에 EBX의 주소값인 0x04012EF이 들어간다. MOV (레지스터 또는 주소), (상수 또는 레지스터 또는 [레지스터 또는 주소]) LEA (레지스터), ([레지스터 또는 주소]) 이 경우에만 가능하다.
Win32 API 초급공부
·
알쓸신잡
참고자료 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ilikebigmac&logNo=221470036755 c++로 만들어진 dll 파일과 exe파일로 dll injection을 하는 방법 처음 DLL injection에 사용되는 프로그램의 소스코드를 보았을 때 이해가지 않는 부분이 많았음. win32 API함수들이었다는 것을 알게 되고 dll injection을 하기 전에 win32 API 를 우선적으로 공부해야할 것 같다고 판단함. win32 API란 C언어로 작성되었으며 window환경에서 GUI프로그래밍을 하기위한 코드를 모아둔 거라고 보면 됨. win32 API에 대해 공부해보자. 참고자료 : http://soen..
파이썬 기본 명령어1
·
프로그래밍/파이썬
TCP School에서 배움 1. 변수의 타입이 자동으로 정해짐.(ex. int, char, float) 2. type(변수) -> 변수의 타입을 확인할 수 있음. 3. 불리언 타입이라고 있음.(boolean) bool(1) -> True를 반환(0을 제외한 모든 정수실수는 참임(ex0.1)) bool(0) -> False를 반환 bool([])
프로그램 툴 정리
·
알쓸신잡
리버싱 정적분석 툴 1. PEView 2. PEiD 3. DIE (Detect it easy) 4. exeinfo 동적 분석 툴 1. IDA Pro 2. x64 dbg 3. Immunity Debugger 4. Binary ninja 5. ollydbg 새로 알게되는 프로그램이 생길 때마다 적어보자.
Goblebin
고블빈