CreateMutex
까보면 다나와~
유용한 지식 자료들 (89)

리눅스에서 SSD

http://our-psychommunity.com/blog/lazyman/29


1. 파일시스템 선택 - 저널링없는 ext4

오래된 SSD+Linux 가이드는, 드라이브의 수명을 늘리기 위해서 ext3/ext4 같은 저널링 파일 시스템의 쓰기 낭비를 피하는, ext2 파일 시스템을 추천한다. TRIM 지원이 나타나면서 ext2는 최고의 선택이 아니게 되었다. TRIM 명령은 ext2 파일시스템에서 돌아가지만, 두개의 단점이 있다.

   1. Ext2는 오프라인 TRIM만을 지원한다 - 다시 말하면, 파일시스템을 읽기전용으로 마운트해야한다.
   2. hdprm 이나 hdprm의 랩퍼 스크립트인 wiper.sh 을 사용해서 TRIM 명령어를 직접 실행해야한다.

ext4 파일시스템은 이러한 제한이 없다. ext4 파일시스템에서 저널링 기능을 끌수있게 되면서 ext2 보다 더 나은 선택이 되었다. 저널이 없는 파일시스템은 깨끗이 언마운트되지 않으면(예를 들어, 전원이 갑자기 나갔을 경우) 데이터 손실이 더 쉽다는걸 확실히 알아야 한다. 하지만 이 글을 읽은 이후에는, 드라이브의 수명을 늘리기 위한 기회를 얻을 수 있을 것이다.

ext4의 저널을 어떻게 끌 것인가? 첫번째, 저널의 제거는 파일시스템이 마운트된 상태에서는 할 수 없다. 운영체제가 포함된 드라이브의 저널을 끄려면, 다른 드라이브로 부팅하는게 필요하다. 난 Arch Linux를 사용하고, 우분투 라이브 CD 같은 Arch 인스톨 디스크로 작업했다. 파일시스템 변경 툴의 필요성이 표준 이슈가 되면서, 여러 리눅스 라이브 배포판으로 작업 가능하게 되었다.

다른 디스크로 부팅 했으면, 터미널을 열고 루트 권한을 얻거나 sudo를 사용해 명령어를 입력해라.  저널을 제거하기를 원하는 ext4 파티션이  /dev/sda1 이라고 가정하고, 아래에 따라 작업한다.
명령어:
tune2fs -O ^has_journal /dev/sda1
그리고 나서 파일시스템 검사를 돌리는게 좋다.
e2fsck -f /dev/sda1
두 번째 단계를 완료 하지 않으면 파일 시스템이 마운트 되지 않는다는 보고를 몇개 봤다. 그러니까 건너띄지 말자. 여러분은 SSD를 가지고 있고, fsck는 진짜로 빠르게 진행된다.
컴퓨터를 재시작하고, 저널이 꺼진 ext4 파티션이 포함된 SSD로 부팅하자. 터미널을 열고 실행해라
dmesg | grep EXT4
모든게 잘 됐다면 부팅 과정에서 아래 메시지를 보게 될거다.
EXT4-fs(sda1): mounted filesystem without journal
예전처럼 저널을 추가하고 싶으면, 위 단계를 실행해라. 단, tune2fs 명령에서 caret(^) 을 빼고 나서.

2. TRIM 지원 켜기

TRIM 지원이 없으면, SSD는 결국 엄청 느려질 꺼다. 근본 원인은 SSD가 쓰는 것보다 더 큰 블록 데이터를 지운다는 사실이다. TRIM없이 데이터를 지웠을때, 드라이브 펌웨어는 캐쉬로 전체 블록을 복사하고, 전체 블락을 지우고, 삭제된 데이터를 뺀 캐쉬의 내용을 쓴다. - 블록의 모든 데이터가 파일시스템에서 지워졌다고 표시가 되어있더라도 말이다. TRIM이 있다면, 운영체제는 블록이 파일시스템에서 삭제 된 시점에, free로 표시됐다고 드라이브에게 전달할 수 있다. SSD는 TRIM 지원 펌웨어 발표를 시작할꺼고, 리눅스 커널은 2.6.33 부터 TRIM 지원을 추가하기 시작했다.

