반응형

PC리버싱/(구)기초 18

진짜 간단한 리버싱의 기초

리버싱은 사실상이렇다 책이있다 그책안에 내용을이해하는것이다 물론 그책은 우리가 읽지않은책이다 그책을 읽기위해 우리는 문자를 읽을수있었야한다 책안에 내용들은 여러용도들로 나누어서 분해되어서 내용이 저장되있고 서로 서로 맞물려서 작동한다 이제 옆에있는 책안에 글자를읽을수있다 하지만그책은 그림책이었다 그림도 함꼐읽을수있다 그림은 책에 내용을 더쉽고 어떻게진행되는지 알려준다 총정리하자면 리버싱은 책읽는것와 비슷하다 하지만 그책안에 문자들은 각각규칙있고 우리가 최소한그규칙을 알면 읽기편하다 그림들로 스토리의구성을 알수있다 문자들로 그안에 내용을 저장해서 보여줄수있다

오버플로우레지스터에대하여

오버플로우 플래그가 on 되는 바이너리/정수 연산도 두개다 : 1. 두 수의 합으로 부호 비트가 on 되었을때, "오버플러우" 플래그가 on된다. 0100 + 0100 = 1000 (overflow flag is turned on) 2. 두 수의 합으로 부호 비트가 off 되었을때, "오버플로우" 플래그가 on 된다. 1000 + 1000 = 0000 (overflow flag is turned on) 다른 경우, 오버플로우 플래그는 off 됨. * 0100 + 0001 = 0101 (overflow flag is turned off) * 0110 + 1001 = 1111 (overflow flag is turned off) * 1000 + 0001 = 1001 (overflow flag is turne..

플래그(상태) 레지스터

플래그 기호이름의미 Z 제로 플래그 연산 결과가 0일 경우에 참이 된다. C 캐리 플래그 부호 없는 숫자의 연산 결과가 비트 범위를 넘어섰을 때 참이 된다. A 보조 캐리 플래그 연산 결과 하위 니블(4bits)에서 비트 범위를 넘어섰을 때 참이 된다. 이진화 십진법(BCD) 연산에 사용된다. V / O / W 오버플로 플래그 부호 있는 숫자의 연산 결과가 비트 범위를 넘어섰을 때 참이 된다. N / S 네거티브 플래그, 사인 플래그 연산 결과가 음수일 때 참이 된다. I / E 인터럽트 플래그 이 플래그가 참일 경우에만 인터럽트 요구를 받아들인다. 일반적으로 관리자 모드에서만 값을 변경 할 수 있다. P 패리티 플래그 연산 결과에서 1로된 비트의 수가 짝수일 경우 참이 된다. D 디렉션 플래그 문자열 ..

레지스터

레지스터는 다시 목적에 따라서 범용 레지스터, 세그먼트 레지스터, 플래그 레지스터, 인스트럭션 포인터로 구성된다. 범용 레지스터는 논리 연산, 수리 연산에 사용되는 피연산자, 주소를 계산하는데 사용되는 피연산자, 그리고 메모리 포인터가 저장되는 레지스터 세그먼트 레지스터는 code segment, data segment, stack segment 를 가리키는 주소가 들어있는 레지스터 플래그 레지스터는 프로그램의 현재 상태나 조건 등을 검사하는데 사용되는 플래그들이 있는 레지스터이다. 인스트럭셕 포인터는 다음에 수행해야 하는 명령이 있는 메모리 상에 주소가 들어가 있는 레지스터 이다. 위 의 그림은 일반적 시스템의 프로그램 레지스터 구성이다. 위의 그림은 범용 레지스터의 구성이다. 그림을 보면 알겠지만 전..

세그먼트 레지스터

어셈블리 코드를 보다보면 DS:[EAX], SS:DWORD PTR[EBP-4] 뭐 대강 이런식으로 DS:, CS:, SS: 이런 부분들을 자주 볼수있다. 이것들의 정체는 세그먼트 레지스터로 16비트인데 페이징이 없던시절, 메모리 영역 관리/분리 등을 위해서 사용되었다. 먼저 real mode 상에서는 주소지정이 세그먼트:오프셋 방식으로 이루어진다. 이 말은, CS:0x1234 이런식으로 메모리 주소가 표현된다는 것인데 여기서 세그먼트 레지스터는 16비트이므로 65536 개의 세그먼트 영역이 존재할 수 있다. 한 세그먼트는 16바이트(4비트공간)의 크기를 갖는다. 즉 CS 가 0xAAAA 라면 선형주소에 더해지는 값은 0xAAAA0 이 된다. 뭔가 계산이 깔끔하지않고 더럽지만 아무튼 이렇다. 세그먼트값을 ..

dnspy 간단 사용법

Debug용 단축키 설명 단축키기능 F5 Start Debugging Ctr + F5 Start without debugging F9 BreakPoint Ctr + Shift + F5 Restart Alt + Num * 현재 작동중인 위치로 이동 F10 Step Over F11 Step Into Shift + F11 Step Out Ctr + Shift + F9 Delect All BreakPoint Ctr + Alt + P Attach to Process Ctr + Alt + C View Call Stack Ctr + Alt + H View Threads Ctr + Alt + U View Modules Ctr + Alt + Z View Processes Ctr + 6 View Memory 1 Alt +..

리버싱 도구들에관하여 개인적인생각

디버거류 1 올리디버거 장점안정성및 가장많은 자료가 저장되있다 단점 새로나온디버기들에비해 기능이조금부족해졌다 2IDA 장점 그래픽뷰 기타등등 아이다기능들은 편리하고 범용성이좋다 단점 로딩느려 3x64dbg 장점 업데이트를하고있고 올디랑은다르게 계속기능들이업되고있다 단점 아직 자료들이 조금부족한 경향이있지만 이건 시간이 해결할것이다 4windbg 장점 안써봄 단점 안써봄 5dnspy 장점 디컴파일과 디버거가 같이있다 단점 아직모르겠다 6ilspy 장점 컴파일이잘된다 단점 아직모르겠다 7.net reflector 장점 컴파일이잘된다 단점 안될떄도있고 유로다 pe 해더분석툴들 1peid 2exeinfope 난독화해제 de4dot 핵파일분석용 비교분석툴 winmerge 기타쓰는툴들 notepad++ hxd

반응형