Security/Reversing
-
함수 호출 규약Security/Reversing 2020. 3. 7. 16:33
주요 함수 호출 규약으로 cdecl, stdcall, fastcall 의 3가지가 있으며, 이외에도 clrcall, thiscall fortran등등의 규약들이 존재한다. 함수 호출 규약의 구분 - 인자 전달(인자 전달의 순서) - 인자 전달에 사용하는 매체(스택, 레지스터) 함수 호출 규약의 종류 규악 정리하는 쪽 인자 전달 매체 인자 전달 순서 cdecl Caller 스택 오른쪽에서 왼쪽 stdcall Callee 스택 오른쪽에서 왼쪽 fastcall Callee 레지스터, 스택 오른쪽에서 왼쪽 *Caller, 호출자 - 함수를 호출한 쪽 *Callee, 피호출자 - 호출을 당한 함수 9 10
-
바이트 오더링Security/Reversing 2020. 3. 6. 15:44
Little Endian : LSB최하위 바이트 부터 차례로 저장하는 방식 Big Endian : LSB최상위 바이트 부터 차례로 저장하는 방식 * 16 진수는 2개가 1바이트이므로 두개씩 묶어서 저장된다. EX) 빅 엔디언 0x12345678이 들어갈 때 메모리 주소 ... 0x1000 0x1001 0x1002 ... 변수 값 ... 0x12 0x34 0x56 ... - 자료형별 저장 TYPE NAME SIZE 빅엔디언 리틀엔디언 BYTE b 1 12 12 WORD w 2 12 34 34 12 DWORD dw 4 12 34 56 78 78 56 34 12 char str[] = "abcde" str 8 61 62 63 64 65 00 61 62 63 64 65 00 문자열의 경우에는 리틀엔디안과 빅엔디..
-
OllyDbg 자주쓰는 단축키Security/Reversing 2020. 2. 27. 04:02
BreakPoint(BP를 설정) : F2 Restart(처음 부터 디버깅 시작) : Ctrl+F2 Step into(하나의 OP code 실행, CALL 명령을 만나면 함수 코드 내부로 들어감) : F7 Step Over(하나의 OP code 실행, CALL 명령을 만나면 함수 코드 내부로 들어가지 않고 함수 자체를 실행함) : F8 Continue(BP까지 실행) : F9 Execute till Return(함수 코드내에서 리턴 명령어까지 실행) : Ctrl+F9
-
ReversingSecurity/Reversing 2020. 2. 27. 03:56
Reversing Engineering, RE 역공학 1) 정적 분석 파일을 실행하지 않고 분석 파일의 종류, 크기, 헤더(PE)정보, import/export API 등을 확인하거나 디스어셈블러를 이용하여 코드와 구조를 확인하는 것이 포함된다. 2) 동적 분석 파일을 실행해서 행위를 분석 디버깅을 통해 코드의 흐름이나 메모리 상태를 관찰하거나 파일, 레지스트리, 네트워크 등을 관찰하면서 프로그램의 행위를 분석하는 것이 포함된다. - Patch 패치는 프로그램의 파일이나 실행중인 프로세스 메모리의 내용을 변경하는 작업이다. 패치는 보통 프로그램의 취약점 수정과 기능 개선이다. ex ) 윈도우 업데이트 등 - Crack 크랙은 패치와 같은 개념이지만 그 의도에 있어 비도덕적이거나 비합법적인 경우를 따로 구..