처음에 실행중인 커널이 TRIM 지원을 하는지 확인하자. 다음을 실행해라
uname -a
커널 버전 숫자를 봐라. 2.6.33 이거나 더 높으면 커널은 TRIM을 지원할꺼다. 어떤 배포판은 *어쩌면* TRIM 코드를 이전 커널에 집어넣을 수도 있지만, 그런 거까지 조사해본 적은 없다.
다음은, hdparm 명령을 사용해 드라이브가 TRIM을 지원하는지 확인해라. SSD가 /dev/sda1이라고 가정하고 명령어를 넣는다.
hdparm -I /dev/sda
드라이브 기능 목록이 출력될꺼다. 드라이브에서 기능이 지원되는 걸 표시하기위해 * 가 같이 나온다. TRIM이 지원되면 아래줄처럼 보일꺼다.
* Data Set Management TRIM supported
(줄의 시작에 * 표시를 확인해라. 기능을 지원한다는 뜻이다.)
커널과 드라이브가 TRIM을 지원한다고 가정하고, 위에 설명한 ext4 파일 시스템을 사용중이면 /etc/fstab 파일에 “discard” 옵션을 추가하는 걸로 켤 수 있다. ext4 파일시스템을 사용중인 줄을 보고 바꿔라.
이거에서:
/dev/sda1 / ext4 defaults
이걸로:
/dev/sda1 / ext4 discard,defaults
물론, 파티션하고 마운트 지점하고 기존 옵션은 다를꺼다. 요점은 “discard” 옵션을 네번째 행에다가 추가하는 거다. 새로 수정한 fstab파일을 테스트하려면, 루트 권한으로 실행해라:
mount -oremount /dev/sda1
그리고 실행해라
mount
그러면 마운트된 모든 파일시스템이 옵션이랑 같이 보일꺼다. 위의 예제를 사용하면,  작업 중에 알게 된 “discard”옵션을 찾게 된다.
/dev/sda1 on / type ext4 (rw,discard)

3. 스왑을 위해 무엇을 할 것인가

스왑 공간은 SSD를 사용할 때, 미묘한 문제가 있다. 평균 시스텝의 메모리가 수기가 바이트가 되면서  스왑의 필요성이 감소했다. 예로, 난 2GB 메모리를 가지고 여러 가상머신을 돌리고, 기본적인 웹브라우징과 ssh 세션으로도 다 쓰지 못한다. 하지만 여러분의 컴퓨터가 최대절전모드를 사용한다면, 스왑공간은 적어도 시스템의 메모리보다 같아야 한다. 최대 절전모드 중에는 메모리의 내용을 스왑공간에 보관하기 때문이다.

스왑 공간을 가지고 있다면, 시스템의 “swappiness” 파라미터를 변경하는걸 추천한다. Swappiness는 0부터 100까지 숫자이며, 리눅스가 메모리에서 디스크의 스왑 공간으로 데이터를 얼마나 적극적으로 이동 시키는 지를 나타낸다. 숫자가 높으면, 시스템이 메모리 부족시에 스왑으로 이동하는 것을 더욱 선호한다.

현재 swappiness 설정을 보려면,
/proc/sys/vm/swappiness 파일의 내용을 보면 된다.
cat /proc/sys/vm/swappiness
SSD를 사용할때, 나는 swappiness를 항상 1로 설정했다. 스왑공간이 있지만, 가장 까다로운 상황을 빼고는 절대 사용하지 않을것이다. 다시말하면, 이것은 쓰기 회수를 줄여 디스크의 수명을 늘이자는 것이다. swappiness 값을 변경하려면
/etc/rc.local 파일에 아래 줄을 추가해라.
echo 1 > /proc/sys/vm/swappiness
/etc/rc.local 은 시스템 시작시, 다른 모든 초기화 스크립트가 실행된 후에 실행되는 파일이며, 다른 초기화 스크립트 안에 적용되지 않는 최적화를 위해 관리자가 사용하는 것이다.

