리버싱 분석 환경 차이점
Hacking & Security/Reversing2019. 10. 17. 03:51리버싱 분석 환경 차이점

리버싱 분석 환경 차이점 - OS, Architecture, Language에 따라 차이점을 보인다. Byte Order(바이트 정렬) - 윈도우 에서는 Little Endian을 쓰고 네트워크에서 데이터를 보낼 경우 Big Endian방식을 쓴다. Data Type별 크기 Ex) Char(Charcharacter) 형 자료형 - C언어 에서는 ACSIIcode 값을 사용하므로 1byte이다. - JAVA언어 에서는 Unicode 값을 사용하므로 2byte이다. Alignment 단위 - 데이터의 기본 저장 단위가 서로 다르면 저장하는 방식이 서로 달라진다. Calling Convention(함수 호출 규약) - 함수 호출 규약이 언어마다 다르다. (C언어: __cdecl, Window Programmi..

어셈블리 명령어 정리 (2)
Hacking & Security/Reversing2019. 10. 16. 12:34어셈블리 명령어 정리 (2)

LEA(Load Effective Address) - 두 번째 Operand 주소를 계산하고 첫 번째 Operand에 저장한다. - []연산자를 제외하고 두 번째 Operand로 Expression이 허용이 되지 않는다. - MOV eax, edx+4: MOV에 + 연산을 사용 할 수 없다 - MOV eax, [edx+4]: []는 포인터 역할을 하므로 edx의 주소 + 4 가된다 *(edx + 4) - LEA eax, [edx+4]: edx+4 값을 eax에 저장하는 의미이다. edx + 4 SCAS(SCAn String) - AL / AX / EAX에 저장되어 있는 값과 EDI가 가르키는 곳에 저장되어 있는 값을 비교한다. (EAX 값 EDI 주소 값) - 0개에서 2개까지 피연산자를 쓸 수 있다. ..

어셈블리 명령어 정리 (1)
Hacking & Security/Reversing2019. 10. 16. 01:08어셈블리 명령어 정리 (1)

MOVE 명령어 MOV(MOVe data) - Source operand의 내용을 Destination operand로 데이터를 복사한다. (두 번째 피연산자의 주소로 참조되는 데이터를 첫 번째 피연산자 주소로 전송한다.) - Destinarion operand의 내용은 변하지만 Source operand의 내용은 변하지 않는다. - 메모리를 참조하는 피연산자들의 크기가 반드시 일치해야 한다. (두 피연산자의 크기가 모두 바이트, 워드, 더블 워드여야 한다.) text:00401023(16진수) - [ebp+var_C]: Destinarion operand: 공간이 와야 한다. - 0Ah: Source operand: 값, 공간이 와야 한다. text:00401027 - ebp + var_4: 주소 +4..

레지스터(Register) 개념, 종류
Hacking & Security/Reversing2019. 10. 15. 04:21레지스터(Register) 개념, 종류

레지스터(Register) - CPU(Central Proceessing Unit)가 요청을 처리하는 데이터의 임시저장 공간이다. - 레지스터는 공간은 작고 가격은 비싸지만 CPU에 직접 연결되어 있어서 연산 속도가 RAM, HDD, SDD 보다 빠르다. - CPU는 자체적으로 데이터를 저장할 수 없으므로 레지스터를 이용하여 연산처리 및 번지 지정을 도와준다. - 컴퓨터 장치들을 제어한다. 범용 레지스터(General Purpose Register) - 위 그림은 레지스터의 크기를 나타낸 그림이다. - EAX레지스터를 예를 들면 EAX, AX, AH, AL은 모두 다른 레지스터가 아닌 EAX레지스터에서 분할된 레지스터의 이름이다. - 알파벳 EAX 중 16byte를 통해 AX레지스터로 접근이 가능하고 A..

반응형
image