목록알쓸전컴 (343)
알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
slot-scope 개념은 부모 컴포넌트에서 slot을 사용할때 사용을 합니다. slot에 적용할 template 의 하위 자식 컴포넌트에서 부모의 자원(데이터)을 사용 하려고 할때 사용합니다. 해당 내용은 예제를 통해서 하는것이 훨씬 직관적일 적 같습니다. 예를 들면 다음과 같은 코드가 있습니다. 다음과 같은 자식이 있습니다. 여기서 중요한 부분만 보겠습니다. 부모에서 의 slot 에서 :item와 :index 을 상속으로 내려 줍니다. 그럼 자식에서 템플릿을 만들때 와 같이 slot-scope="props" 를 사용해서 자식 컴포넌트에서 해당 데이터를 받아서 사용할수 있게 됩니다. 여기서 props 은 꼭 props 가 아니여도 됩니다. 다른것으로 해도 매칭만 되면 상관없습니다. 또한 똑같은 결과 입..
IAT DLL (Dynamic Linked Library) IAT 를 설명하기 앞서 Windows OS 의 근간을 이루는 DLL(Dynamic Linked Library) 개념을 짚고 넘어가야 합니다. (뭐든지 이유를 알면 이해하기 쉬운 법이지요...) DLL 을 우리말로 '동적 연결 라이브러리' 라고 하는데요, 그 이유를 알아 보겠습니다. 16 bit DOS 시절에는 DLL 개념이 없었습니다. 그냥 'Library' 만 존재하였습니다. 예를 들면 C 언어에서 printf() 함수를 사용할 때 컴파일러는 C 라이브러리에서 해당 함수의 binary 코드를 그대로 가져와서 프로그램에 삽입(포함)시켜 버렸습니다. 즉, 실행 파일내에 printf() 함수의 바이너리 코드를 가지고 있는 것입니다. Windows ..
IAT 설명을 시작 전에 필요한 사전 지식 이 있습니다. http://idlecomputer.tistory.com/177 포스팅에 보면 RAW,RAV 대한 설명이 있습니다. 이번에는 실제로 변환 하는 예제를 두고 변환 해 보겠습니다. 먼저 저는 예제로 간단히 만든 excel 로 계산을 해보겠습니다. RAV 는 메모리에 쌓이는 offset 값이고 RAW 메모리에 로딩 되기 전에 파일에 offset 입니다. 파일에는 RAV 값이 주로 적혀 있기 때문에 메모리에 로딩된 값이 파일에 어디 있는지 찾기 위해서 이번과 같은 RAW , RAV 변환 지식 이 필요합니다. 일단 SECTION HEADER 의 정보가 필요 합니다. 그리고 우리는 같은 SECTION 의 코드 중 RVA값이 들어 있는 중 1개가 메모리에 로딩..
windows 10 에서 PE 헤더 Image Base 와 ollydebug windwos 10에서 올리 디버거를 사용하여 프로그램을 디버깅 할때 PE 헤더에 라고 하지만 올리 디버거 표현시 310000 을 Base Image 로 잡고 거기에 text 세션 RVA (1000)를 더한 311000 을 을 코드로 잡으므로 310000 올리 디버거에서 = 400000 으로 인식 하는데 현재 이유는 모르지만 모든게 매칭 됩니다. 추후 리버싱할때 exe 파일의 Base Image 를 310000 으로 하고 계산 하여야 됩니다. 추가 해당 내용와 관련된 내용 http://reverserslab.tistory.com/17
PE 헤더 분석 (2) MS-DOS Stub Program 쪽 헤더는 별 의미가 없으니 넘어가겠습니다. IMAGE_NT_HEADER 의 구조체 부터 보겠습니다. typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader;} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; Sigmature 는 PE Header 의 시작을 알려 줍니다. 0x00000450 이죠 . 그 다음에 typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDa..
PE 헤더 분석 (1) PE (Portable Excutable) 포맷은 윈도우에서 사용되는 실행 가능한파일 형식을 말합니다. 하나의 실행파일을 다양한 운영체제에서 실행할 수 있다는 의미로 ‘이식 가능한 실행파일(PE)’라는 이름이 붙었습니다. 일반적으로 잘 알려진 exe, dll, obj,sys 등의 확장자를 가진 파일들이 여기에 해당되구요. 유닉스의 실행파일 형식인 COFF(CommonObject File Format)을 기반으로 만들어졌습니다. PE를 구성하는 요소들은 각각 구조체의 형태를 가지고 있습니다. 이런 요소들은 크게묶어 두 부분으로 볼 수 있습니다. 하나는 헤더, 하나는 섹션입니다. PE 구조에서 헤더에는 파일을 실행할 때 맨 처음 시작해야 할 코드의 시작부분에 대한 정보, 프로그램이 구..
오라클에서 사용한 쿼리를 보는 것은 아래 쿼리를 사용해서 확인 하면되요 select * from v$sql 해당 쿼리에서 쿼리 LOAD 시간등 여러가지 정보를 사용하면 됩니다. 하지만 쿼리중 bind 변수 를 사용한 쿼리는 LOAD Time 을 사용해서 프로그램에서 어떠한 쿼리를 사용했는지 추적하기 어렵습니다. 일단 기본적으로 오라클에서 쿼리가 실행 되면 가.SQL 파싱(Parsing)SQL을 실행하면 제일먼저 SQL 파서(parser)가 SQL 문장에 문법적 오류가 없는지 검사(Syntax 검사)문법적 오류가 없다면 의미상 오류가 없는지 검사(Semantic 검사, 오브젝트 존재유무등)검사를 다 마치면, 사용자가 발생한 SQL과 그 실행계획이 라이브러리캐시(프로시저캐시)에 캐싱되어 있는지 확인캐싱되어 ..
Lena Reversing for newbies(기초)(2) Regcode 찾기 입니다. 하면 위와 같이 나옵니다. 그렇다면 해당 키코드를 찾기 위해서 일단 근방의 코드로 가는것이 중요 할듯 합니다. 오른쪽 버튼눌러 >> search for >> ALL referenced text String 을 해서 해당 문구의 코드로 가보겠습니다. 코드 위로 가보면 JE 로 분기 구분이 있습니다. 그리고 분기구문 위에 분기 구문을 위해 vbaStrCmp 함수가 있습니다. I'mlena151 이라는 문구와 비교 하는것이고 그결과로 JE 구문을 하는것이네요 그러면 결국 Regcode 는 I'mlena151 이네요 . 구조와 원리를 알면 간단히 풀수 있는 문제 였네요 .
Lena Reversing for newbies(기초) 이번 강좌는 Lena 라는 사람이 초보유저를 위해서 올려 놓은 크랙 파일입니다. 1단계 목표는 위의 메세지를 없애는 것입니다. 그럼 ollydbg 로 실행 해 보겠습니다. 일단 F9를 눌러 start 코드 까지 가보겠습니다. 일단 이파일은 F9로 전진 하다 보면 00401162 $- FF25 64514000 JMP [] ; MSVBVM50.ThunRTMain 을 보니 visual studio 로 작성된것임을 알수 있습니다. 그럼 여기서 우리는 메세지 박스를 없애기 때문에 코드 에서 msgbox 을 사용 했을것으로 유추 하고 ollydebug 에서 오른쪽 버튼을 눌러 Search for - All intermodular calls 명령을 사용 하겠습니..
cdecl,stdcall,fastcall 함수 호출 규약 해당 규약들은 c언어,C++ 기타 등등이 컴파일 이후에 cpu가 알수 있는 asm 언어로 변환을 합니다. 이러한 변환 과정에서 함수를 부르는 쪽에서 stack을 정리 할지 함수에서 stack을 정리 할지에 대한 규약 입니다. 이전에 리버싱강의 에서 함수 들에서 인자값 들을 stack 을 통해서 받았던것을 알수 있습니다. 그 이후 함수가 return 할때 자신을 호출 했던 함수 쪽으로 stack을 원복 해줘야 합니다. 예를 들면 main() 함수 안에서 add() 함수를 호출 했을때 Caller(호출자) -- mainCallee(피호출자) -- add 라고 정의 됩니다. cdecl 은 caller(호출자) 에서 stack을 정리하는것을 말하는 규약 ..