다른 최적화들...

나머지 팁들은 여러 사이트에 돌아다니는 것들이다. 내 경우엔 잘 작동해서 추가한다.

4. noatime 옵션을 가지고 파일시스템을 마운트하자.

스텝2에서 /etc/fstab 에 “discard” 옵션을 추가한것 처럼, “noatime”옵션을 추가하면 된다. “noatime”을 사용하는 것은, 리눅스가 파일과 디렉토리에 마지막 접근 시간을 갱신하는 것을 막기 위해서다. 드라이브의 수명을 늘리기 위해 쓰기 회수를 줄이고, 약간의 성능 향상도 가져온다. 2단계에서 작업한 것과 같은 파티션을 사용 중이면, /etc/fstab의 그 줄을 
이거에서
/dev/sda1 / ext4 discard,defaults
이걸로 바꾸자.
/dev/sda1 / ext4 noatime,discard,defaults
2단계와 같은 방법으로 fstab파일을 테스트해라. mount 명령어와 -oremount 옵션을 사용한걸 기억하자.
참고: ext2, ext3, ext4 파일시스템에서도 “noatime”옵션 사용이 가능하다.

5. noop 디스크 스케줄러를 사용하자

리눅스는, 디스크를 다루기 위해 읽기 순서와 쓰기 요청을 결정할 책임이 있는 ,몇가지 다른 디스크 스케줄러를 가지고 있다.  noop 스케줄러를 사용하는 것은, 리눅스가  데이터들이 디스크의 물리적인 위치 어디에 놓여 있는지를 전혀 고려하지 않고, 받은 순서대로 요청을 처리하는 간단한 방식을 적용하는 걸 의미한다..
시스템이 사용중인 스케줄러를 보려면
/sys/block/sda/queue/scheduler 의 내용을 보면 된다.
cat /sys/block/sda/queue/scheduler
대괄호 안에 있는게 현재 사용중인 스케줄러다.
[noop] deadline cfq
noop 스케줄러를 사용하도록 하려면
/etc/rc.local 파일에 아래 줄을 추가해라.
echo noop > /sys/blocks/sda/queue/scheduler
그건 그렇고, 리눅스에서 적용할 수 있는 다른 스케줄러를 살펴보려면, 리눅스 매거진의 이 기사를 확인해라.

6. 파이어폭스의 캐쉬를 tmpfs로 옮기자.

대부분의 사용자는, 파이어폭스를 사용하는 것이 디스크 활성화의 가장 큰 비율의 원인이 된다.  디스크의 쓰기 회수를 줄이기 위해서, 캐쉬를 tmpfs 파일시스템으로 옮길 수 있다.  브라우저의 캐쉬는 디스크를 거치지 않고, 물리적인 메모리에(RAM) 저장된다. 물론, 리부팅하면 사라지지만, 대부분의 사람은 그것을 신경쓰지 않을 것이다.
tmpfs 파일 시스템을 만들기 위해 /etc/fstab 파일을 한번 더 수정해야 한다. 아래 줄은 시스템의 /tmp 디렉토리를 tmpfs로 변환시킨다.
none /tmp tmpfs defaults 0 0
재부팅 후에, mount 명령어를 사용해서, 수정사항이 아래 줄처럼 작업되었는지 확인해라.
none on /tmp type tmpfs (rw)
tmpfs 가 생성된 것을 확인했다면, 파이어폭스를 열고 주소창에 about:config 를 입력하자. 마우스 오른쪽 버튼을 클릭하고 새로만들기->문자열 을 선택해라. 환경 설정 이름을 “browser.cache.disk.parent_directory”  으로 입력하고, 문자열 값에 "tmp/firefox-cache"를 집어넣자.
*
파이어폭스를 재시작하고 /tmp 디렉토리 안을 살펴보자. 브라우저의 캐쉬가 새로운 위치에 있는지 확인해라.

