본문 바로가기
반응형

모의해킹/리버싱3

[리버싱] 기본 어셈블리 명령어 [리버싱] 기본 어셈블리 명령어 MOV : 데이터를 복사해준다, == 대입의 의미로 봐도 됩니다. 피연산자는 2개가 필요하며, 피연산자의 구분은 , 로 합니다. 첫번째 피연산자는 제 1피연산자, Destination 오퍼랜드라고 한다. 두번째 피연산자는 제 2피연산자, Source 오퍼랜드라고 한다. Source 오퍼랜드의 값을 Destination 오퍼랜드에 대입한다. * MOVZX, MOVSX = 소스 오퍼랜드 사이즈보다 데스티네이션 오퍼랜드 사이즈가 더 큰 경우 발생합니다. ZX는 남은 빈공간을 0으로 채워줄 때(부호는 쓰지 않는다는 의미) SX는 소스 오퍼랜드의 최상위 비트에 맞춰서 쓸 때(부호를 쓰겠다는 의미) TIP) 리버싱의 목적은 어셈블리어로 코딩을 하는게 목적이 아니므로, 보고 빠르게 분.. 2017. 7. 29.
[리버싱] 알아야 할 주요 레지스터 [리버싱] 알아야 할 주요 레지스터 ### Register ### 연산 처리 및 번지지정을 도와줌 컴퓨터의 장치들을 제어함. 레지스터들도 종류가 나뉩니다. General Purpose Register (범용 레지스터) : 일반적인 목적으로 쓰임 -EAX : 연산의 결과값이 저장되는 레지스터, 함수의 리턴값이 저장되기도 한다. - EBX : 주소연산 결과값이 저장 된다, 흔하게 사용되지는 아니함. - ECX : 반복의 횟수를 저장 - EDX : EAX 레지스터의 보조역할을 수행한다. 예를들면, 나누기 연산 수행 시 몫은 EAX레지스터에 저장이 되며, 나머지는 EDX에 저장 된다. X는 레지스터를 의미하며 , E는 확장을 의미 한다. 16비트 레지스터에는 E가 붙지 않지만, 컴퓨터가 발전하면서 32비트, 6.. 2017. 7. 29.
[리버싱] 리버싱 사전 지식 [리버싱] 리버싱 사전 지식 선수과정으로는 C언어와 자료구조가 중요합니다. 특히, 자료구조에서는 Stack구조를 잘 알 필요가 있습니다. * 리버싱 정의 = 잘 만들어진 프로그램을 역으로 분석한다. > 프로그램 이란? = 실행 할 수 있는 실행파일 ( .exe 파일) ### 프로그램이 만들어지는 원리 ### .c 파일 > .obj(기계어) - 컴파일 과정 .obj > .exe - 링크 과정(링킹) , 빌드라는 옵션으로 링킹 제공 .exe파일을 역으로 .c 파일로 돌리려고 하면 원래의 .c 파일로 복원이 되지 않습니다. 어섬블리 언어(저급언어)로 나오게 됩니다. 여기서 말하는 저급언어는 사람보다는 컴퓨터에 가까운 언어라는 의미입니다. [CPU] CPU는 크게 4가지로 나뉩니다. 1. ALU 2. Regis.. 2017. 7. 29.
반응형