Security/Assembly

    [어셈블리어] FS Register 를 자세하게 알아봅시다.

    유저모드의 FS레지스터는 현재 프로세서의 TEB(Thread Environment Block)을 가리키고 있습니다. 이는 처음 한 프로세스 내의 처음 생성된 쓰레드부터 0x7ffde000으로 부터 쓰레드가 생성될때마다 4KB씩 감소면서 생성됩니다. 첫번째 쓰레드 : 0x7ffde000 두번째 쓰레드 : 0x7ffdd000 세번째 쓰레드 : 0x7ffdc000 .... 참고로 커널 모드의 프로세스에서는 FS 레지스터는 일반적으로 KPCR(Kernel Process Control Region)이라는 곳을 지칭하고 있는데 이는 XP 같은 경우 0xffdf0000 이라는 친숙한 주소의 값입니다. 물론 OS마다 다르지만 FS의 GDT 정보를 확인하여 KPCR을 찾으시면 되겠습니다. 출처: http://passke..

    [어셈블리어] 헷갈리는 것들 ! 정리

    LODS, LODSB, LODSW, LODSD(Load String Byte, Word, DWord) - ESI가 가르키는 곳에서 지정한 크기(Byte, Word, DWord) 만큼 읽어와 EAX에 복사한다. ESI는 복사한만큼 이동한다. TEST , - 이 연산은 대부분이 과 가 같게 설정된다. 예를들면 TEST EAX, EAX. 이 연산은 논리회로의 AND연산을 수행하지만 결과값을 저장하지 않는다. 단지 EAX=0일경우 ZF=1이 되고 EAX!=0일경우 ZF=0이 된다. 그리고 OF, CF는 0이된다. PUSHAD EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP 레지스터의 값을 스택에 PUSH한다.저장순서는 EAX > ECX > EDX > EBX > ESP > EBP > ESI ..