결론
기존의 하드 드라이브와 SSD 의 기본적인 차이점을 이해하고 있다면, 왜 수정사항이 이치에 맞는지 쉽게 알 수 있다. 추측하자면, 일이년 안에 이런 직접 변경하는 내용은 필요 없을 것이다. SSD는 주류가 될 것이고, 리눅스 배포판들은 여러분들을 위해 미리 설정되어 나올 것이다. 그러나 지금은, 여러분에게 이 가이드가 도움이 되기를 바란다.

Trackback Address >> http://our-psychommunity.com/blog/lazyman/trackback/29



펌이요~...

결론적으로 Vsphere에서는 크게 소용이 없다는..Trim 지원이 안됌

  Comments,     Trackbacks

How to Compile and Install Linux Kernel 3.1 / 3.0 in Ubuntu 11.10, 11.04, 10.10 and 10.04

How to Compile and Install Linux Kernel 3.1 / 3.0 in Ubuntu 11.10, 11.04, 10.10 and 10.04




Here in this post I will explain how to compile and install Linux Kernel 3.0 and Linux Kernel 3.1 in Ubuntu. Linux Kernel 3.0.1 is the latest stable release and you can download it from kernel.org. If you are new to Linux then I strongly recommend you try with Linux Kernel 3.0 and you can later patch it with Linux Kernel 3.0.1. If you don’t like to compile the kernel, then you can directly install the debian packages Click Here.

Fedora users Click Here.

Update: Follow the same steps to compile and install the Linux Kernel 3.1 in your system.

Dependencies

To compile Linux Kernel the following are required to be installed.

  • gcc latest version,
  • ncurses development package and
  • system packages should be up-to date

To install the dependencies run the following commands in terminal and type the password for the user, when prompted.

For gcc

$ sudo apt-get install gcc

For ncurses development package

$ sudo apt-get install libncurses5-dev

After installing the above packages then update your system by running the following command

$ sudo apt-get update && sudo apt-get upgrade

Now download the Linux Kernel 3.0 from kernel.org or by using the below command. If you are trying with Linux Kernel 3.1 / 3.0.7 then just replace the name linux-3.0 with linux-3.1 / linux-3.0.7 in all commands below.

Update

Download the Kernel source from github, no download link available on kernel.org  Click Here for mirror downloads. 

$ wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2

Once the download complete move to the directory where you have downloaded the kernel package “linux-3.0.tar.bz2“. Now extract the tar file to the location “/usr/src/“.

To move to the directory, for example if the downloaded package is in your Downloads directory. Use the below command.

$ cd Downloads/

To extract the tar file run the following command. Type the password for the user when prompted.

$ sudo tar -xvf linux-3.0.tar.bz2 -C /usr/src/

Now move to the directory where the extracted file is, or copy and paste the below command in terminal.

$ cd /usr/src/linux-3.0/

Now you can configure, compile and install Linux Kernel 3.0 in your system. Run the commands one by one and type the password for the user, when prompted.

To Configure

$ sudo make menuconfig

The above command is used to configure the Linux kernel. Once you execute the command, you will get a pop up window with the list of menus and you can select the items for the new configuration. If your unfamiliar with the configuration just check for the file systems menu and check whether ext4 is chosen or not, if not select it and save the configuration. Check the screen shot below for menuconfig.

If you like to have your existing configuration then run the below command.

$ sudo make oldconfig

There are other alternate configuration commands are available and you can find them in README file under linux-3.0 directory.

To Compile

$ sudo make

The above command is used to compile the Linux Kernel. It will take some time to complete it, approximately 40 min to 50 min it depends on your system configuration.

To Install

$ sudo make modules_install install

The above command will install the Linux Kernel 3.0 into your system. It will create some files under /boot/ directory and it will automatically make a entry in your grub.cfg. Check whether it made correct entry and check for the files it created.

The files under /boot/ directory are,

  • System.map-3.0.0
  • vmlinuz-3.0.0
  • initrd.img-3.0.0
  • config-3.0.0

If you unable to find the initrd.img-3.0.0 file then create it. Run the below command to create it.

$ sudo update-initramfs -u -k 3.0.0

Update

If the above command unable to update / generate the initramfs then run the following command to create new initramfs.

$ sudo update-initramfs -c -k 3.0.0

Your grub.cfg file should be like the screen shots(example) below if not edit it.

For Linux Kernel 3.0

For Linux Kernel 3.0.1

To modify the grub.cfg under “/boot/grub/” directory. Open the file using below command.

$ sudo gedit /boot/grub/grub.cfg

After modifying your grub.cfg, update your grub by running the following command.

$ sudo update-grub

Restart your system by default it will boot in Ubuntu 3.0.0, you can able to see while booting. To check after booting open a terminal and type “uname -r“. Check the screen shot below.

Hope this will be helpful for you!!!

출처 : http://www.howopensource.com/2011/08/how-to-compile-and-install-linux-kernel-3-0-in-ubuntu-11-04-10-10-and-10-04/ 

  Comments,     Trackbacks

PPT 활용에 대한 네이버 카페.
정말 대단한 사람들 많다~
http://opencast.naver.com/PT827/33/flow  
  Comments,     Trackbacks

IRP_MJ_QUERY_SECURITY ?

IRP_MJ_QUERY_SECURITY ?

보안정보를 가져올 때 사용하는 함수이다. 봇에서 후킹을 하는 데, 알아보기엔 시간이...

http://msdn.microsoft.com/en-us/library/windows/hardware/ff549298(v=vs.85).aspx


Anti AV 관련한거로 추측해봅니다만, 누구 악성코드에서 왜 사용하는지 알려주세요.
plz, let me know why they are using.
  Comments,     Trackbacks

CPU Register - Trap Flag
Trap Flag가 설정되었을 경우(디버거에서)
1. JMP 명령이 실행되지 않는다.
2. CAll 명령을 수행할 때 Step into를 해도 Step over가 실행된다.
3. Run(F9)을 실행하면 Trap Flag가 0으로 셋팅

또 뭐가 있을지~
  Comments,     Trackbacks

리눅스 시스템(Linux)에서 Windows, VirtualBox 파일공유(shared folders)

1. Guest OS 설치가 완료되면 Setting - Shared Folders를 클릭 


2. 우측에 +를 클릭해서 원하는 폴더와 이름을 지정, Auto-mount, Make Permanent 체크


3. OS 부팅하면 새로 생성된 Guest OS창에서 Devices라는 메뉴가 있는데 거기에서 install Guest Additions를 클릭


4. 설치완료 한뒤 재부팅(자동)하면 공유된 폴더에 접근 가능


 

  Comments,     Trackbacks

안티 디버깅(anti-debugging) 기법들

API BASED ANTI-DEBUGGING

A. IsDebuggerPresent

B. CheckRemoteDebuggerPresent

C. OutputDebugString

D. FindWindow

E. Registry Key

F. NtQueryInformationProcess (ProcessDebugPort)

H. NtSetInformationThread Debugger Detaching

I. Self Debugging with DebugActiveProcess

J. NtQueryInformationProcess (ProcessDebugObjectHandle)

K. OllyDbg OutputDebugString() Format String

L. SeDebugPrivilege OpenProcess

M. OllyDbg OpenProcess String Detection

N. OllyDbg Filename Format String

 

 

DIRECT PROCESS AND THREAD BLOCK DETECTIONS

A. IsDebuggerPresent Direct PEB

B. IsDebuggerPresent Set/Check

C. NtGlobalFlag

D. Vista TEB System DLL Pointer

E. PEB ProcessHeap Flag Debugger

F. LDR_Module

 

 

HARDWARE AND REGISTER BASED DETECTION

A. Hardware Breakpoints

B. VMware LDT Register Detection

C. VMware STR Register Detection

 

 

TIMING BASED DETECTIONS

A. RDTSC

B. NTQueryPerformanceCounter

C. GetTickCount

D. timeGetTime

 

 

MODIFIED CODE DETECTION

A. CRC Checking

 

 

EXCEPTION BASED DETECTION

A. INT 3 Exception (0XCC)

B. INT 2D (Kernel Debugger Interrupt)

C. ICE Breakpoint

D. Single Step Detection

E. Unhandled Exception Filter

F. CloseHandle

G. Control-C Vectored Exception

H. Prefix Handling

I. CMPXCHG8B and LOCK

J. OllyDbg Memory Breakpoint

K. VMware Magic Port

'유용한 지식 자료들 > Anti Reversing 기법' 카테고리의 다른 글

가상머신탐지 코드  (0) 2015.12.29
CMPXCHG8B and LOCK  (0) 2011.11.29
Red Pill  (1) 2011.11.29
OpenRCE Anti Reverse Engineering Techniques Database  (0) 2011.11.29
windows-anti-debug-reference  (0) 2011.11.29
  Comments,     Trackbacks

CMPXCHG8B and LOCK
The LOCK prefix in assembly is used to assert a special pin on the processor during the execution of the subsequent instruction.
- 어셈블리의 LOCK prefix는 'subsequent instruction'의 실행동안 프로세서에 특별한 핀을 지정하는데 사용된다.

This pin is used to ensure that the processor is the only processor with access to a shared memory area.
- 이 핀은 프로세서가 공유된 메모리영역에 접근하는 단일 프로세서인지 확인하는데 사용되어진다.

The LOCK prefix is used within multi-processor systems that may be affected by processors simultaneously modifying shared memory segments.
- LOCK prefix는 동시에 공유된 메모리 세그먼트들에 영향을 끼칠지 모르는 멀티 프로세서 시스템들에 사용된다.

There is a small subset of instructions that can legally follow a LOCK prefix.
The CMPXCHG8B instruction is a compare instruction that compares values stored in specific registers with a target memory location. If the destination value matches the source value, the source is moved into the targeted memory location, if not, the destination memory data is loaded into the specific registers.
The CMPXCHG8B and LOCK prefix instructions do not operate properly together. If they are executed in succession an invalid instruction error will be generated. If this code is run under a debugger, the debugger will catch the invalid instruction exception and terminate the running process. However; if no debugger exists, we can trap this exception and continue execution gracefully. To do this we set an unhandled exception filter and then execute the instructions in inline assembly.

void error()
{
MessageBox(NULL, L"No Debugger Detected", L"No Debugger", MB_OK);
return;
}
...
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER) error);
__asm {
__emit 0xf0;
__emit 0xf0;
__emit 0xc7;
__emit 0xc8;
}
  Comments,     Trackbacks

Red Pill
This is another method for detecting VMware

영화 메트릭스에서 네오가 먹은 빨간 알약. 가상현실임을 깨닫게 해준 알약 - Red Pill

RedPill is based on checking the Interrupt Descriptor Table (IDT). NoPill uses
a similar technique, but checks another register, the Local Descriptor Table
(IDT). More info on this can be obtained from Joanna’s webpage31, and in [10].
Both techniques are based on the simple fact that any machine, virtual or
not, will need its own instance of some registers. Systems such as VMware will
create dedicated registers for each virtual machine. These registers will have
a different address than the one used by the host system, and by checking the
value of this address, the virtual system’s presence can be detected.

...

  Comments,     Trackbacks

OpenRCE Anti Reverse Engineering Techniques Database
http://www.openrce.org/reference_library/anti_reversing

  Technique Name Category Analysis By Added On Last Updated
View Details CheckRemoteDebuggerPresent() Windows API Debugging ap0x March 11 2006
View Details Detecting Breakpoints by CRC Debugging halsten July 11 2007
View Details Detecting SoftICE by Opening Its Drivers Debugging halsten July 10 2007 July 10 2007
View Details Detecting SoftICE by searching for the Int 3h in UnhandledExceptionFilter Debugging halsten July 10 2007 July 10 2007
View Details Hardware Breakpoint Detection Debugging ap0x March 17 2006 March 18 2006
View Details INT 2D Debugger Detection Debugging ReWolf March 15 2007
View Details IsDebuggerPresent() Direct PEB Access Debugging ap0x March 11 2006
View Details IsDebuggerPresent() Windows API Debugging ap0x March 11 2006
View Details LordPE Anti Dumping Dumping ap0x March 11 2006
View Details NtGlobalFlag Debugger Detection Debugging ap0x March 11 2006
View Details Obfuscated RDTSC Debugging pedram March 11 2006
View Details OllyDbg Filename Format String Debugging ap0x March 11 2006
View Details OllyDbg FindWindow Debugging ap0x March 11 2006
View Details OllyDbg Instruction Prefix Detection Debugging ap0x March 11 2006
View Details OllyDbg INT3 Exception Detection Debugging ap0x March 11 2006
View Details OllyDbg IsDebuggerPresent Detection Debugging ap0x March 11 2006
View Details OllyDbg Memory Breakpoint Detection Debugging ap0x March 11 2006
View Details OllyDbg NtQueryInformationProcess() OllyDbg Detection Debugging ap0x March 11 2006
View Details OllyDbg OllyInvisible Detection Debugging ap0x March 11 2006
View Details OllyDbg OpenProcess() HideDebugger Detection Debugging ap0x March 11 2006
View Details OllyDbg OpenProcess() String Detection Debugging ap0x March 11 2006
View Details OllyDbg OutputDebugString() Format String Vulnerability Debugging ap0x March 11 2006
View Details OllyDbg PE Header Parsing DoS Vulnerabilities Debugging ap0x March 11 2006
View Details OllyDbg Registry Key Detection Debugging ap0x March 11 2006
View Details OutputDebugString on Win2K and WinXP Debugging RussellOsterlund December 11 2007
View Details PEB ProcessHeap Flag Debugger Detection Debugging ap0x March 11 2006
View Details PeID GenOEP Spoofing Analyzing ap0x March 11 2006
View Details PeID OEP Signature Spoofing Analyzing ap0x March 11 2006
View Details ProcDump PE Header Corruption Dumping ap0x March 11 2006
View Details RDG OEP Signature Spoofing Analyzing ap0x March 11 2006
View Details RDTSC Instruction Debugger Latency Detection Debugging ap0x March 11 2006
View Details Ring3 Debugger Detection via LDR_MODULE Debugging ap0x March 17 2006 March 18 2006
View Details Single Step Detection Debugging ap0x March 17 2006 March 18 2006
View Details SoftIce Driver Detection Debugging ap0x March 11 2006 March 13 2006
View Details SoftIce Registry Detection Debugging ap0x March 17 2006 March 18 2006
View Details SoftIce WinICE.dat Detection Debugging ap0x March 17 2006 March 18 2006
View Details TLS-CallBack +IsDebuggerPresent() Debugger Detection Debugging ap0x March 11 2006
View Details Using the CMPXCHG8B with the LOCK Prefix Debugging halsten July 11 2007

'유용한 지식 자료들 > Anti Reversing 기법' 카테고리의 다른 글

CMPXCHG8B and LOCK  (0) 2011.11.29
Red Pill  (1) 2011.11.29
windows-anti-debug-reference  (0) 2011.11.29
안티안티모니터링을 위한 API  (0) 2011.11.21
Anti Debug 몇 가지 입니다.  (0) 2010.05.12
  Comments,     Trackbacks