Anti Game hacking 프로그램의 구현.


Anti Game hacking 프로그램의 구현.



작성자 : Dual5651 (dual@null2root.org) in Null@Root

소개

 이번 글에서는 그 시점에서 알게된 Anti GH 프로그램이 갖추어야할 기능이 무엇
이며, 그 기능의 구현에 필요한 코드와 그 기능의 존재하는 약점등에 대해서 다루어
보고자 합니다. 이 글의 구성은 다음과 같습니다.

1. Anti Game Hacking 프로그램에 필요한 기능들.
2. Anti Game Hacking Program 구현에 필요한 코드들.


1. Anti Game Hacking 프로그램에 필요한 기능들.

 Anti GH 프로그램은 어떤 기능들이 필요할까요?

1. (Binary /Data File) Packing / Encrypting

2. GH Program Detecting

3. AutoPlay Blocking

4. Message Hooking Blocking

5. Unauthorized memory access Blocking

6. Debugging Blocking

7. SpeedHack Blocking

8. Integrity Checking

9. System descriptor restoring

 첫번째로 필요한 기능으로써, 실행파일 및 데이터 파일의 압축 또는 암호화
들 수 있습니다. 이 부분에 대해선 다른 의견을 가지고 있는 분들도 많은거 같습니다.
이런 분들의 주장에 근거로는 패킹 및 인크라입팅에 의존하면, 프로그램 자체의
Secure Coding이 약해지고, 대부분 이러한 패킹 및 인크라입팅은 범용적으로
사용되는 상용프로그램일 가능성이 높음으로, 풀릴(뚫릴 - 그만큼 공략하는 사람도
많기 때문에) 가능성도 높으며, 이로 인한 결과는 상상이상으로 치명적일 것이기
떄문입니다. 그럼에도 불구하고, 최근 실행파일의 패킹을 하지 않은 프로그램을
더 찾기 힘들만큼 많이 사용되어 지고 있으며, 또 어느정도 첫번째  방어선으로써
기대되어 지는 기능을 하여주고 있습니다.

그렇다면 게임의 데이터 파일들에 대한 패킹 및 인크라입팅은 왜 필요한 것일까요?
최근 Anti GH 프로그램의 도입으로 Memory Hacking이 힘들어지자, 최근 공격자들은
게임의 데이터파일을 조작하는 방식의(고전적이라면 고전적인 방법의) 해킹을 다시
시도하기 시작하였습니다. 실제 2007년도 국내의 어떤 게임에서는 해당 방식에 의한
GH이 이루어지기도 하였습니다.

 두번째로 필요한 기능으로써, 게임해킹 프로그램의 감지를 들 수 있습니다.
최근 가장 많이 쓰이는 GH방식으로 Memory Hacking이 있습니다.
이러한 MH(Memory Hacking)은 공격자 입장에서 Generic Game Hacking Tool
(ex: CheatEngine,Tsearch and so on...)로 우선 대상 Game에 대한 분석을 하고
그 후 그 게임만을 대상으로 하는 게임 트레이너가 나오게 됩니다.
즉, 범용 게임 해킹툴의 완전한 차단은 특정 게임 대상 트레이너의 제작을 막는 방법
이기도 합니다. 물런 이는 반드시 그러한 것은 아니며, 거의 근접한 %의 역활을 할 수
있습니다. 감지하는 방법으로써는 첫번째로 패턴 매칭이 있습니다.
패턴 매칭이란 특정한 GH 프로그램에서 발견되는 문자열이나, 코드배열등을
Anti GH프로그램에서 모든 프로세스에서 찾아 보고, 있다면 GH 프로그램으로
간주하는 방식입니다. 두번째로 Finding Named Object기법이 있습니다.
예를들어,
 hFileMap = CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE,NULL,
  PAGE_READWRITE,0,dwSize,"DUALMEM");

의 경우 처럼, GH 프로그램이 사용되는 시스템 전역에 공유되는 파일맵의 이름이라던지,
GH 프로그램의 창이름, 클레스 이름, 프로세스 이름, 로드되는 드라이버 이름, 뮤텍스,
레지스트리 키등등의 요소등을 검사해보는 방법입니다. 이러한 요소를 확인하는 방법은
sysinternals의 Process Explorer를 이용하여 해당 GH프로그램이 가지고 있는 핸들등
을 통해서 확인하여 볼 수 있습니다.


 세번째로 필요한 기능으로써, 자동 플레이 차단을 들 수 있습니다.
최근 메모리 해킹보다 더 큰 문제로 대두되고 있는 것이, 자동플레이 문제 입니다.
과거에는 '작업장'이라는 이름으로, 빈곤한 국가에서 아동 및 청소년의 노동력을
착취하여 지속적인 게임 플레이를 통한 아이템 획득하여, 이를 판매, 이익을 얻는
방식의 범죄가 존재한 반면, 최근에는 이러한 노동력 착취가 아닌, 자동으로
게임을 플레이 해주는 프로그램 및 하드웨어를 이용하여 자동적으로 플레이 하여,
아이템을 획득, 이를 판매하여, 이익을 얻는 방식으로 변모하였습니다.

최근 단순한 메크로 방식의 자동 플레이 보다 진화된 형태의 두가지 자동 플레이
방식이 등장하였는데,  첫번쨰로 게임 클라이언트와 서버와의 통신 프로토콜등을
분석하여 게임 클라이언트와 똑같은 기능을 하는 클라이언트를 만들어(UI는 없는)
해당 클라이언트에 AI를 붙이어 자동적으로 사냥하게 하는 것입니다.
이 방식으로 접근하게 될 경우, Anti GH프로그램은 올바른 역활을 할 수 없게 되며,
서버측의 입장에서도 올바른 클라이언트와 공격자에 의해 만들어진 오토 플레이용
클라이언트를 분간하는 것도 현재로선, 명확한 방법은 존재하지 않습니다.
또 이 방식의 공격은 2차적인 피해를 낮기도 하는데, 이런 오토 플레이로써 기능을
하다가, 후에는 '프리 서버'라는 이름으로 판매되어, 실제 게임의 플레이어 수를
줄이고, 저작권을 침해하는 범죄가 2차적으로 이어집니다.
두번쨰로 하드웨어 방식의 오토 플레이 입니다. 이는 실제 사용자에 의해 이뤄지는
올바른 입력과 분간하는 것이 힘듭니다. 이를 분간하기 위한 방법으로써, 행동
패턴 기반의 감지방법이나, WMI등을 이용, 하드웨어의 ID를 확인하여 오토 플레이용
하드웨어를 감지하는 방법등이 사용되어 지고 있습니다.

 네번쨰로 필요한 기능으로써, 메시지 후킹 차단을 들 수 있습니다.
공격자는 메시지 후킹을 사용자의 키입력등을 가로 챌 목적으로 사용합니다.
게임의 경우, 키 입력을 가로채어, 아이디와 패스워드등을 알아낸 후,
접속하여 아이템등을 빼가는 등의 범죄에 사용되어 집니다.
현재 존재하는 대부분의 Anti GH 프로그램등은 대부분 기본적으로 유저레벨단의
메시지 후킹을 차단하고 있으며, 이로 인해 최근에는 키로거들도 유저레벨에서
메시지 후킹을 하는 방식이 아닌, 커널레벨에서 필터 드라이버등으로써 키로거
기능을 수행하고 있습니다.

 다섯번쨰로 필요한 기능으로써, 허용되지 않은 메모리 접근차단을 들 수 있습니다.
매시각각 생겨나는 GH 프로그램에 대응한다는 것은 참 힘든일이며,
Private한 GH 프로그램에 대해선 대응하기가 힘들다는 이유에서 이 방법은 Anti GH에
큰 도움이 되는 방법입니다. 게임 및 보호 프로그램의 프로세스에 허용되지 않은
접근을 차단함으로써, Private한 GH 프로그램도 견제할 수 있게 됩니다.
이를 수행하기 위해서 유저레벨에서는 각 프로세스에 Dll을 삽입하여, API를 후킹하게
하고, 커널레벨에서는 NtOpenProcess(), NtRead/WriteVirtualMemory()등의 함수를
후킹하여 프로세스로의 접근을 차단합니다. 그러나 최근 GH 프로그램도 이런 후킹에
대응하기 위하여, 기존의 API를 호출하는 것이 아닌, Pesudo 코드를 사용함으로써,
위에서 말했던 API들로는 충분치 않아, 최근에는 KeAttachProcess() 같은 프로세스
메모리 전환 계열 함수도 후킹대상에 포함되고 있습니다.

 여섯번쨰로 필요한 기능으로써, 디버깅 차단을 들 수 있습니다.
게임을 디버거에게 내준다는 것은, 알몸을 보여주는 것과 같습니다.
그럼으로, 디버거는 어떻게든 차단해야 하는 존재입니다. 디버거를 감지하는
방법으로는 우선 앞에서 말했던 요소들을 혼합함으로써 이루어 질 수 있습니다.
디버거들이 사용하는 API(DebugActiveProcess)같은 프로세스들을 후킹하는
것도 중요하며, 유명한 범용 디버거가 있는지 정기적으로 확인하여, 이들의
창이름, 클레스 이름, 프로세스 이름등 Anti GH프로그램의 두번쨰 기능에서
거론한 요소들로 감지할 수 있으며, 디버거 역시 유저레벨 디버거의 경우
다섯번째 기능으로 차단되며, 커널레벨 디버거의 경우는 반드시 두번쨰 기능을
이용하여 차단되어져야 합니다. 유명한 커널레벨 디버거로써는 SoftIce와
syser가 있으며, 필수적인 차단리스트 입니다.

 일곱번째로 필요한 기능으로써, 스피드 핵 차단을 들 수 있습니다.
공격자 입장에서 생각하기에는 단순히 스피드 핵을 차단하는 이유가 공정성 때문
이라고 생각할지 모르겠지만, 실제적으로 스피드 핵을 차단하는 이유는 공정성
그 이상의 이유가 있습니다. 스피드 핵을 사용할 경우 특정한 기능을 수행하는
루틴의 반복시간에 Gap이 짧아 짐으로써, (Delay시간의 감소) 서버로 유입되는
패킷량 역시 증가되게 됩니다. 만약, 스피드를 정상적인 속도에 10배로 하였다면,
서버로 보내는 패킷량도 10배에 근접하게 된다고 보시면 됩니다. 즉 반드시
차단해야 합니다. 스피드 핵은 두종류가 있는데, 첫번쨰는 GetTickCount() ,
timeGetTime(),QueryPerformanceCounter()등의 시간관련 함수를 후킹하는
방식이 있습니다. 이는 프로세스로의 메모리 접근을 차단함으로써 해결할 수
있는 문제입니다. (사실 메모리 접근을 하지 않고 후킹을 할 수도 있습니다.
-CopyOnWrite 관련) 두번쨰는 시스템의 PIT자체를 줄임으로써, 시스템 시간
전체를 빠르게 돌아가게 하는 방법이 있습니다. 이는 시스템 내부적으론 감지가
힘들게 되며, 서버와의 연동체크를 통해서 감지하는 방법이 있습니다.

 여덟번째로 필요한 기능으로써, 무결성 검사를 들 수 있습니다.
무결성 검사를 하는 이유로는, 만약 게임프로세스 및 보호 프로세스가 패킹이
해제되거나, 변조된 상태에서 실행된다면, Anti GH은 정상적인 기능을 수행할 수
없게 됩니다. 무결성 검사는 보호 프로세스가 시작될떄에, 게임 파일 및 보호
프로세스 자체 파일들에 대하여 우선적으로 이루어져야 하며,
실행 중에도 코드섹션에 대하여 정기적으로 이루어져야 합니다.
이렇게 검사를 수행할 경우, 만약 다섯번쨰 기능이 우회되여, 게임의 메모리나,
게임의 데이터 파일등이 수정되었다고 하여도, 이를 감지할 수 있습니다.

 아홉번째로 필요한 기능으로써, 시스템 디스크립터 복구를 들 수 있습니다.
게임이 시작하기전 시스템의 중요한 디스크립터들(ex: ssdt, idt, and so on)을
복구 하여둠으로써, 꺠끗한 환경에서 게임이 돌아가도록 해야 합니다.
이 작업이 수행되어 지지 않으면, Anti GH 프로그램은 올바른 작동을 할 수 없을
수도 있습니다.


2. Anti Game Hacking Program 구현에 필요한 코드들.

 앞에서는 안티 게임 해킹 프로그램이 갖추어야할 기능들에 대해서 알아 보았습니다.
이번에는 이러한 기능들을 구현하기 위해서 알아야 할 점 및 코드에 대해서 다루어
보도록 하겠습니다.

첫번째로 실행파일 및 데이터 파일의 압축 또는 암호화의 경우 코드의 길이가
짧은편이 아님으로, 관련 링크로 대신하도록 하겠습니다.
http://dual5651.hacktizen.com/tt/entry/Make-your-owner-PE-Protector-Part-1-Your-
first-EXE-Protector

참고 적으로 최근의 게임 EXE 패킹은 더미다 패커가 인기를 끌고 있고,
드라이버의 경우 Code Virtualizer가 인기를 끌고 있습니다.

두번쨰로 게임해킹 프로그램의 감지의 코드는 다음과 같습니다.

프로세스 메모리 영역의 패턴 검사 :

BOOL PatternSearchFromAllProcesses()
{
 char StringDataBase[][30] = {"CheatEngine",
          "AutoPlay",
          "GameHack",
          "Memory Search",
          "TSearch"};
 char szProcess[MAX_PATH] = {0,};
 DWORD ProcessesID[1024];
 char WarningString[MAX_PATH] = "게임 해킹 프로그램 발견 되었습니다.\n게임이 종료 됩니다.\n";
 MEMORY_BASIC_INFORMATION struct_mbi;
 SYSTEM_INFO struct_si;
 HMODULE hMod;
 DWORD dbNeeded,dbNeeded2;
 HANDLE hProcess;
 LPVOID newbuf;
 LPVOID p;
    ULONG ret;
 int cnt;
 GetSystemInfo(&struct_si); //Getting Information to get max,min address
 printf("StartAdr : 0x%x, EndAdr : 0x%x\n",
   struct_si.lpMinimumApplicationAddress,
   struct_si.lpMaximumApplicationAddress);
 for(cnt=0; ;cnt++)    //Counting Pattern
  if(!StringDataBase[cnt][0])
   break;
 
 EnumProcesses(ProcessesID,sizeof(ProcessesID),&dbNeeded); //Get Processes IDs.
 
 for(int i = 0; i < dbNeeded / sizeof(DWORD); i++)
 {
  if((ProcessesID[i] == GetCurrentProcessId()) || ProcessesID[i] == 4) continue; //Do not scan by self
 
  hProcess = OpenProcess(PROCESS_VM_READ|PROCESS_QUERY_INFORMATION,FALSE,ProcessesID[i]);
 
  if(hProcess)
  {
   EnumProcessModules(hProcess,&hMod,sizeof(hMod),&dbNeeded2);
   GetModuleBaseName(hProcess,hMod,szProcess,sizeof(szProcess)); //Get Module Name
   p = struct_si.lpMinimumApplicationAddress;
   
   do
   {
      VirtualQueryEx(hProcess,p,&struct_mbi, sizeof(struct_mbi));
      newbuf = malloc(struct_mbi.RegionSize);
      //Sometimes regionSize makes me crazy!!!
      if(newbuf)
      {
       ReadProcessMemory(hProcess,p,newbuf,struct_mbi.RegionSize,&ret);
       if(ret)
       {
        for(DWORD i = (DWORD)newbuf; i <= (DWORD)newbuf+(DWORD)struct_mbi.RegionSize; i++)
        {
         for(int j = 0; j < cnt; j++)
         {
        if(!strnicmp((char *)StringDataBase[j],(char *)i,strlen((char *)StringDataBase[j])))
        {
         strcat(WarningString,szProcess);
         strcat(WarningString,"프로세스를 종료하신후 다시 실행하여 주세요.\n");
         MessageBox(NULL,WarningString,"해킹 프로그램 발견",MB_ICONSTOP);
         CloseHandle(hProcess);
         ExitProcess(-1);
        }
         }
        }
       }
      }
      free(newbuf);
      *((PDWORD)&p) += (DWORD)struct_mbi.RegionSize;
    }while(p < struct_si.lpMaximumApplicationAddress);
  }
      CloseHandle(hProcess);
 }
 return TRUE;
}


실제로 실행해보면 알 수 있지만, ReadProcessMemory()를 수행하는 것은 꾀 시간을
많이 소요하는 작업입니다. 이렇게 하는 것보다는 Dll을 모든 프로세스에 인젝션 시키신 후,
각 프로세스에 인젝션된 Dll에서 메모리 검사를 하게되면, 같은 프로세스 영역 내임으로,
ReadProcessMemory()도 필요 없으며, 분할처리가 가능해져, 그 속도 역시 빨라 집니다.
Dll을 인젝션 하는 방식의 코드는 별도로 코드를 첨부하도록 하겠습니다.

Finding Named Object기법의 경우는 창이름 이나 클레스 이름은 EnumWindow 함수를
돌면서 GetWindowText(), GetClassName()함수를 이용하여 구하여 비교하는 방식을
쓰면 됩니다. 코드는 다음과 같습니다.

char szWindowDataBase[][30] = {"CheatEngine",
         "AutoPlay",
         "GameHack",
         "Memory Search",
         "TSearch"};
char szClassDataBase[][30] = {"CheatEngine",
         "AutoPlay",
         "GameHack",
         "Memory Search",
         "TSearch"};
int cnt,cnt2;
BOOL CALLBACK EnumWinProc(HWND hwnd,LPARAM lparam)
{
   char szWindow[255];
   char szClass[255];
 
   if(GetParent(hwnd)) return TRUE;
   GetWindowText(hwnd,szWindow,255);
   GetClassName(hwnd,szClass,255);
  
   for(int i = 0; i < cnt; i++)
   {
   if(!strnicmp(szWindowDataBase[i],szWindow,strlen(szWindowDataBase[i])))
   {
  MessageBox(NULL,"게임 해킹 프로그램 발견 되었습니다.\n게임이 종료 됩니다.\n","해킹 프로그램 발견",MB_ICONSTOP);
  ExitProcess(-1);
   }
   }
   for(i = 0; i < cnt; i++)
   {
   if(!strnicmp(szClassDataBase[i],szClass,strlen(szClassDataBase[i])))
   {
  MessageBox(NULL,"게임 해킹 프로그램 발견 되었습니다.\n게임이 종료 됩니다.\n","해킹 프로그램 발견",MB_ICONSTOP);
  ExitProcess(-1);
   }
   }
   return TRUE;
}
BOOL FindBadWindowOrClass()
{
    for(cnt = 0; ;cnt++)    //Counting Pattern
      if(!szWindowDataBase[cnt][0])
           break;
    for(cnt2 = 0; ;cnt2++)    //Counting Pattern
      if(!szWindowDataBase[cnt2][0])
           break;
 EnumWindows(EnumWinProc,NULL);
 return TRUE;
}

프로세스 이름의 경우 EnumWindow 콜백에서 GetThreadProcessId() 함수를 한 후,
OpenProcess() 하여주고, GetModuleBaseName()함수를 이용하여 프로세스 이름을
구하여 확인시켜 주는 방식으로 진행하여 주면 됩니다. 이 코드는 패턴 검사의 코드를
조금 수정하면 됨으로 따로 올리진 않겠습니다. 그 나머지 요소는 GH 프로그램이
사용하고 있는 요소들을 어떻게 확인하는지 Process Explorer를 이용한 예제를 보여드
리 겠습니다.

사용자 삽입 이미지

먼저 위와 같이 Lower panel view를 Handles로 해줍니다.

사용자 삽입 이미지

TSearch에서 사용중인 핸들 목록을 볼 수 있는데요.
위 그림에서 보면, TSearch는 3가지의 독특한 Event를 만드는 것을 알 수 있습니다.
즉, 다음 3가지 중 하나를 선택하여 해당 이벤트가 존재하는지를 확인한다면,
TSearch의 실행여부를 확인할 수 있습니다. 코드는 다음과 같습니다.

BOOL CheckByEventName()
{
 char szEventDataBase[][30] = {
         "User stopped search",
         "Debugger Loaded",
         "TSearch.ServerLoaded"
        };
 HANDLE hEvent;
  for(int cnt = 0; ;cnt++)    //Counting Pattern
      if(!szEventDataBase[cnt][0])
           break;
  for(int i = 0; i < cnt; i++)
  {
 if(OpenEvent(EVENT_ALL_ACCESS,FALSE,szEventDataBase[i]))
 {
    MessageBox(NULL,"게임 해킹 프로그램 발견 되었습니다.\n게임이 종료 됩니다.\n","해킹 프로그램 발견",MB_ICONSTOP);
       ExitProcess(-1);
 }
  }
  return TRUE;
}

뮤텍스를 이용한 확인 방법의 코드는 다음과 같습니다.

BOOL CheckByMutexName()
{
 char szMutexDataBase[][30] = {
         "TSearch",
         "CheatEngine",
         "GameHack"
        };
 HANDLE hEvent;
  for(int cnt = 0; ;cnt++)    //Counting Pattern
      if(!szMutexDataBase[cnt][0])
           break;
  for(int i = 0; i < cnt; i++)
  {
 CreateMutex(NULL,FALSE,szMutexDataBase[i]);
 if(GetLastError() == ERROR_ALREADY_EXISTS)
 {
    MessageBox(NULL,"게임 해킹 프로그램 발견 되었습니다.\n게임이 종료 됩니다.\n","해킹 프로그램 발견",MB_ICONSTOP);
       ExitProcess(-1);
 }
  }
  return TRUE;
}

파일맵을 이용한 방법의 코드는 다음과 같습니다.

BOOL CheckByFileMapName()
{
 char szFileMapDataBase[][30] = {"DUALMEM",
         "TSearch",
         "CheatEngine",
         "GameHack"
        };
 HANDLE hFileMap;
 LPVOID pMapFile;
  for(int cnt = 0; ;cnt++)    //Counting Pattern
      if(!szFileMapDataBase[cnt][0])
           break;
  for(int i = 0; i < cnt; i++)
  {
 hFileMap = CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE,NULL,
      PAGE_READWRITE,0,1,szFileMapDataBase[i]);
 if(GetLastError() == ERROR_ALREADY_EXISTS)
 {
    MessageBox(NULL,"게임 해킹 프로그램 발견 되었습니다.\n게임이 종료 됩니다.\n","해킹 프로그램 발견",MB_ICONSTOP);
       ExitProcess(-1);
 }
  }
  return TRUE;
}

레지스트리, 파일로 확인하는 방법은 어떤 레지스트리나 파일을 쓰는지는 Process
Explorer를 확인하는 것으로 동일하고, 확인은 레지스트리나 파일을 열 떄,
이미 존재하는지 여부만 확인해주면 됨으로 별도의 코드는 첨부하지 않겠습니다.
윈도우즈에 로드되어 있는 드라이버의 목록은 ntdll.dll의
ZwQuerySystemInformation() 를 이용하여 구할 수 있습니다.

참고적으로 위의 핸들목록을 출력하는 기능은 정덕영님의 저서 'Windows 구조와
원리 그리고 Codes'에 나온 코드인 ListHandles라는 코드도 똑같은 기능을 합니다.
코드는 다음과 같습니다.

#include "stdafx.h"
#include "windows.h"
#include <stdio.h>
#include "nativeAPI.h"
BOOL EnablePrivilege(PCSTR name)
{
    TOKEN_PRIVILEGES priv = {1, {0, 0, SE_PRIVILEGE_ENABLED}};
    LookupPrivilegeValue(0, name, &priv.Privileges[0].Luid);
    HANDLE hToken;
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);
    AdjustTokenPrivileges(hToken, FALSE, &priv, sizeof priv, 0, 0);
    BOOL rv = GetLastError() == ERROR_SUCCESS;
    CloseHandle(hToken);
    return rv;
}

int main(int argc, char* argv[])
{
    ULONG pid;
 HANDLE hProcess, hCurrentProcess;
 SYSTEM_HANDLE_INFORMATION  *aHandles;
 ULONG  nHandles, nCount;
 ULONG  *pULONG;
 
 //1. Parameter parsing
    if (argc == 1)
 {
  printf("HELP : ListHandles PID\n");
  return 0;
 }
 pid = strtoul(argv[1], 0, 0);
 //2. Get process handle
    EnablePrivilege(SE_DEBUG_NAME);
    hProcess = OpenProcess(PROCESS_DUP_HANDLE, FALSE, pid);
 hCurrentProcess = GetCurrentProcess();
 //3. Get Handle's Information
    nCount = 100;
    pULONG = (PULONG)malloc(nCount * sizeof(SYSTEM_HANDLE_INFORMATION) + sizeof(ULONG));
    while (ZwQuerySystemInformation(SystemHandleInformation, pULONG,
    nCount * sizeof(SYSTEM_HANDLE_INFORMATION)+ sizeof(ULONG)
    , 0) == STATUS_INFO_LENGTH_MISMATCH)
 {
  free(pULONG);
  nCount += 50;
  pULONG = (PULONG)malloc(nCount * sizeof(SYSTEM_HANDLE_INFORMATION) + sizeof(ULONG));
 }
 nHandles = *pULONG;
 aHandles = (PSYSTEM_HANDLE_INFORMATION)(pULONG + 1);
 
 //4. Print Handle's Information
 printf("Process ID : %x\n", pid);
    for (ULONG i = 0; i < nHandles; i++)
 {
        if (aHandles[i].ProcessId == pid)
  {
   HANDLE hObject;
   OBJECT_BASIC_INFORMATION obi;
   POBJECT_TYPE_INFORMATION pOti;
   POBJECT_NAME_INFORMATION pOni;
   ULONG nTypeName, nObjectName, n;
   if(DuplicateHandle(hProcess, (HANDLE)aHandles[i].Handle,
    hCurrentProcess, &hObject, 0, 0, DUPLICATE_SAME_ACCESS) == FALSE)
    continue;
            ZwQueryObject(hObject, ObjectBasicInformation, &obi, sizeof(obi), &n);
            printf("%p %04hx %3lx %3ld %4ld ",
                   aHandles[i].Object, aHandles[i].Handle, obi.Attributes,
                   obi.HandleCount - 1, obi.PointerCount - 2);
   //Object Type
            nTypeName = obi.TypeInformationLength + 2;
            pOti = (POBJECT_TYPE_INFORMATION)malloc(nTypeName);
            ZwQueryObject(hObject, ObjectTypeInformation, pOti, nTypeName, &nTypeName);
            printf("%-14.*ws ", pOti->Name.Length / 2, pOti->Name.Buffer);
   //Object Name
            nObjectName = obi.NameInformationLength == 0
                ? MAX_PATH * sizeof (WCHAR) : obi.NameInformationLength;
             pOni = (POBJECT_NAME_INFORMATION)malloc(nObjectName);
           
            if (NT_SUCCESS(ZwQueryObject(hObject, ObjectNameInformation, pOni,
       nObjectName, &nObjectName)))
                printf("%.*ws", pOni->Name.Length / 2, pOni->Name.Buffer);
            printf("\n");
   
   free(pOni); free(pOti); CloseHandle(hObject);
        }
    }
    free(aHandles);
    CloseHandle(hProcess);
    return 0;
}


세번쨰로 자동 플레이 차단은 에플리케이션 방식의 오토플레이라면 유저레벨에서
막는방법과 커널레벨에서 막는 방법으로 나뉠 수 있습니다. 사실 후킹하는 시점이
다를 뿐, 실제적으로 차단해야할 API들은 같습니다. 유저레벨에서는 모든 프로세스에
Dll을 인젝션 한 후, 해당 Dll에서 GetPixel(), PostMessageA(), PostMessageW(),
SendInput(), SendMessageA(), SendMessageW(), SetCursorPos(), keybd_event(),
mouse_event() 등의 함수를 차단하여 주어야 합니다.
커널레벨에서는 KeServiceDescriptorTableShadow에 있는 SendInput(),
NtUserQueryWindow(), NtUserBuildHwndList(), NtUserFindWindowEx(),
NtUserGetForegroundWindow(), GetDC(), GetWindowDC() 등의 함수를 후킹해서
처리해 주어야 합니다.  그래픽 관련 함수를 후킹하는 이유는 최근 오토플레이들은
단순한 메크로가 아닌, 픽셀 정보를 읽어온 후, 그에 interact하여 작동하는 방식을
많이 취하기 떄문입니다. 위의 함수들을 모두 후킹하여 처리하여 주면, 에플리케이션
방식의 메크로는 거의 차단된다고 보시면 됩니다. (커널레벨에서의 irp 발생 및
pesudo 코드 사용등 예외는 존재합니다.)

네번쨰로 메시지 후킹 차단은 커널단에서 비교적 강력하게 구현될 수 있는데,
메시지 후킹은 SetWindowHookEx()를 이용해서 이루어 지는데, 운영체제 내에서는
다음과 같은 구조체로 관리 되어 집니다.
#define CWINHOOKS       (WH_MAX - WH_MIN + 1)
typedef struct tagPROCESSINFO * PPROCESSINFO;
typedef struct tagDESKTOP * PDESKTOP;
typedef struct tagDESKTOPINFO * PDESKTOPINFO;
typedef struct tagTHREADINFO * PTHREADINFO;
typedef struct tagHOOK * PHOOK;
typedef HWND * PWND;
typedef struct _HEAD {
//    KHANDLE h;
 DWORD   h;
    DWORD   cLockObj;
} HEAD, *PHEAD;
typedef struct _THROBJHEAD {
    HEAD a;
    PTHREADINFO pti;
} THROBJHEAD, *PTHROBJHEAD;
typedef struct _DESKHEAD {
    PDESKTOP rpdesk;
//    KPBYTE   pSelf;
 PVOID    pSelf;
} DESKHEAD, *PDESKHEAD;
typedef struct _THRDESKHEAD {
    THROBJHEAD a;
    DESKHEAD b;
} THRDESKHEAD, *PTHRDESKHEAD;
typedef struct tagHOOK {   /* hk */
    THRDESKHEAD     head;
    PHOOK           phkNext;
    int             iHook;              // WH_xxx hook type
    PVOID           offPfn;
    UINT            flags;              // HF_xxx flags
    int             ihmod;
    PTHREADINFO     ptiHooked;          // Thread hooked.
    PDESKTOP        rpdesk;             // Global hook pdesk. Only used when
                                     //  hook is locked and owner is destroyed
} HOOK;
typedef struct tagDESKTOPINFO {
    PVOID  pvDesktopBase;          // For handle validation
    PVOID  pvDesktopLimit;         // ???
    PWND          spwnd;                 // Desktop window
    DWORD         fsHooks;                // Deskop global hooks
    PHOOK         aphkStart[CWINHOOKS + 1];  // List of hooks
    PWND          spwndShell;            // Shell window
    PPROCESSINFO  ppiShellProcess;        // Shell Process
    PWND          spwndBkGnd;            // Shell background window
    PWND          spwndTaskman;          // Task-Manager window
    PWND          spwndProgman;          // Program-Manager window
    PVOID         pvwplShellHook;         // see (De)RegisterShellHookWindow
    int           cntMBox;                // ???
} DESKTOPINFO;
typedef struct _CLIENT_ID
{
 HANDLE UniqueProcess;
 HANDLE UniqueThread;
} CLIENT_ID;
#pragma packed(1)
typedef struct tagTHREADINFO {
 struct W32THREAD // dt win32k!_W32THREAD -r
 {
  PVOID pEThread;
  unsigned long RefCount;
  PVOID ptlW32;
  PVOID pgdiDcattr;
  PVOID pgdiBrushAttr;
  PVOID pUMPDObjs;
  PVOID pUMPDHeaps;
  unsigned long dwEngAcquireCount;
  PVOID pSemTable;
  PVOID pUMPDObj;
 } W32THREAD;
//***************************************** begin: USER specific fields
    PVOID             ptl;                // Listhead for thread lock list
 // end :: 0x2c :: start
    PPROCESSINFO    ppi;                // process info struct for this thread
    PVOID              pq;                 // keyboard and mouse input queue
    PVOID             spklActive;         // active keyboard layout for this thread
    PVOID             pcti;             // Info that must be visible from client
    PDESKTOP        rpdesk;
    PDESKTOPINFO    pDeskInfo;          // Desktop info visible to client
 // ....omitted....
} THREADINFO, *PTHREADINFO;
typedef struct _TEB
{
   NT_TIB Tib;                         // 00h
   PVOID EnvironmentPointer;           // 1Ch
   CLIENT_ID Cid;                      // 20h
   PVOID ActiveRpcInfo;                // 28h
   PVOID ThreadLocalStoragePointer;    // 2Ch
   PVOID Peb;                           // 30h
   DWORD LastErrorValue;               // 34h
   DWORD CountOfOwnedCriticalSections; // 38h
   PVOID CsrClientThread;              // 3Ch
   PTHREADINFO Win32ThreadInfo;        // 40h
   DWORD Win32ClientInfo[0x1F];        // 44h
   PVOID WOW32Reserved;                // C0h
   DWORD CurrentLocale;                // C4h
   DWORD FpSoftwareStatusRegister;     // C8h
   PVOID SystemReserved1[0x36];        // CCh
   PVOID Spare1;                       // 1A4h
   LONG ExceptionCode;                 // 1A8h
   DWORD SpareBytes1[0x28];            // 1ACh
   PVOID SystemReserved2[0xA];         // 1D4h
//   GDI_TEB_BATCH GdiTebBatch;          // 1FCh
   DWORD gdiRgn;                       // 6DCh
   DWORD gdiPen;                       // 6E0h
   DWORD gdiBrush;                     // 6E4h
   CLIENT_ID RealClientId;             // 6E8h
   PVOID GdiCachedProcessHandle;       // 6F0h
   DWORD GdiClientPID;                 // 6F4h
   DWORD GdiClientTID;                 // 6F8h
   PVOID GdiThreadLocaleInfo;          // 6FCh
   PVOID UserReserved[5];              // 700h
   PVOID glDispatchTable[0x118];       // 714h
   DWORD glReserved1[0x1A];            // B74h
   PVOID glReserved2;                  // BDCh
   PVOID glSectionInfo;                // BE0h
   PVOID glSection;                    // BE4h
   PVOID glTable;                      // BE8h
   PVOID glCurrentRC;                  // BECh
   PVOID glContext;                    // BF0h
   DWORD LastStatusValue;           // BF4h
   UNICODE_STRING StaticUnicodeString; // BF8h
   WCHAR StaticUnicodeBuffer[0x105];   // C00h
   PVOID DeallocationStack;            // E0Ch
   PVOID TlsSlots[0x40];               // E10h
   LIST_ENTRY TlsLinks;                // F10h
   PVOID Vdm;                          // F18h
   PVOID ReservedForNtRpc;             // F1Ch
   PVOID DbgSsReserved[0x2];           // F20h
   DWORD HardErrorDisabled;            // F28h
   PVOID Instrumentation[0x10];        // F2Ch
   PVOID WinSockData;                  // F6Ch
   DWORD GdiBatchCount;                // F70h
   DWORD Spare2;                       // F74h
   DWORD Spare3;                       // F78h
   DWORD Spare4;                       // F7Ch
   PVOID ReservedForOle;               // F80h
   DWORD WaitingOnLoaderLock;          // F84h
} TEB, *PTEB;


TEB의 Win32ThreadInfo 구조체의 pDeskInfo에 aphkStart라는 배열이
훅을 관리하는데, 즉 이 배열을 주기적으로 0으로 초기화 시킴으로써 설치된 훅을
제거할수도 있으며 메시지 후킹을 차단할수도 있습니다.

다섯번쨰로 필요한 기능으로써, 허용되지 않은 메모리 접근차단은 유저레벨에서는
각 프로세스에 Dll을 인젝션 한 후, NtOpenProcess(), NtProtectVirtualMemory(),
NtReadVirtualMemory(), NtWriteVirtualMemory(), ZwOpenProcess(), ZwProtect
VirtualMemory(), ZwReadVirtualMemory(), ZwWriteVirtualMemory(),
OpenProcess(), ReadProcessMemory(), VirtualProtect(), VirtualProtectEx(),
WriteProcessMemory(), GetWindowThreadProcessId()등의 API를 후킹하여
주어야 합니다. 유저레벨에서의 후킹코드는 앞에서 다뤘던 코드에 조금의 수정을
가하면 되는 것임으로, 생략하도록 하겠습니다. 커널레벨에서의 후킹코드들은
다음과 같습니다.

ZwOpenProcess Hook :

NTSTATUS NewZwOpenProcess(
    OUT PHANDLE ProcessHandle,
    IN ACCESS_MASK DesiredAccess,
    IN POBJECT_ATTRIBUTES ObjectAttributes,
    IN PCLIENT_ID ClientId OPTIONAL
)
{
    NTSTATUS rc;
    NTSTATUS rc2;
    CHAR Caller_Process_Name[PROCNAMELEN];
    CHAR Target_Process_Name[PROCNAMELEN];
    PEPROCESS Process;
    char *nameptr;
    
    GetProcessName( Caller_Process_Name );  //Get Process Name
    rc = ((ZWOPENPROCESS)(OldZwOpenProcess)) (
   ProcessHandle,
   DesiredAccess,
   ObjectAttributes,
   ClientId OPTIONAL); 
 
 if(DesiredAccess == PROCESS_ALL_ACCESS)
 {
  if(NT_SUCCESS(rc))    
  {       
   
   rc2 = ObReferenceObjectByHandle(
      *ProcessHandle,
      PROCESS_ALL_ACCESS,
      NULL,
      KernelMode,
      (void *)&Process,
      NULL);
   if(NT_SUCCESS(rc2))
   {
    nameptr = (PCHAR)Process + gProcessNameOffset;
    strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
    Target_Process_Name[NT_PROCNAMELEN] = 0;
    if(!strncmp(Target_Process_Name,MYPROCESS,strlen(MYPROCESS)))
    {
     ObDereferenceObject(Process);
     ZwClose(ProcessHandle);
     rc = STATUS_INVALID_HANDLE;
     ProcessHandle = 0;
    }
   }
  }
 }
    return rc;
}

ZwOpenProcess() 함수를 후킹하고 있다가, 만약 핸들을 오픈하고자 하는 프로세스가,
보호하는 프로세스라면 핸들을 닫고 잘못된 핸들이라고 값을 리턴합니다.

ZwWriteVirtualMemory Hook :

NTSTATUS NTAPI NewZwWriteVirtualMemory(
 IN HANDLE hProcess,
 IN PVOID BaseAddress,
 IN PVOID Buffer,
 IN ULONG BytesToWrite,
 OUT PULONG BytesWritten
)
{
 NTSTATUS rc;
 NTSTATUS rc2;
                  CHAR Attack_Process_Name[PROCNAMELEN];
 CHAR Target_Process_Name[PROCNAMELEN];
 PEPROCESS Process;
 char *nameptr;
 GetProcessName( Caller_Process_Name );
 rc2 = ObReferenceObjectByHandle(
     hProcess,
     PROCESS_ALL_ACCESS,
     NULL,
     KernelMode,
     (void *)&Process,
     NULL);
 if(NT_SUCCESS(rc2))
 {
  nameptr = (PCHAR)Process + gProcessNameOffset;
  strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
  Target_Process_Name[NT_PROCNAMELEN] = 0;
  ObDefreferenceObject(Process);
  if(!strncmp(Target_Process_Name,MYPROCESS,strlen(MYPROCESS)))
  {
   return STATUS_UNSUCCESSFUL;
  }
 }
 rc = ((ZWWRITEVIRTUALMEMORY)(OldZwWriteVirtualMemory)) (
  hProcess,
  BaseAddress,
  Buffer,
  BytesToWrite,
  BytesWritten);
 return rc;
}


ZwReadVirtualMemory Hook :

NTSTATUS NTAPI NewZwReadVirtualMemory(
 IN HANDLE hProcess,
 IN PVOID BaseAddress,
 OUT PVOID Buffer,
 IN ULONG BytesToRead,
 OUT PULONG BytesRead
)
{
 NTSTATUS rc;
  NTSTATUS rc2;
                  CHAR Caller_Process_Name[PROCNAMELEN];
 CHAR Target_Process_Name[PROCNAMELEN];
 PEPROCESS Process;
 char *nameptr;
 GetProcessName( Caller_Process_Name ); 
 rc2 = ObReferenceObjectByHandle(
     hProcess,
     PROCESS_ALL_ACCESS,
     NULL,
     KernelMode,
     (void *)&Process,
     NULL);
 if(NT_SUCCESS(rc2))
 {
  nameptr = (PCHAR)Process + gProcessNameOffset;
  strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
  Target_Process_Name[NT_PROCNAMELEN] = 0;
  ObDefreferenceObject(Process);
  if(!strncmp(Target_Process_Name,MYPROCESS,strlen(MYPROCESS)))
  {
   {
    return STATUS_INVALID_HANDLE;
   }
  }
 }
 
 rc = ((ZWREADVIRTUALMEMORY)(OldZwReadVirtualMemory)) (
   hProcess,
   BaseAddress,
   Buffer,
   BytesToRead,
   BytesRead);
 return rc;
}

여섯번쨰로 디버깅 차단은 코드에 안티 디버깅 루틴을 삽입과 후킹을 사용합니다.
안티 디버깅 루틴을 먼저 다루어 보면,
첫번쨰로 IsDebuggerPresent() 함수를 이용한 방법이 있는데,
IsDebuggerPresent()함수는 kernel32.dll에 의해 export되어지는 함수로써,
해당 함수를 호출한 프로세스가 디버깅 당하는 중이면 TRUE(1)을,
아닐 경우는 FALSE(0)을 반환하는 함수이다. 즉 이 함수를 주기적으로 호출하여
줌으로써 디버깅 여부를 확인할 수 있다. 코드는 다음과 같습니다.

if(IsDebuggerPresent())
{
    OutputDebugString("Debugeed!!");
    //디버깅 당하는 중일떄의 어떠한 처리
}

두번쨰 방법으로 PEB 구조체의 BeingDebuggged 값을 직접 조작하는 방법이 있다.
IsDebuggerPresent()함수는 내부적으로, PEB의 BeingDebugged값을 읽어서 리턴
하여 주는 함수입니다. 즉 IsDebuggerPresent()함수를 호출하지 않고, 직접
PEB의 BeingDebugged의 값을 읽어와도 결과는 같다는 소리입니다.
다음은 PEB의 BeingDebugged의 값을 읽어오는 함수 입니다.

BOOL Pesudo_IsDebuggerPresent()
{
BOOL Retval = 0;
  __asm
  {
      push eax
      mov eax,dword ptr fs:{0x18]
      mov eax,dword ptr ds:[eax+0x30]
      movzx eax,byte ptr ds:[eax+0x2]
      mov Retval,eax
     pop eax
  }
  return Retval;
}

세번쨰 방법으로 CheckRemoteDebuggerPresent() 함수를 이용하는 방법이 있습니다.
이 함수는 함수를 호출하는 프로세스 자신외에도, 타 프로세스에도 사용이 가능합니다.
다음과 같이 사용합니다.

BOOL CheckDebugger(HANDLE hProcess)

{
     BOOL Retval = 0;
 
     CheckRemoteDebuggerPresent(hProcess,&Retval);
     return Retval;
}

* CheckRemoteDebuggerPresent()는 NTAPI의 ZwQueryInformationProcess()로
연결됩니다. ZwQueryInformationProcess()는 다음과 같은 호출 인자를 갖는 함수입니다.

NTSTATUS NTAPI ZwQueryInformationProcess(HANDLE ProcessHandle,
    PROCESSINFOCLASS ProcessInformationClass,
    PVOID ProcessInformation,
    ULONG ProcessInformationLength,
    PULONG ReturnLength);

첫번쨰는 질의 하고자 하는 대상 프로세스의 핸들.
두번쨰는 질의 하고자 하는 내용(디버깅 여부는 ProcessDebugPort)
세번쨰는 결과
네번쨰는 길이
다섯번쨰는 실반환 길이이다.
해당 함수를 직접 호출하는 것도 하나의 방법이 될 수 있을 것입니다.

네번쨰 방법으로 NtGlobalFlag의 값을 확인하는 방법이 있다.
디버거가 프로세스를 디버깅 할때는, 셋되어 지는 Flag들이 있는데, NtGlobalFlag는
그 중 하나이다. 코드는 다음과 같습니다.

BOOL CheckNtGlobalFlag()
{
  BOOL Retval = 0;

  __asm
  {
        push eax
        mov eax,dword ptr fs:[0x30]
         mov eax,0x68
         mov eax,dword ptr ds:[eax]
         cmp eax,0x70
        pop eax
        jne NotDebuged
         mov Retval,1
NotDebugged :
         nop
    }
    return Retval;
}

다섯번쨰 방법으로 Heap flags를 이용하는 방법이 있습니다. Heap의 상태가 디버그
되지 않고 있는 평소 상태와 다른지를 확인하는 것은 강력한 안티디버그 메소드가 될
수 있습니다. 예를들면, 힙 해더에 있는 ForceFlags(오프셋 0x10)은 디버거의 존재
여부를 확인하기 위해 쓰일 수 있습니다.대략적인 코드는 다음과 같습니다.

mov eax, fs:[30h]
mov eax, [eax+18h] ;process heap
mov eax, [eax+10h] ;heap flags
test eax, eax
jne @DebuggerDetected

여섯번쨰 방법으로 UnhandledExceptionFilter를 이용하는 방법이 있습니다.
SEH 핸들러의 주소로 디버거가 없을시 실행할 코드로 넣어주고,
고의적으로 예외를 발생시키어, 디버거가 있는지 없는지를 확인하여 주는
방법입니다. (디버거가 존재함으로, SEH 핸들러로 넘어 가지 않고, 다음 명령을
실행 시키게 되는점을 이용) 코드는 다음과 같습니다.

push @not_debugged
call SetUnhandledExceptionFilter
xor eax, eax
mov eax, dword [eax] ; trigger exception
;program terminated if debugged
;...
@not_debugged:
;process the exception
;continue the execution
;...

일곱번째로 NtSetInformationThread를 이용하는 방법이 있습니다. ThreadInformationClass 가 0x11 (ThreadHideFromDebugger 상수)로 지정되고
호출되면, 스레드는 디버거로부터 분리 될 것입니다. (ThreadHideFromDebugger는
ETHREAD의 필드중에 하나죠.) 코드는 다음과 같습니다.

Example:
push 0
push 0
push 11h ;ThreadHideFromDebugger
push -2
call NtSetInformationThread
;thread detached if debugged
;...

여덟번쨰로 kernel32!CloseHandle and NtClose 를 이용하는 방법이 있습니다.
프로세스가 디버그될 떄, ZwClose() 를 잘못된 핸들을 주고 호출하는 것은
STATUS_INVALID_HANDLE(0xC0000008) 예외를 발생 시킵니다.
디버깅 당하고 있다면, CloseHandle()를 호출하는 다음줄의 코드를 발생시킬 것이고,
디버깅 되고 있지 않다면, SEH핸들러가 호출될 것임을 이용한 방법입니다.
코드는 다음과 같습니다.

push offset @not_debugged
push dword fs:[0]
mov fs:[0], esp
push 1234h ;invalid handle
call CloseHandle
; if fall here, process is debugged
;...
@not_debugged:
;...

아홉번쨰로 OutputDebugStringA를 이용하는 간단한 방법도 있습니다.
OutputDebugString()함수가 성공적으로 수행되는지, 안되는지 (리턴값)을 확인하는
방법입니다. 코드는 다음과 같습니다.

xor eax, eax
push offset szHello
call OutputDebugStringA
cmp eax, 1
jne @DebuggerDetected
...

앞서 말한 방법들을 모두 TLS Callback으로써 등록하여 작동시킬수도 있습니다.
TLS Callback은 스텔스하게 안티 디버그 코드를 실행시킬 수 있는 방법으로 사용될
수 있는데, 단지 안티 디버그 코드를 프로그램에 넣어놓고, 헥스 에디터등을 이용하여
PE해더의 Thread Local Storage entry (PE optional header에서 10번째 디렉토리 엔트리
에 있는) 의 값을 코드의 주소로 바꾸어줌으로써, 안티 디버그 코드가 프로그램의
엔트리 포인트가 실행되기전에, 실행 되도록 만들어 줄 수 있습니다.

열번째 방법으로 커널레벨에서 확인하는 방법으로써,  보호하고자 하는 프로세스의
EPROCESS에 debug port의 값을 확인하는 방법이 있습니다. debug port의 값은
디버깅 되고 있지 않을떄는 0이며, 디버깅 될때에는 0이 아닙니다. 이 점을 이용해서
디버깅 여부를 확인하고 싶은 프로세스의 EPROCESS 스트럭쳐의 debug port값을
확인하는 것은 아주 강력한 안티 디버그 방법으로서 사용될 수 있습니다.
이 밖에도 훨씬 많은 안티 디버깅 방법들이 존재하며,
나머지 목록및 더 자세한 설명은 다음페이지를 참조하시기 바랍니다.
http://dual5651.hacktizen.com/tt/entry/Windows-Anti-Debug-Reference

이렇게 많은 안티 디버깅 루틴이 존재하지만, 안티 디버깅 루틴만으로 충분한 것은
아닙니다. 위에서 말했듯이, 후킹 역시 중요한 부분을 차지 합니다.
DebugActiveProcess() 같은 함수를 필수적으로 후킹해 주어서 디버거가 붙는
자체를 차단해 주어야 합니다. 또 게임을 바로 실행시키는 방식이 아닌,
로더를 거치는 방식을 사용하여, CreateProcess()에 DEBUG_ONLY_THIS_PROCESS
같은 옵션을 가지고 임으로 사용되는 것을 막아주어야 합니다.

여덟번쨰로 필요한 기능인 무결성 검사의 코드는 다음과 같습니다.

#include "stdafx.h"
#include <windows.h>
int main(int argc, char* argv[])
{
 int a;
 DWORD checksum = 0xE1E4CDE2;
 __asm
 {
  pushad
  pushfd
  mov esi,offset StartAddressOfCheck
  mov ecx,offset EndAddressOfCheck
  sub ecx,offset StartAddressOfCheck
  xor eax,eax
  xor ebx,ebx
  Check_Loop:
    mov ebx, [esi]
    add eax,ebx
    rol eax,1
    inc esi
    loop Check_Loop
 
    cmp eax,checksum
    jne EndAddressOfCheck //코드 조작 감지
    popfd
    popad
 }
StartAddressOfCheck:
 a = 5;
 if(a > 10)
 {
  MessageBox(NULL,"You beat this program!!","Congratulation",64);
  return 0;
 }
 else
 {
  MessageBox(NULL,"a 변수의 값이 10보다 작습니다.","ashole!",MB_ICONWARNING);
  return 0;
 }
EndAddressOfCheck:
 __asm
 {
  popfd
  popad
 }
 MessageBox(NULL,"You can`t beat this program sxxker!!","Cracker!!",MB_ICONWARNING);
 return 0;
}

StartAddressOfCheck 로 부터 EndAddressOfCheck 까지의 명령어들의 합산값을
미리 계산하여 두고, 프로그램을 실행할 떄에, 그값이 기존의 값과 같은지 여부를
확인하여 변조되었는지를 확인하는 방법입니다. 이 확인하는 루틴을 별도의 스레드를
만들어 와일을 돌리거나, 타이머를 이용하는 방법으로, 코드의 지속적인 감시도 가능합니다.
단, 명령코드의 합산은 현재 코드가 존재하는 주소에 의해서도 영향을 받기 떄문에,
컴파일 모드가 디버그 인지, 릴리즈 인지, StartAddressOfCheck앞에 새로운 코드나
문자열등 StartAddressOfCheck의 주소에 영향을 줄 수 있는 변수가 있으면, 새롭게
checksum 값을 계산하여 상수값으로 주어야 합니다. 다소 귀찮은 면이 있지만,
프로그램을 안전하게 보호하는데 한 역활을 할 수 있습니다. 위의 코드는 프로세스에
대한 검사이지만, 파일에 대해서도 쉽게 적용할 수 있을 것입니다. (ReadFile())
또, 조금만 생각해보면, 게임에 무결성 체크 코드를 넣지 않아도, Anti GH 프로그램에서
ReadProcessMemory()함수를 이용하여 체크할수도 있을 것입니다.

아홉번쨰로 필요한 기능인 시스템 디스크립터 복구이 의미하는 것은 Rootkit에
의해 변조되어 있을, 디스크립터들(ex: SSDT, IDT, and so on..)을 의미 합니다.
SSDT 나 IDT의 변조여부는 어떻게 확인하는가? 원리는 간단합니다.
SSDT나 IDT는 기본적으로 ntoskrnl.exe의 메모리 영역에 속함으로,
각 모듈들의 시작주소와 끝주소들을 구해놓고, 만약 백터나 디스패쳐의 주소가
ntoskrnl.exe의 시작주소와 끝주소 사이에 있지 않다면, 이는 변조된 것으로
판단하면 됩니다. 코드는 다음과 같습니다.

PMODULE_LIST GetListOfModules(PNTSTATUS pns)
{
    ULONG ul_NeededSize;
    ULONG *pul_ModuleListAddress = NULL;
    NTSTATUS     ns;
    PMODULE_LIST pml = NULL;
 
    // Call it the first time to determine the size required
    // to store the information.
    ZwQuerySystemInformation(SystemModuleInformation,
                             &ul_NeededSize,
                             0,
                             &ul_NeededSize);
    pul_ModuleListAddress = (ULONG *) ExAllocatePool(PagedPool, ul_NeededSize);
 
    if (!pul_ModuleListAddress) // ExAllocatePool failed.
    {
        if (pns != NULL)
 
          *pns = STATUS_INSUFFICIENT_RESOURCES;
 
        return (PMODULE_LIST) pul_ModuleListAddress;
    }
 
    ns = ZwQuerySystemInformation(SystemModuleInformation,
                                  pul_ModuleListAddress,
                                  ul_NeededSize,
                                  0);
    if (ns != STATUS_SUCCESS)// ZwQuerySystemInformation failed.
    {
        // Free allocated paged kernel memory.
        ExFreePool((PVOID) pul_ModuleListAddress);
        if (pns != NULL)
 
           *pns = ns;
        return NULL;
    }
    pml = (PMODULE_LIST) pul_ModuleListAddress;
 
    if (pns != NULL)
 
       *pns = ns;
    return pml;
}

..................

   g_pml = GetListOfModules(&ns);
   if(!g_pml)
   {
    DbgPrint("Get Failed");
    return;
   }
    for(count = 0; count < g_pml->d_Modules; count++)
 {
  if(!_stricmp("ntoskrnl.exe",g_pml->a_Modules[count].a_bPath+g_pml->a_Modules[count].w_NameOffset))
  {
   g_NTOSKRNL.Base = (ULONG)g_pml->a_Modules[count].pBase;
   g_NTOSKRNL.End = ((ULONG)g_pml->a_Modules[count].pBase + g_pml->a_Modules[count].d_Size);
  }
 }

위의 코드로 ntoskrnl.exe의 시작주소와 끝주소를 알 수 있으며, SSDT와 IDT를
끝번호까지 돌면서, ntoskrnl.exe에 속하는지만 확인하여 주면 됩니다.
만약, 이런식으로 루프를 돌다가 변조된 것이 발견되면 어떻게 복구해야할까요?
그것에 대해서는
http://dual5651.hacktizen.com/tt/entry/SSDT-후킹-무력화에-대한-연구
의 SSDT Restore에 대해서 읽어보시고, 코드를 참조하시면 됩니다.

목차에는 없지만 최근 많이 사용되고 있는 프로세스 숨기기에 대해서도 간단히
다루어 보겠습니다. 첫번째로 사용할 수 있는 방법으로서 커널단에서
ZwQuerySystemInformation() 이라는 함수를 후킹하는 방법이 있습니다.
코드는 다음과 같습니다.

NTSTATUS NTAPI NewZwQuerySystemInformation(
            IN ULONG SystemInformationClass,
   IN PVOID SystemInformation,
   IN ULONG SystemInformationLength,
   OUT PULONG ReturnLength
)
{
 NTSTATUS rc;
 CHAR Attack_Process_Name[PROCNAMELEN];
 
 GetProcessName( Attack_Process_Name );
 rc = ((ZWQUERYSYSTEMINFORMATION)(OldZwQuerySystemInformation)) (
   SystemInformationClass,
   SystemInformation,
   SystemInformationLength,
   ReturnLength );
 if( NT_SUCCESS( rc ) && strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
 {
  if(5 == SystemInformationClass)
  {
   struct _SYSTEM_PROCESSES *curr = (struct _SYSTEM_PROCESSES *)SystemInformation;
   struct _SYSTEM_PROCESSES *prev = NULL;
   while(curr)
   {    
    ANSI_STRING process_name;
    ANSI_STRING ANSI_Enemy_Name;
    UNICODE_STRING Enemy_Name;
    RtlUnicodeStringToAnsiString( &process_name, &(curr->ProcessName), TRUE);
    if( (255 > process_name.Length) && (0 < process_name.Length) )
    {
     if(0 == strncmp( process_name.Buffer, ProcessName, NT_PROCNAMELEN-1))
     {
 
      //DbgPrint("[Alarm] ProcessScan Detected\n");
      //DbgPrint("Called by %s\n",Attack_Process_Name);
       if(prev)
       {
        if(curr->NextEntryDelta)
        {
         prev->NextEntryDelta += curr->NextEntryDelta;
        }
        else
        {
         prev->NextEntryDelta = 0;
        }
       }
       else
       {
        if(curr->NextEntryDelta)
        {
         (char *)SystemInformation += curr->NextEntryDelta;
        }
        else
        {
         SystemInformation = NULL;
        }
       }
     }
    }
    RtlFreeAnsiString(&process_name);
    prev = curr;
    if(curr->NextEntryDelta) ((char *)curr += curr->NextEntryDelta);
    else
    {
     curr = NULL;
    }
   }
  }
 }
 return rc;
}

NtUserQueryWindow(), NtUserBuildHwndList(), NtUserFindWindowEx(),
NtUserGetForegroundWindow() 라는 함수들은 창의 핸들과 관련이 있는 함수들입니다.
창의 핸들을 획득하는 것을 차단하기 위해 위의 함수들을 후킹하는 코드 입니다.

UINT_PTR NewNtUserQueryWindow(IN ULONG WindowHandle,IN ULONG TypeInformation)
{
    ULONG WindowHandleProcessID;
    CHAR Attack_Process_Name[PROCNAMELEN];
    CHAR Target_Process_Name[PROCNAMELEN];
    PEPROCESS Process;
    char *nameptr;

        GetProcessName(Attack_Process_Name);
 if(strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
 {
  WindowHandleProcessID = ((NTUSERQUERYWINDOW)(WINDOWSERVICEIDX(483)))(WindowHandle,0);
  if(PsLookupProcessByProcessId((HANDLE)WindowHandleProcessID,&Process) == STATUS_SUCCESS)
        {
   ObDereferenceObject(Process);
                 nameptr = (PCHAR)Process + gProcessNameOffset;
   strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
   Target_Process_Name[NT_PROCNAMELEN] = 0;
   if(!strncmp(Target_Process_Name,ProcessName,NT_PROCNAMELEN-1) || WindowHandleProcessID == SaruenProcessID)
   {
    return 0;
   }
  }
    }  
 return OldNtUserQueryWindow(WindowHandle,TypeInformation);
}

NTSTATUS NewNtUserBuildHwndList(IN HDESK hdesk, IN HWND hwndNext, IN ULONG fEnumChildren, IN DWORD idThread, IN UINT cHwndMax, OUT HWND *phwndFirst, OUT ULONG* pcHwndNeeded)
{
 NTSTATUS result;
    CHAR Attack_Process_Name[PROCNAMELEN];
 CHAR Target_Process_Name[PROCNAMELEN];
 ULONG ProcessID;
 PEPROCESS Process;
 char *nameptr;
 ULONG i = 0,j;
 
    GetProcessName(Attack_Process_Name);
 if(strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
 {
  if(fEnumChildren == 1)
  {
   ProcessID = OldNtUserQueryWindow((ULONG)hwndNext,0);
   if(PsLookupProcessByProcessId((HANDLE)ProcessID,&Process) == STATUS_SUCCESS)
            {
    ObDereferenceObject(Process);
                   nameptr = (PCHAR)Process + gProcessNameOffset;
     strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
    Target_Process_Name[NT_PROCNAMELEN] = 0;
    if(!strncmp(Target_Process_Name,ProcessName,NT_PROCNAMELEN-1) || ProcessID == SaruenProcessID)
    {
     return STATUS_UNSUCCESSFUL;
    }
   }
          }
  result=((NTUSERBUILDHWNDLIST)(WINDOWSERVICEIDX(312)))(hdesk,hwndNext,fEnumChildren,idThread,cHwndMax,phwndFirst,pcHwndNeeded);
  if (result == STATUS_SUCCESS)
  {
   while (i<*pcHwndNeeded)
   {
    ProcessID=OldNtUserQueryWindow((ULONG)phwndFirst[i],0);
    if(PsLookupProcessByProcessId((HANDLE)ProcessID,&Process) == STATUS_SUCCESS)
              {
                    nameptr = (PCHAR)Process + gProcessNameOffset;
      strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
     Target_Process_Name[NT_PROCNAMELEN] = 0;
     ObDereferenceObject(Process);
     if(!strncmp(Target_Process_Name,ProcessName,NT_PROCNAMELEN))
     {
       for (j=i; j<(*pcHwndNeeded)-1; j++)    
         phwndFirst[j]=phwndFirst[j+1];
       phwndFirst[*pcHwndNeeded-1]=0;
       (*pcHwndNeeded)--;
       continue;
     }
    }
    i++;
   }
  }
  return result;
 }
 return OldNtUserBuildHwndList(hdesk,hwndNext,fEnumChildren,idThread,cHwndMax,phwndFirst,pcHwndNeeded);
}

ULONG NewNtUserFindWindowEx(IN HWND hwndParent, IN HWND hwndChild, IN PUNICODE_STRING pstrClassName OPTIONAL, IN PUNICODE_STRING pstrWindowName OPTIONAL, IN DWORD dwType)
{
 ULONG result;
 ULONG ProcessID;
        PEPROCESS Process;
        char *nameptr;
        CHAR Attack_Process_Name[PROCNAMELEN];
        CHAR Target_Process_Name[PROCNAMELEN];

        GetProcessName(Attack_Process_Name);
        if(!strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
  {
   result=OldNtUserFindWindowEx(hwndParent,hwndChild,pstrClassName,pstrWindowName,dwType);
   return result;
  }
  result = ((NTUSERFINDWINDOWEX)(WINDOWSERVICEIDX(378)))(hwndParent,hwndChild,pstrClassName,pstrWindowName,dwType);
  if(strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
        {
           ProcessID = OldNtUserQueryWindow(result,0);
           if(PsLookupProcessByProcessId((HANDLE)ProcessID,&Process) == STATUS_SUCCESS)
           {
                 nameptr = (PCHAR)Process + gProcessNameOffset;
   strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
  Target_Process_Name[NT_PROCNAMELEN] = 0;
  if(!strncmp(Target_Process_Name,ProcessName,NT_PROCNAMELEN-1) || ProcessID == SaruenProcessID)
  {
   result=0;
  }
  ObDereferenceObject(Process);
           }
           
        }
 return result;
}

ULONG NewNtUserGetForegroundWindow(VOID)
{
 ULONG result;
 ULONG ProcessID;
        PEPROCESS Process;
        char *nameptr;
        CHAR Attack_Process_Name[PROCNAMELEN];
        CHAR Target_Process_Name[PROCNAMELEN];

        GetProcessName(Attack_Process_Name);
  if(!strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
  {
   result=OldNtUserGetForegroundWindow();
   return result;
  }
  result = ((NTUSERGETFOREGROUNDWINDOW)(WINDOWSERVICEIDX(404)))();
        if(strncmp(Attack_Process_Name,ProcessName,NT_PROCNAMELEN-1))
        {
           ProcessID = OldNtUserQueryWindow(result,0);
           if(PsLookupProcessByProcessId((HANDLE)ProcessID,&Process) == STATUS_SUCCESS)
           {
                 nameptr = (PCHAR)Process + gProcessNameOffset;
   strncpy(Target_Process_Name, nameptr, NT_PROCNAMELEN);
  Target_Process_Name[NT_PROCNAMELEN] = 0;
  if(!strncmp(Target_Process_Name,ProcessName,NT_PROCNAMELEN-1) || ProcessID == SaruenProcessID)
  {
   result=LastForegroundWindow;
  }
  else
  {
   LastForegroundWindow=result;
  }
  ObDereferenceObject(Process);
           }
           
        }
 return result;
}

두번쨰로 사용할 수 있는게 DKOM입니다. DKOM은 예외경우가 많이 발생할 수 있음으로,
필드 프로그램에서 사용할 떄에는, 신중에 신중을 고려하여야 할 부분입니다.

첫번째로 가장 많이 알려진 DKOM적 방법인 EPROCESS LINK를 끊는 방법입니다.
먼저 숨기고자 하는 프로세스 이름으로 EPROCESS를 찾는 함수 입니다.

PEPROCESS
FindProcessByName(char *Name)
{
 PLIST_ENTRY start_plist,plist_hTable = NULL;
 ULONG *d_pid;
 PEPROCESS eproc;
 char *nameptr;
 CHAR Process_Name[NT_PROCNAMELEN];
 NTSTATUS rc;
 plist_hTable = (PLIST_ENTRY)((*(ULONG*)
  ((ULONG)PsInitialSystemProcess + 0xC4)) + 0x1C);
 
 start_plist = plist_hTable;

 do
 {
  d_pid = (ULONG*)(((ULONG)plist_hTable + 0x8)
      - 0x1C);
  rc = PsLookupProcessByProcessId((HANDLE)*d_pid,&eproc);
  if(eproc && NT_SUCCESS(rc))
  {
   nameptr = (PCHAR)eproc + gProcessNameOffset;
   strncpy(Process_Name, nameptr, NT_PROCNAMELEN);
   Process_Name[NT_PROCNAMELEN] = 0;
   ObDereferenceObject(eproc);
   if(!strncmp(Process_Name,Name,NT_PROCNAMELEN-1))
   {
    return eproc;
   }
  }
 // DbgPrint("%s\n",Process_Name);
  plist_hTable = plist_hTable->Flink;  
 }while(start_plist != plist_hTable);
 return 0;
}

그후에는 다음과 같은 코드로 숨킬 수 있습니다.

PEPROCESS MyProcess;
PLIST_ENTRY plist_active_procs;

MyProcess = FindProcessByName(ProcessName);

    if(MyProcess)
    {
     plist_active_procs = (LIST_ENTRY *)((DWORD)MyProcess + 0x88);
     *((DWORD *)plist_active_procs->Blink) = (DWORD)plist_active_procs->Flink;
     *((DWORD *)plist_active_procs->Flink+1) = (DWORD)plist_active_procs->Blink;
     plist_active_procs->Flink = (LIST_ENTRY *) &(plist_active_procs->Flink);
     plist_active_procs->Blink = (LIST_ENTRY *) &(plist_active_procs->Flink);
    }

위의 코드에 다음과 같은 한줄을 붙여넣음으로서, 보호하고자 하는 프로세스의
PID를 0으로 만들어 접근이 불가능하게 할 수도 있습니다.

*((DWORD*)((DWORD)MyProcess+0x84)) = 0;

csrss.exe 에서 핸들을 지우는 코드 입니다.

 PEPROCESS gpeproc_csrss;

  gpeproc_csrss = (PEPROCESS)FindProcessByName("csrss.exe");
    if(!gpeproc_csrss) gpeproc_csrss = (PEPROCESS)FindProcessByName
                                                                               ("CSRSS.EXE");


if(gpeproc_csrss) EraseHandle((PEPROCESS)gpeproc_csrss, (PVOID)MyProcess);

void EraseHandle(PEPROCESS eproc, PVOID tarHandle)
{
 PTABLE_ENTRY   orig_tableEntry, p_tableEntry, *pp_tableEntry, **ppp_tableEntry;
 int a, b, c;
 int i_numHandles, i_hperPage, i_numTables;
 int i_handle;
 //DbgPrint("Hiding %x from %s process handle table.\n", tarHandle, (DWORD)eproc+gul_ProcessNameOffset);
 i_numHandles = *(int*)((*(PDWORD)((DWORD) eproc + 0xC4)) + 0x3C);
 orig_tableEntry = (PTABLE_ENTRY)*(PDWORD)((*(PDWORD)((DWORD) eproc + 0xC4)));
 i_numTables = ((DWORD)orig_tableEntry & 3);
 i_hperPage = PAGE_SIZE/sizeof(TABLE_ENTRY);
 
 if (i_numTables == 0)
 {
  //DbgPrint("Found a single level handle table.\n");
  p_tableEntry = (PTABLE_ENTRY)((DWORD)orig_tableEntry & 0xfffffff8);
  for (a = 0; a < i_hperPage; a++)
  {
   if (((p_tableEntry[a].object ^ 0x80000000) & 0xfffffff8) == ((DWORD)tarHandle - 0x18))
   {
    //DbgPrint("Handle = %x Object Header %x Security %x\n", a*4, ((p_tableEntry[a].object | 0x80000000) & 0xfffffff8), p_tableEntry[a].security);
    p_tableEntry[a].object = 0;
    p_tableEntry[a].security = 0;
   }
  }
 }
 else if (i_numTables == 1)
 {
  //DbgPrint("Found a two level handle table.\n");
  pp_tableEntry = (PPTABLE_ENTRY)((DWORD)orig_tableEntry & 0xfffffff8);
  for (a = 0; a < i_hperPage; a++)
  {
   if (pp_tableEntry[a] == NULL)
    break;
   for (b = 0; b < i_hperPage; b++)
   {
    if (((pp_tableEntry[a][b].object ^ 0x80000000) & 0xfffffff8) == ((DWORD)tarHandle - 0x18))
    {
     //DbgPrint("Handle = %x Object Header %x Security %x\n", ((a*512)+b)*4, ((pp_tableEntry[a][b].object | 0x80000000) & 0xfffffff8), pp_tableEntry[a][b].security);
     pp_tableEntry[a][b].object = 0;
     pp_tableEntry[a][b].security = 0;
    }
   }
   
  }
 }
 else if (i_numTables == 2)
 {
  //DbgPrint("Found a three level handle table.\n");
  ppp_tableEntry = (PPPTABLE_ENTRY)((DWORD)orig_tableEntry & 0xfffffff8);
  for (a = 0; a < i_hperPage; a++)
  {
   if (ppp_tableEntry[a] == NULL)
    break;
   for (b = 0; b < i_hperPage; b++)
   {
    if (ppp_tableEntry[a][b] == NULL)
     break;
    for (c = 0; c < i_hperPage; c++)
    {
     if (((ppp_tableEntry[a][b][c].object ^ 0x80000000) & 0xfffffff8) == ((DWORD)tarHandle - 0x18))
     {
      //DbgPrint("Handle = %x Object Header %x Security %x\n", ((a*512)+(b*256)+c)*4, ((ppp_tableEntry[a][b][c].object | 0x80000000) & 0xfffffff8), ppp_tableEntry[a][b][c].security);
      ppp_tableEntry[a][b][c].object = 0;
      ppp_tableEntry[a][b][c].security = 0;
     }
    }
   
   }
  }
 }
}

PspCidTable에서 오브젝트를 지우는 함수 입니다.

먼저 다음과 같이 PspCidTable을 지우는 함수를 먼저 호출 합니다.

DWORD gcid_table;

gcid_table = GetPspCidTable();

DWORD
GetPspCidTable()
{
    PVOID pPspCidTable = NULL;
    ULONG i;
    UNICODE_STRING  usPsLookup;
    PUCHAR Buff;
   
    RtlInitUnicodeString( &usPsLookup, L"PsLookupProcessByProcessId" );
    Buff = MmGetSystemRoutineAddress( &usPsLookup );
    if( Buff != NULL )
    {   
        for( i = 0; i < 0x40; i++, Buff++ )
        {
            if( *(PUSHORT)(Buff) == 0x35ff && *((PUCHAR)Buff+6) == 0xe8 )
            {
                pPspCidTable = (PVOID)(*(PULONG)(Buff+2));
                break;
            }
        }
    }
    return (DWORD)pPspCidTable ? *(DWORD*)pPspCidTable : (DWORD)NULL;
}

 EraseObjectFromPspCidTable(gcid_table, (PVOID)MyProcess, 0,*((DWORD*)((DWORD)MyProcess+0x84)), 0 );

void EraseObjectFromPspCidTable(DWORD handle_table, PVOID tarHandle, enum ObjectType obj_type, DWORD pid, DWORD tid)
{
 PTABLE_ENTRY   orig_tableEntry, p_tableEntry, *pp_tableEntry, **ppp_tableEntry;
 int a, b, c;
 int i_numHandles, i_hperPage, i_numTables;
 int i_handle;
 i_numHandles = *(int*)(handle_table + 0x3c);
 orig_tableEntry = (PTABLE_ENTRY)*(PDWORD)(handle_table + 0);
 i_numTables = ((DWORD)orig_tableEntry & 3);
 i_hperPage = PAGE_SIZE/sizeof(TABLE_ENTRY);
 
 if (i_numTables == 0)
 {
 
//   DbgPrint("Found a single level handle table.\n");
  p_tableEntry = (PTABLE_ENTRY)((DWORD)orig_tableEntry & 0xfffffff8);
  for (a = 0; a < i_hperPage; a++)
  {
   if (((p_tableEntry[a].object | 0x80000000) & 0xfffffff8) == ((DWORD)tarHandle))
   {
//     DbgPrint("[%d]\n",a);
//     DbgPrint("Handle = %x Object %x Security %x\n", a*4, ((p_tableEntry[a].object | 0x80000000) & 0xfffffff8), p_tableEntry[a].security);
   
//     add_index(&g_PspCidTableList, SINGLE_LEVEL,obj_type,(DWORD)tarHandle,pid,tid, a,0, 0, p_tableEntry[a].object, p_tableEntry[a].security);
   
    p_tableEntry[a].object = 0;
    p_tableEntry[a].security = ((PHANDLE_TABLE)handle_table)->FirstFree;
    ((PHANDLE_TABLE)handle_table)->FirstFree = (ULONG)( (tid!=0) ? tid : pid );
   }
  }
 }
 else if (i_numTables == 1)
 {
//   DbgPrint("Found a two level handle table.\n");
  pp_tableEntry = (PPTABLE_ENTRY)((DWORD)orig_tableEntry & 0xfffffff8);
 
  for (a = 0; a < i_hperPage; a++)
  {
   if (pp_tableEntry[a] == NULL)
    break;
   for (b = 0; b < i_hperPage; b++)
   {
    //DbgPrint("Comparing %x to %x\n", ((pp_tableEntry[a][b].object | 0x80000000) & 0xfffffff8), tarHandle);
    if (((pp_tableEntry[a][b].object | 0x80000000) & 0xfffffff8) == ((DWORD)tarHandle))
    {
//      DbgPrint("[%d][%d]\n",a,b);
//      DbgPrint("Handle = %x Object %x Security %x\n", ((a*512)+b)*4, ((pp_tableEntry[a][b].object | 0x80000000) & 0xfffffff8), pp_tableEntry[a][b].security);
//      add_index(&g_PspCidTableList, DOUBLE_LEVEL,obj_type,(DWORD)tarHandle, pid,tid,  a,b, 0, pp_tableEntry[a][b].object, pp_tableEntry[a][b].security);
     pp_tableEntry[a][b].object = 0;
     pp_tableEntry[a][b].security = ((PHANDLE_TABLE)handle_table)->FirstFree;
     ((PHANDLE_TABLE)handle_table)->FirstFree = (ULONG)( (tid!=0) ? tid : pid );
    }
   }
   
  }
 }
 else if (i_numTables == 2)
 {
//   DbgPrint("Found a three level handle table.\n");
  ppp_tableEntry = (PPPTABLE_ENTRY)((DWORD)orig_tableEntry & 0xfffffff8);
  for (a = 0; a < i_hperPage; a++)
  {
   if (ppp_tableEntry[a] == NULL)
    break;
   for (b = 0; b < i_hperPage; b++)
   {
    if (ppp_tableEntry[a][b] == NULL)
     break;
    for (c = 0; c < i_hperPage; c++)
    {
     if (((ppp_tableEntry[a][b][c].object | 0x80000000) & 0xfffffff8) == ((DWORD)tarHandle))
     {
//       DbgPrint("Handle = %x Object %x Security %x\n", ((a*512)+(b*256)+c)*4, ((ppp_tableEntry[a][b][c].object | 0x80000000) & 0xfffffff8), ppp_tableEntry[a][b][c].security);
//       add_index(&g_PspCidTableList, TRIPLE_LEVEL,obj_type, (DWORD)tarHandle, pid,tid,  a,b, c, ppp_tableEntry[a][b][c].object, ppp_tableEntry[a][b][c].security);
      ppp_tableEntry[a][b][c].object = 0;
      ppp_tableEntry[a][b][c].security = ((PHANDLE_TABLE)handle_table)->FirstFree;
      ((PHANDLE_TABLE)handle_table)->FirstFree = (ULONG)( (tid!=0) ? tid : pid );
     }
    }
   
   }
  }
 }
}

HandleListEntry 해제하는 코드 입니다.

UnHookHandleListEntry((PEPROCESS)MyProcess);

void UnHookHandleListEntry(PEPROCESS eproc)
{
 PLIST_ENTRY plist_hTable = NULL;
 plist_hTable = (PLIST_ENTRY)((*(PDWORD)((DWORD) eproc + 0xc4)) +  0x1c);
 //DbgPrint("Unhooking the handle table of Process: %s\n", (DWORD)eproc+gul_ProcessNameOffset);
 *((DWORD *)plist_hTable->Blink) = (DWORD) plist_hTable->Flink;
 *((DWORD *)plist_hTable->Flink+1) = (DWORD) plist_hTable->Blink;
 //plist_hTable->Flink = (LIST_ENTRY *) &(plist_hTable->Flink); // Change the current LIST_ENTRY
 //plist_hTable->Blink = (LIST_ENTRY *) &(plist_hTable->Flink); // so we don't point to crap
}

프로세스에 속해 있는 스레드를 숨기는 코드 입니다.

if(gpeproc_csrss) HideThreadsInTargetProcess((PEPROCESS)MyProcess, gpeproc_csrss);


void HideThreadsInTargetProcess(PEPROCESS eproc, PEPROCESS target_eproc)
{
 PETHREAD start, walk;
 DWORD check1, check2;
 if (eproc == NULL)
  return;
 check1 = *(DWORD *)((DWORD)eproc + 0x50);
 check2 = ((DWORD)eproc + 0x50);
 // If check1 points back to the EPROCESS, there are no threads in the process.
 // It must be exiting.
 if (check1 == check2)
  return;
 start = *(PETHREAD *)((DWORD)eproc + 0x50);
 start = (PETHREAD)((DWORD)start - 0x1b0);
 walk = start;
 do
 {
  EraseHandle(target_eproc, walk);
  walk = *(PETHREAD *)((DWORD)walk + 0x1b0);
  walk = (PETHREAD)((DWORD)walk - 0x1b0);
 }while (walk != start);
}

 


지금 소개한 프로세스 숨기는 코드들만 사용하여도, 충분히 강력한 효과를 내실 수 있
을 것입니다. 하지만 꼭 명심하시기 바랍니다. DKOM을 사용할떄는 충분한 필드 테스트가
선행되어져야 한다는 것을...

여담이지만, 사실 이 글의 제목은 'Anti Game hacking 프로그램이 갖추어야할 기능들과
약점들.' 이었는데요. 글을 쓰다보니 -_-;; 필요한 기능과 코드만 다루어도 글의 길이가
꾀 길더군요. 그래서 두편으로 나누기로 결정을 하였습니다. 그럼 다음편에서는
Anti GH 프로그램의 약점과 그 대안에 대해서 알아보도록 하겠습니다.
이 글에서 잘못된 부분은 dual@null2root.org 로 알려주시거나, 이 글에 리플을 달아
주셔도 감사하겠습니다. 그럼 이만 (__)...

프로세스에서 메모리 패턴 검사 :

윈도우,클레스 목록에서 검사 :

이벤트,뮤텍스,파일맵 이름 검사 :

CRC 검사 :

참고 문헌 (?)
- 추후 추가 예정.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by Dual

2007/12/02 12:58 2007/12/02 12:58
Response
531 Trackbacks , a comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/312

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/312

Trackbacks List

  1. File CRC Check 검사기법 우회하기 - Target : GomEncoder

    Tracked from #44u61l5f 2009/02/10 16:16 Delete

    Long time no see!Dual입니다. :0아주 오~~랜만에 활동시작 겸 RE에 관한 글을 써보고자 합니다.주제는? File CRC Check 검사 우회하기(?) 입니다.대상은 GomEncoder로 잡았는데요, 별 다른 이유가 있는 것은 아닙니다.그런데 GomEnc가 CRC 체크를 하는 이유는 모르겠습니다(바이러스에 의한 손상검사?)아시는 분은 댓글 좀 알려주세요. ;0먼저 한번 생각해 보죠.저번에 간단히 프로세스의 CRC체크를 우회(?)하...

  2. test2

    Tracked from test2 2009/02/11 11:30 Delete

    test2

  3. pimhwwgb

    Tracked from pimhwwgb 2009/03/07 07:16 Delete

    pimhwwgb

  4. anti aging creams

    Tracked from anti aging creams 2009/06/29 12:32 Delete

    dead fee show primary your breath thus method aye: krigopezp at skin status advise specific information existing percent.

  5. mico bikini

    Tracked from mico bikini 2009/07/28 03:58 Delete

    natalia tena nude <a href="http://sexmoviesfree74.5gighost.com/natalia-tena-nude.html">natalia tena nude</a>

  6. zeps bbs

    Tracked from zeps bbs 2009/07/29 15:33 Delete

    tawas phone system <a href="http://maifunemae.wordpress.com/">tawas phone system</a>

  7. zero turn mowers

    Tracked from zero turn mowers 2009/07/29 16:23 Delete

    tawas business analysis <a href="http://vatzefak.wordpress.com/">tawas business analysis</a>

  8. Margot Kidder Nude

    Tracked from Margot Kidder Nude 2009/08/18 01:53 Delete

    Margot Kidder Nude <a href="http://www.kaboodle.com/margot_kidder_nude_52">Margot Kidder Nude</a> Photos and Video. jgr1uig98d

  9. johns ameteurs

    Tracked from johns ameteurs 2009/08/19 20:32 Delete

    asian fittness <a href="http://www.kaboodle.com/asian_fittness_63">asian fittness </a> vintage apron patterns <a href="http://www.kaboodle.com/vintage_apron_patterns_87">vintage apron patterns </a>

  10. shemale route

    Tracked from shemale route 2009/08/27 16:50 Delete

    castro supreme xxx <a href="http://www.kaboodle.com/castro_supreme_xxx_42">castro supreme xxx </a>

  11. Hydrocodone online without prescription.

    Tracked from Purchase hydrocodone online. 2009/09/06 11:33 Delete

    Hydrocodone online. Search hydrocodone online without a prescription. Easy way to buy hydrocodone online. Buying hydrocodone online. Online hydrocodone. Buy hydrocodone online discount cheap pharmacy. Purchase hydrocodone online. Hydrocodone and online...

  12. Buy hydrocodone online.

    Tracked from Buy hydrocodone online. 2009/09/06 13:57 Delete

    Easy way to buy hydrocodone online. Buy hydrocodone online. Buy hydrocodone online without prescription. Buy hydrocodone online without a prescription.

  13. Buy tramadol at a cheap price online.

    Tracked from Buy tramadol. 2009/09/07 15:34 Delete

    Buy tramadol online cod. Buy tramadol. Tramadol great buy.

  14. Cheap phentermine cod.

    Tracked from Cheap phentermine. 2009/09/07 21:38 Delete

    Cheap phentermine diet pill. Phentermine cheap. Buy phentermine cheap.

  15. Phentermine diet pills effects of diet pills home.

    Tracked from Phentermine diet pills buy phentermine diet pill. 2009/09/08 00:14 Delete

    Phentermine diet pills. Phentermine diet pills effects of diet pills home. Phentermine diet pills without pecription. Phentermine diet pills diet pills.

  16. Side effects of drug xanax.

    Tracked from Xanax side effects. 2009/09/08 17:38 Delete

    Side effects of drug xanax. Xanax ingredients side effects. Side effects of xanax.

  17. Oxycontin cost.

    Tracked from Oxycontin addiction symptoms. 2009/09/09 01:53 Delete

    Hartford oxycontin attorneys. Oxycontin. Freebasing oxycontin.

  18. Vicodin.

    Tracked from Vicodin withdrawal. 2009/09/09 10:34 Delete

    Vicodin.

  19. Where to buy oxycontin.

    Tracked from Buy oxycontin. 2009/09/09 19:06 Delete

    Buy oxycontin. Buy oxycontin online. Buy cheap oxycontin.

  20. Georgia oxycontin lawyers.

    Tracked from Oxycontin. 2009/09/10 14:23 Delete

    Hartford oxycontin attorneys. Oxycontin. Oxycontin pdr. Oxycontin las vegas. Oxycontin purdue legal news. Addiction to oxycontin.

  21. Buy tramadol amex.

    Tracked from Buy tramadol in the united states. 2009/09/15 01:32 Delete

    Buy tramadol index. Buy tramadol.

  22. Tramadol.

    Tracked from Tramadol cod. 2009/09/16 06:24 Delete

    Tramadol cod. Taking tramadol while pregnant. Tramadol.

  23. Adderall xr.

    Tracked from Adderall xr. 2009/09/16 17:33 Delete

    Adderall xr.

  24. Buying oxycontin online.

    Tracked from California buy oxycontin must mail prescription. 2009/09/18 19:23 Delete

    Buy oxycontin. Buy oxycodone oxycontin without a perscription. Buy online percocet oxycontin. Buy oxycontin without a presription. Buying oxycontin.

  25. Buy hydrocodone online.

    Tracked from Order hydrocodone online. 2009/09/26 22:02 Delete

    Online pharmacies hydrocodone. Hydrocodone and online consultation. Buy online hydrocodone codeine hydrocodone. Buy hydrocodone online.

  26. Buy tramadol online cod.

    Tracked from Tramadol buy. 2009/09/27 14:51 Delete

    Buy tramadol online cod. Buy super cheap phentermine and tramadol. Buy tramadol pharmacy index. Buy tramadol. Buy cheap tramadol mg tablets only in us online.

  27. Hydrocodone how to administer safely.

    Tracked from Hydrocodone online. 2009/09/28 10:35 Delete

    Hydrocodone withdrawl. Hydrocodone. Pregnant and taking hydrocodone. Hydrocodone prescription.

  28. Xanax.

    Tracked from Generic xanax 2 mg no prescription. 2009/09/29 12:20 Delete

    Buy generic xanax information. Titel auteur datum xanax medication bmnwbbuk. Xanax. Xanax 180 pills.

  29. Online pharmacy oxycontin.

    Tracked from Online pharmacy oxycontin. 2009/09/30 18:41 Delete

    Online pharmacy oxycontin.

  30. tsc tractor supply

    Tracked from tsc tractor supply 2009/10/01 05:17 Delete

    cibolo texas land for sale <a href="http://cibolo-texas-land-for-sale.gscoiqrqnvq.com/">cibolo texas land for sale</a> antonym worksheets <a href="http://antonym-worksheets.gscoiqrqnvq.com/">antonym worksheets</a>

  31. Buy xanax online.

    Tracked from Buy xanax online. 2009/10/01 14:19 Delete

    Buy xanax online without a prescription. Buy xanax overnight with online consultation. Buy xanax online.

  32. Buy xanax.

    Tracked from Buy cheap xanax. 2009/10/02 04:10 Delete

    Buy xanax. Xanax. Buy xanax online. Fda approved xanax us licensed doctors.

  33. Valium liquid form.

    Tracked from Valium liquid form. 2009/10/06 00:32 Delete

    Valium liquid form.

  34. Buy ultram cheapest site.

    Tracked from Buy ultram. 2009/10/06 23:05 Delete

    Canada pharmacy buy online ultram. Buy ultram from discount store. Buy ultram cheapest site. Ultram buy ultram online order cheap ultram. Buy ultram.

  35. Amoxicillin.

    Tracked from Amoxicillin rx655. 2009/10/07 10:57 Delete

    Amoxicillin for acne. Amoxicillin dosage. Amoxicillin online homepage. Amoxicillin. Prescription free amoxicillin. Taking amoxicillin while pregnant. Amoxicillin trihydrate. Amoxicillin anti inflammatory. Amoxicillin lowest.

  36. Ultram addiction.

    Tracked from Ultram withdrawal ultram addiction. 2009/10/07 23:58 Delete

    Ultram addiction.

  37. Prescription free amoxicillin.

    Tracked from Prescription free amoxicillin. 2009/10/08 16:48 Delete

    Prescription free amoxicillin.

  38. Order fioricet.

    Tracked from Generic fioricet. 2009/10/09 01:11 Delete

    Fioricet. Cheapest fioricet. Order fioricet. Cheap fioricet. Fioricet 2bwithout 2bprescription 2bsi. Fioricet usage and indications.

  39. Cheap codeine no prescription.

    Tracked from Cheap codeine no prescription. 2009/11/07 02:14 Delete

    Cheap codeine no prescription.

  40. Generic oxycontin photo.

    Tracked from Buy oxycontin. 2009/11/14 09:42 Delete

    Oxycontin online. Oxycontin. Oxycontin crush. Oxycontin mg 210. Oxycontin pills.

  41. Xanax no prescription.

    Tracked from Xanax. 2009/11/15 07:48 Delete

    Buy xanax online. Xanax.

  42. Buy phentermine.

    Tracked from Phentermine 37.5. 2009/11/15 17:00 Delete

    Phentermine. Phentermine success story. Phentermine hcl.

  43. Adderall.

    Tracked from Adderall xr adverse effects. 2009/11/16 08:54 Delete

    Adderall. Adderall treatment for bulimia.

  44. Buy xanax online.

    Tracked from No prescription needed purchasing xanax. 2009/11/16 23:07 Delete

    Xanax dosage. Buy xanax. No rx online xanax. Xanax. Xanax effect. Xanax without prescription. Xanax 2mg.

  45. Lorazepam side effects.

    Tracked from Buy lorazepam. 2009/11/17 08:13 Delete

    Lorazepam. Cheap lorazepam discount pharmacy.

  46. Lortab.

    Tracked from Lortab online. 2009/11/18 00:24 Delete

    Lortab withdrawal. Lortab. How long does lortab effects last. Lortab addiction. Lortab online pharmacy. Lortab overnight.

  47. What does a lortab 10 look like.

    Tracked from Buy lortab with no medical records. 2009/11/18 00:38 Delete

    Lortab no prescription. Lortab. Lortab 10 500. Snorting lortab. How to snort lortab.

  48. Lorazepam hydrocodone federal express.

    Tracked from Lorazepam. 2009/11/18 16:11 Delete

    Conversion table lorazepam to valium. Lorazepam order prescription online. Lorazepam side effects. Lorazepam order online consultation. Lorazepam plo gel. Diazepam to lorazepam conversion.

  49. Patient information on viagra sildenafil citrate.

    Tracked from Buy sildenafil citrate. 2009/11/19 00:47 Delete

    Sildenafil. Patient information on viagra sildenafil citrate.

  50. Lorazepam 0.5mg.

    Tracked from Lorazepam lorazapam cod. 2009/11/19 09:44 Delete

    Longterm consequences of lorazepam use. Ic lorazepam buspar.

  51. Codeine.

    Tracked from Codeine online. 2009/11/20 00:24 Delete

    Sell codeine. Apap codeine. Codeine combined pseudoephedrine. Robitusin with codeine. How codeine effects the brain. Liquid codeine how to make. Codeine.

  52. Lorazepam.

    Tracked from Lethal dose of lorazepam. 2009/11/20 12:19 Delete

    Lorazepam. Ativan lorazepam information.

  53. Adderall.

    Tracked from Buy adderall. 2009/11/21 07:31 Delete

    Buy adderall without a prescription. Ordering adderall.

  54. Ambien online.

    Tracked from Online meds no prescription ambien. 2009/11/22 04:19 Delete

    Buy ambien online no prescription. Ambien cr buy online no prescription. Buy ambien online cod.

  55. Tramadol.

    Tracked from Tramadol. 2009/11/22 16:19 Delete

    Tramadol side effects. Tramadol. Tramadol cheap no rx free overnight shipping.

  56. Celexa.

    Tracked from Celexa. 2009/11/23 03:42 Delete

    Celexa and pregnancy. Celexa. Celexa pregnancy.

  57. How while on adderall xr.

    Tracked from Adderall xr. 2009/11/23 21:04 Delete

    Adderall xr side effects. Adderall xr. Pharmacy price for adderall xr 20mg 30 capsules.

  58. Ritalin- side effects.

    Tracked from Experiments with ritalin. 2009/11/24 03:44 Delete

    What is ritalin used for. Ritalin picture. History of ritalin. Ritalin. Scientific evidence pro con ritalin. Ritalin- side effects.

  59. database empire last

    Tracked from database empire 2009/11/30 10:53 Delete

    [...] A second mortar attack 15 minutes later missed the police station in Stewartstown, about 10 miles away, but damaged a primary school and houses. Nevertheless,either In the most recent quarter, the company strengthened its reserves by about $38 mi...

  60. Tramadol.

    Tracked from Tramadol. 2010/01/03 11:10 Delete

    Tramadol side effects. Buy cheap tramadol mg tablets only in us online. Tramadol. Tramadol dog.

  61. What is valtrex.

    Tracked from Generic valtrex. 2010/01/03 12:19 Delete

    Valtrex.

  62. Klonopin.

    Tracked from Klonopin. 2010/01/04 00:09 Delete

    Fedex klonopin with precription. Klonopin side effects. Klonopin.

  63. Valtrex.

    Tracked from Buy valtrex online. 2010/01/04 17:37 Delete

    Valtrex. Dosage for valtrex. Buy valtrex without prescription. Dosage for valtrex oral.

  64. Ultram addiction.

    Tracked from Ultram dosage. 2010/01/05 04:26 Delete

    Ultram er. Buy ultram cheapest site. Ultram addiction.

  65. Valtrex.

    Tracked from When does valtrex go generic. 2010/01/05 16:00 Delete

    Buy valtrex com. Valtrex.

  66. Ambien overnight.

    Tracked from Ambien. 2010/01/06 03:09 Delete

    Ambien cr. Does ambien interrupt the menstrual cycle. Ambien side affects. Ambien. Employment drug test ambien.

  67. Klonopin.

    Tracked from Klonopin. 2010/01/06 14:28 Delete

    Klonopin side effects. Buy klonopin online. Klonopin. Can i shoot up klonopin. Klonopin erectile dysfunction.

  68. Tramadol.

    Tracked from Tramadol. 2010/01/07 13:24 Delete

    White tramadol with 377 on the side.

  69. Valtrex and achne.

    Tracked from Valtrex. 2010/01/07 22:55 Delete

    Valtrex. Valtrex als.

  70. Ultram addiction.

    Tracked from Ultram information from drugs com. 2010/01/08 11:07 Delete

    Ultram. Ultram warnings.

  71. Valtrex.

    Tracked from B valtrex. 2010/01/08 22:58 Delete

    Valtrex. Valtrex prices. Buy valtrex online. Valtrex medication.

  72. Ultram.

    Tracked from Ultram. 2010/01/09 14:06 Delete

    Ultram er. Difference between ultram and tramadol. Ultram information. Is ultram addictive. Ultram.

  73. Ativan.

    Tracked from Lorazepam ativan information and resources. 2010/01/10 02:13 Delete

    Ativan.

  74. Ambien sex.

    Tracked from Ambien. 2010/01/10 18:52 Delete

    Ambien. Ambien cr addiction. Generic ambien. Ambien cr.

  75. Klonopin.

    Tracked from Xanax with klonopin. 2010/01/11 22:06 Delete

    Klonopin under eye. Affects of klonopin addiction. Klonopin withdrawal symptoms. Klonopin. Order klonopin without prescription.

  76. Can you inject klonopin wafer.

    Tracked from Klonopin. 2010/01/12 19:12 Delete

    Klonopin withdrawal. Klonopin and alcoholics. Is librium comparable to klonopin. Klonopin. Klonopin lethal dose.

  77. Ambien addiction.

    Tracked from Generic ambien. 2010/01/14 00:55 Delete

    Ambien next day delivery us. Ambien. Where can i buy ambien for next day delivery. Buy ambien online cod. Ambien cr and weight loss. Addiction to ambien. Ambien no prescription needed. Ambien cr. Ambien next day delivery where.

  78. Ativan.

    Tracked from Generic ativan. 2010/01/14 16:15 Delete

    Ativan. Ativan treatmenr for seizures. Order ativan fast local delivery wholesale price. Medicine ativan.

  79. Jack black well you re not hardcore unless.

    Tracked from Jack black. 2010/01/15 04:52 Delete

    Black jack mountain oklahoma. Sedona pottery artist jack black. Jack black. Jack black lyrics.

  80. Ativan plo.

    Tracked from Ativan. 2010/01/15 11:47 Delete

    Ativan a narcotic. Www.weird skin sensations from rx ativan. Ativan. Rme ativan. Buy ativan online from discount pharmacy store.

  81. Klonopin lynx discussion board.

    Tracked from Klonopin ocd. 2010/01/15 23:57 Delete

    Klonopin side effects. Klonopin social anxiety. Klonopin.

  82. Ambien cr.

    Tracked from Ambien sleeping pill. 2010/01/16 11:06 Delete

    Long term ambien. Ambien sleeping pill. Ambien online. Ambien overnight. Ambien. Ambien addiction. Buy ambien.

  83. Tramadol.

    Tracked from Tramadol. 2010/01/16 21:23 Delete

    Comparative potencies of opioids tramadol. Tramadol.

  84. Valtrex.

    Tracked from Valtrex. 2010/01/17 14:43 Delete

    Valtrex.

  85. Ultram withdrawal.

    Tracked from Ultram. 2010/01/17 23:42 Delete

    Ultram.

  86. Ambien cr color.

    Tracked from Ambien purchase omline. 2010/01/19 23:27 Delete

    Ambien cr. Ambien online. Ambien. Where can i buy ambien for next day delivery. Ambien dosage.

  87. Ultram.

    Tracked from Ultram er. 2010/01/22 06:18 Delete

    Ultram. Ultram addiction.

  88. Valtrex side effects.

    Tracked from Valtrex and acne. 2010/01/22 23:04 Delete

    Valtrex and achn e. Side effects for valtrex. Valtrex. Valtrex side effects. Valtrex and flu shot.

  89. Ultram.

    Tracked from Buy ultram cheapest site. 2010/01/24 00:41 Delete

    Buy ultram pharmacy online. Ultram withdrawal. Ultram medicine ultram. Ultram addiction.

  90. Tramadol.

    Tracked from Tramadol hydrochloride. 2010/01/24 18:19 Delete

    Cod overnight tramadol. Tramadol saturday delivery. Tramadol. How much tramadol for daily use for dogs.

  91. Ultram fed ex.

    Tracked from Tramadol ultram medicine. 2010/01/25 04:17 Delete

    Ultram buy cheap no prescription.

  92. Ambien.

    Tracked from Ambien online no prescription overnight delivery. 2010/01/25 16:38 Delete

    Ambien overdose. Ambien. Generic ambien. Ambien hallucinations dizziness.

  93. Ultram.

    Tracked from Ultram er tablets. 2010/01/26 00:53 Delete

    Buy ultram cheapest site.

  94. Valtrex.

    Tracked from Valtrex. 2010/01/26 16:20 Delete

    Valtrex. Valtrex and flu shot. Buy valtrex without prescription. Buy valtrex online.

  95. Ambien cr.

    Tracked from Ambien. 2010/01/27 09:35 Delete

    Ambien us pharmacy. Ambien cr. Ambien. Where can i buy ambien for next day delivery.

  96. Ambien cr.

    Tracked from Ambien. 2010/01/27 15:56 Delete

    Ambien rx. Ambien.

  97. Ativan -buy -buying -online -cheap.

    Tracked from Ativan drug information. 2010/01/28 01:20 Delete

    Ativan. Ativan nursing info. Ativan use in seizure treatment. Buy ativan online from discount pharmacy store.

  98. Valtrex.

    Tracked from Valtrex. 2010/01/28 11:44 Delete

    Valtrex.

  99. Side effects of valtrex.

    Tracked from Valtrex. 2010/01/28 20:32 Delete

    Valtrex and achn e. Valtrex. Valtrex and flu shot. Valtrex and achne. Generic valtrex.

  100. Klonopin.

    Tracked from Klonopin ratings. 2010/01/29 11:40 Delete

    Klonopin side effects. Buy klonopin. Xanax or klonopin. Klonopin online. Klonopin. Klonopin sr prescribing information. Snorting klonopin.

  101. Ultram.

    Tracked from Ultram. 2010/01/29 20:57 Delete

    Ultram withdrawal symptoms. Ultram er.

  102. Ativan pregnancy.

    Tracked from Ativan dosage. 2010/01/30 11:34 Delete

    Ativan. Ativan treatmenr for seizures. Ativan lorazepam.

  103. Ambien cr 12.5 photo.

    Tracked from Ambien. 2010/01/30 21:25 Delete

    Ambien tolerance. Ambien cr and weight loss. Ambien. Ambien addiction.

  104. Klonopin side effects.

    Tracked from Is librium comparable to klonopin. 2010/01/31 11:34 Delete

    Klonopin.

  105. Ativan.

    Tracked from Ativan. 2010/01/31 21:21 Delete

    Prescription drugs ativan depakote. Ativan potentiates. Ativan without prescription. Ativan. Ativan online prescription overnight mastercard. Ativan medicine.

  106. Pharmacy order generic xanax.

    Tracked from How long does xanax stay in your system. 2010/02/01 07:34 Delete

    Xanax dosage. Xanax. Xanax during pregnancy.

  107. Buy klonopin no prescription.

    Tracked from Klonopin drug dosage. 2010/02/02 07:58 Delete

    Valium vs klonopin.

  108. Valtrex.

    Tracked from Side effects for valtrex. 2010/02/02 20:05 Delete

    Valtrex. Generic valtrex.

  109. Klonopin.

    Tracked from Klonopin. 2010/02/03 05:05 Delete

    Klonopin anxiety dose. Klonopin abuse. Buy klonopin online. Klonopin. Klonopin withdrawl symptoms.

  110. Dosage for valtrex.

    Tracked from Valtrex. 2010/02/03 19:17 Delete

    Valtrex.

  111. Ambien next day delivery canada.

    Tracked from Ambien. 2010/02/04 05:53 Delete

    Ambien latest side effects. Ambien. Long term ambien. Ambien side effects.

  112. Buy cialis buy viagara.

    Tracked from Cialis. 2010/02/04 16:47 Delete

    Cialis.

  113. Buy ativan.

    Tracked from Ativan. 2010/02/04 20:16 Delete

    Ativan. Ativan pregnancy. Ativan caffeine interaction. What is the half life of ativan sl. Can you give ativan to a dog.

  114. Hydrocodone cause mental side effects.

    Tracked from Side effects of hydrocodone. 2010/02/04 20:30 Delete

    Hydrocodone and side effects. Alcohol hydrocodone side effects.

  115. Ultram.

    Tracked from Ultram er. 2010/02/05 05:57 Delete

    Ultram withdrawal. Ultram. Ultram prescriptio.

  116. Augmentin xr dosage.

    Tracked from Antibiotic augmentin side effects. 2010/02/05 10:51 Delete

    Augmentin. Augmentin used for. Augmentin per ml. Augmentin 875. Augmentin allergic reactions symptoms.

  117. Valtrex.

    Tracked from Valtrex. 2010/02/05 19:04 Delete

    Valtrex. Valtrex use during pregnancy.

  118. Percocet.

    Tracked from Buy percocet online without office visit. 2010/02/05 23:00 Delete

    Percocet without prescription. Cheap percocet. Buy percocet. Percocet. Generic percocet. Gereric names for percocet 5 325.

  119. Klonopin overnight without a prescription.

    Tracked from Klonopin. 2010/02/06 08:26 Delete

    Klonopin addiction. Buy klonopin online. Klonopin sr prescribing information. Klonopin survivors. Klonopin. Online klonopin fed exed over night. Klonopin online next day delivery usa.

  120. Ultram tramadol.

    Tracked from Tramadol. 2010/02/06 17:18 Delete

    Tramadol overdose. Tramadol hcl. Tramadol.

  121. Tramadol.

    Tracked from Tramadol. 2010/02/06 18:29 Delete

    Canine tramadol. Tramadol cod. Tramadol. Tramadol medication. Tramadol 180 electronic check.

  122. Tramadol.

    Tracked from Cheap tramadol cheap tramadol cheap tramadol. 2010/02/06 22:21 Delete

    Comparative potencies of opioids tramadol. Buy tramadol online save wholesale price yep. Tramadol side effects. Tramadol affects drug test. Tramadol. Tramadol 50mg. Tramadol maintence.

  123. Ativan.

    Tracked from Ativan. 2010/02/07 03:15 Delete

    Ativan. Rme ativan. Generic ativan. Ativan treatmenr for seizures.

  124. Ambien.

    Tracked from Ambien. 2010/02/07 09:55 Delete

    Ambien. Generic ambien. Ambien prescriptions. Ambien side effects. Drugs detected on drug test ambien.

  125. Ambien addiction.

    Tracked from Suicide ambien. 2010/02/07 11:37 Delete

    Ambien.

  126. Lorazepam y 57.

    Tracked from Lorazepam. 2010/02/07 15:10 Delete

    Lorazepam. Lorazepam ativan information and resources. Ativan lorazepam information. Lorazepam to valium conversion. Ativan lorazepam.

  127. How to extract acitaminiaphine from percocet.

    Tracked from Percocet. 2010/02/08 02:23 Delete

    Compare and contrast percocet and oxycodone apap. Percocet.

  128. Zolpidem.

    Tracked from Cheap zolpidem. 2010/02/08 12:03 Delete

    Zolpidem and sleepwalking. Zolpidem fedex. Zolpidem. Zolpidem abuse. Zolpidem with alcohol. Zolpidem ambien.

  129. Valtrex.

    Tracked from Valtrex. 2010/02/08 12:20 Delete

    Valtrex.

  130. Valtrex.

    Tracked from Valtrex. 2010/02/09 05:36 Delete

    Valtrex. Side effects of valtrex.

  131. Long term use of valtrex.

    Tracked from Valtrex and weight loss. 2010/02/09 23:05 Delete

    Valtrex dosing. Valtrex. Valtrex interactions. Valtrex side effects. Dosage for valtrex oral. Buy valtrex online. Valtrex dosage adult.

  132. Compare brand name and generic percocet.

    Tracked from Percocet. 2010/02/10 15:08 Delete

    Fun with percocet. Adrenaline levels after percocet. Percocet withdrawal symptoms.

  133. Ultram gc ms.

    Tracked from Ultram tramadol. 2010/02/10 20:01 Delete

    Ultram. Ultram er. Ultram online. Ultram tramadol. Ultram abuse.

  134. Valtrex medication.

    Tracked from Valtrex. 2010/02/11 10:10 Delete

    Side effects for valtrex. Valtrex info. Valtrex shingles. Generic valtrex.

  135. Methotrexate side effects.

    Tracked from Methotrexate side effects. 2010/02/11 10:51 Delete

    Imuran methotrexate. Hcg levels up after shot of methotrexate.

  136. Can you snort ativan.

    Tracked from Ativan. 2010/02/11 22:55 Delete

    Ativan. Ativan withdrawal addiction. Ativan information from drugs com. Ativan withdrawal. Ativan and celexa. Ativan side effects. Ativan xanax valuim trial pack.

  137. Cheap tramadol.

    Tracked from Tramadol. 2010/02/12 08:16 Delete

    Cheap tramadol.

  138. Tramadol.

    Tracked from Tramadol. 2010/02/15 11:20 Delete

    Tramadol side effects. Tramadol hcl.

  139. Ambien.

    Tracked from Ambien cr. 2010/02/15 13:02 Delete

    Ambien cr. Ambien online. Ambien. Buy ambien online. Buy ambien.

  140. Herbal viagra.

    Tracked from Natural viagra alternatives. 2010/02/15 16:31 Delete

    Viagra. Get viagra. Generic viagra. Viagra side effects. Viagra hgh. Cheapest viagra prices.

  141. Medicine ultram.

    Tracked from Ultram. 2010/02/15 22:40 Delete

    Ultram fed ex.

  142. Tramadol.

    Tracked from Tramadol. 2010/02/16 11:59 Delete

    Tramadol.

  143. Ultram.

    Tracked from Ultram. 2010/02/16 21:03 Delete

    Ultram. Ultram 20 mg. Ultram addiction.

  144. Valtrex and ache.

    Tracked from Valtrex. 2010/02/17 10:16 Delete

    Dosage for valtrex oral. Nicole kidman valtrex.

  145. Ambien online viagra.

    Tracked from Ambien online no prescription overnight delivery. 2010/02/17 19:25 Delete

    Ambien. Ambien online. Ambien side effects. Ambien cr. Ambien hallucinations dizziness.

  146. Ultram er.

    Tracked from Ultram. 2010/02/18 04:35 Delete

    Ultram. Ultram medicine ultram.

  147. Ultram cod.

    Tracked from Ultram dosage. 2010/02/19 02:44 Delete

    Ultram er. Ultram online order. Ultram. Buy ultram online.

  148. Cialis wholesale online.

    Tracked from Cialis prescription. 2010/02/19 04:14 Delete

    Buy cialis online.

  149. Ultram 50.

    Tracked from Low dose naltrexone with ultram. 2010/02/19 18:31 Delete

    Ultram. Order ultram no prescription. Ultram pain. Buy ultram cheapest site.

  150. Finasteride propecia.

    Tracked from Finasteride mg hair. 2010/02/20 03:16 Delete

    Finasteride 1mg. Finasteride. 1mg finasteride for bph. Finasteride brand s propecia proscar side effects. Propecia side effects finasteride. Generic finasteride.

  151. Tramadol.

    Tracked from Tramadol. 2010/02/20 10:00 Delete

    Comparative potencies of opioids tramadol. Tramadol side effects. Tramadol. Cheap comment message preview tramadol.

  152. Buying viagra online.

    Tracked from Buy viagra online. 2010/02/20 16:28 Delete

    Online viagra. Buy viagra online. Viagra online cheap.

  153. Drug treatment for valtrex.

    Tracked from Buy valtrex. 2010/02/20 18:33 Delete

    Valtrex. Buy valtrex com. Valtrex information. Valtrex 500. Valtrex side effects. Side effects of valtrex. Buy valtrex.

  154. Flight tickets online.

    Tracked from Flight tickets online. 2010/02/21 11:07 Delete

    Flight tickets online.

  155. Ultram.

    Tracked from Ultram and withdrawal. 2010/02/21 12:13 Delete

    Ultram. Ultram er. Buy ultram cheapest site. The mondego group wiki xwiki buy ultram. Buy ultram.

  156. Buy phentermine online.

    Tracked from Buy cheap phentermine. 2010/02/21 19:51 Delete

    Buy phentermine. Blue phentermine gt buy phentermine online. Buy phentermine mg. Buy generic phentermine bloghoster.

  157. Suicide ambien.

    Tracked from Generic ambien. 2010/02/21 20:48 Delete

    Buy ambien without a prescription. Wellbutrin together with ambien suicide. Ambien. Ambien and the menstrual cycle. Ambien no prescription needed.

  158. Viagra online discount.

    Tracked from Viagra sales online. 2010/02/22 09:03 Delete

    Cheap viagra lowest prices online.

  159. Valtrex.

    Tracked from Valtrex odor. 2010/02/22 12:27 Delete

    Valtrex.

  160. Cheap valtrax.

    Tracked from Cheap valtrax. 2010/02/22 17:59 Delete

    Cheap valtrax.

  161. Klonopin.

    Tracked from Klonopin. 2010/02/23 04:52 Delete

    Klonopin side effects. Xanax with klonopin. Klonopin. Klonopin sr prescribing information. Lethal dose klonopin.

  162. Cheap xanax.

    Tracked from Uhi foundation forums xanax cheap phentermine. 2010/02/23 08:00 Delete

    Cheap xanax. Hysbysfwrdd cymrux xanax cheap phentermine. Cheap generic xanax 2mg bars. Cheap no prescription xanax order online. Price comparison for xanax as well as viagra cheap. Buy cheap xanax without prescription.

  163. Buy ambien 12.5 mgm overnight mail md consultation.

    Tracked from Ambien next day delivery where. 2010/02/23 12:58 Delete

    Buy ambien without a prescription. Ambien us pharmacy. Ambien overdose. Ambien. Ambien addiction. Ambien and side effects. Ambien cr. Buy ambien without prescription.

  164. Card master no phentermine prescription.

    Tracked from Phentermine without prescription. 2010/02/23 17:38 Delete

    Phentermine no prescription. Phentermine free consultation. Phentermine dosage. Phentermine. Phentermine cheap no prescription. Buy phentermine.

  165. Can you inject klonopin wafer.

    Tracked from Klonopin. 2010/02/24 02:10 Delete

    Klonopin side effects. Online klonopin fed exed over night. Klonopin and suicide. Klonopin lethal dose. Does klonopin deplete potassium. Can you inject klonopin wafer.

  166. Voyforums buy viagra online.

    Tracked from Where can i buy gneric viagra usa. 2010/02/24 13:14 Delete

    Viagra buy.

  167. Ativan effects.

    Tracked from Ativan. 2010/02/24 15:09 Delete

    Ativan information. Buy ativan online. Ativan.

  168. Cheapest phentermine online.

    Tracked from Phentermine online pharmacy. 2010/02/24 23:07 Delete

    Buy cheap phentermine online lowest prices. Buy phentermine online. Online phentermine. Phentermine online pharmacy. Cheap phentermine online. Cheapest phentermine online.

  169. Ativan migraines.

    Tracked from Ativan. 2010/02/24 23:10 Delete

    Ativan dosage. Ativan addiction. Ativan migraines.

  170. Cheap viagra.

    Tracked from Fast and cheap viagra. 2010/02/25 11:12 Delete

    Cheap viagra. Search results dirt cheap viagra. Buy cheap viagra. Fast and cheap viagra.

  171. Klonopin.

    Tracked from Klonopin. 2010/02/25 13:43 Delete

    Klonopin side effects. How can i kill myself with klonopin. Klonopin.

  172. About glaxosmithkline pharmaceuticals and levitra.

    Tracked from Online pharmacy cost levitra. 2010/02/25 17:42 Delete

    Zoloft levitra pe cure. Levitra. Levitra online consultation.

  173. Codeine and heroin.

    Tracked from Robitusin with codeine. 2010/02/25 23:10 Delete

    Can motrin be taken with codeine. Codeine cough syrup. Hard to annunciate fioricet codeine. Buy 222 codeine. Codeine. Smoking codeine. Allergy to codeine. Somas do they have codeine in them.

  174. Price comparison for xanax as well as viagra cheap.

    Tracked from Http cheap-xanax.idemna.com xanax.html. 2010/02/25 23:11 Delete

    Cheap xanax. Xanax buy xanax online discoint xanax cheap. Cheap generic xanax 2mg bars. Forum akgl cars toyota xanax phentermine cheap. Buy cheap xanax. Cheap xanax online buy cheap xanax buy cheap xanax.

  175. Buy ultram.

    Tracked from Jh solutions buy ultram online. 2010/02/26 11:43 Delete

    Buying ultram no prescription. Buy ultram. Buy ultram online.

  176. Klonopin depersonalization derealization.

    Tracked from Klonopin. 2010/02/26 13:41 Delete

    Order klonopin without prescription. Librium vs klonopin. Klonopin lynx discussion board. Klonopin and alcoholic. Klonopin. Generic klonopin clonazepam with no prescription. Medication klonopin.

  177. Buy cheap phentermine online.

    Tracked from Order phentermine phentermine online. 2010/02/26 21:51 Delete

    Phentermine online. Buy c 20heap phentermine online. Phentermine online no prescription. Order phentermine online.

  178. Ativan data.

    Tracked from Ativan for neck pain. 2010/02/26 23:07 Delete

    Ativan. Ativan benefits. Ativan half life. Adderal ativan. Drug dosage for ativan.

  179. Carisoprodol buy cheap carisoprodol order online.

    Tracked from Carisoprodol buy cheap carisoprodol order online. 2010/02/27 14:33 Delete

    Carisoprodol buy cheap carisoprodol order online. Cheap carisoprodol.

  180. Online pharmacy oxycodone.

    Tracked from Online consultation oxycodone. 2010/02/27 21:54 Delete

    Oxycodone online without a prescription. Online pharmacy oxycodone. Oxycodone online. Buy oxycodone online without.

  181. Buy fioricet online.

    Tracked from Fioricet online. 2010/02/28 14:07 Delete

    Fioricet online.

  182. Buy valtrax.

    Tracked from Buy valtrax. 2010/03/01 01:53 Delete

    Buy valtrax.

  183. Buy valtrax.

    Tracked from Buy valtrax. 2010/03/01 10:39 Delete

    Buy valtrax.

  184. Online phentermine.

    Tracked from Phentermine cod. 2010/03/01 21:57 Delete

    Phentermine online. Phentermine 37 5mg. Phentermine. Phentermine capsule. Phentermine weight loss pill. Phentermine pregnancy. Phentermine information.

  185. Purchase vicodin online.

    Tracked from Legal meds online usa vicodin. 2010/03/02 10:38 Delete

    Vicodin online no prescription. Prescriptions drugs pharmacy online vicodin. Buy vicodin online. Buy vicodin online without. Online vicodin. Purchase vicodin online. Lorcet vicodin online.

  186. Generic fioricet.

    Tracked from Order fioricet. 2010/03/02 19:29 Delete

    Order c o d fioricet. Purchase fioricet online without prescription. Fioricet overnight. Order fioricet 32.

  187. Buy ultram online.

    Tracked from Buy ultram. 2010/03/03 15:09 Delete

    Buy fast online ultram. Buy ultram. Buy ultram online. Buy ultram 50mg.

  188. Buy ephedra stackers cheap.

    Tracked from Buy ephedra stackers cheap. 2010/03/04 10:20 Delete

    Buy online cheap yellow swarms with ephedra. Buy ephedra stackers cheap. Pure ephedra buy online cheap.

  189. Cheap viagra.

    Tracked from Viagra cheap. 2010/03/04 19:34 Delete

    Viagra cheap.

  190. Generic xanax.

    Tracked from Xanax. 2010/03/05 09:37 Delete

    Xanax dosage. Xanax no prescription. Xanax.

  191. Best online casino bonus.

    Tracked from Internet casino http. 2010/03/05 18:44 Delete

    Casino guide http. Web casino http.

  192. Buy oxycodone online without.

    Tracked from Buy oxycodone without a prescription. 2010/03/06 09:08 Delete

    Buy oxycodone online. Buy oxycodone without prescription. Buy oxycodone.

  193. Flight tickets online.

    Tracked from Flight tickets online. 2010/03/07 07:45 Delete

    Flight tickets online.

  194. Cheap viagra.

    Tracked from Viagra. 2010/03/07 10:01 Delete

    Viagra dosage. Viagra. Cheap viagra. How viagra works. Re viagra cello.

  195. Cheap phentermine diet pill.

    Tracked from Cheap phentermine. 2010/03/07 16:17 Delete

    Cheap ... phentermine cod url. Buy cheap online phentermine. Cheap phentermine c o d payment. Cheap free phentermine shipping. Buy cheap phentermine. Cheap phentermine diet pill.

  196. Buy cheap phentermine.

    Tracked from Cheap phentermine. 2010/03/08 08:57 Delete

    Cheap phentermine. Cheap phentermine yellow. Buy cheap phentermine online. Cheap phentermine online 37 5. Order phentermine online buy cheap pharmacy here.

  197. Buy cheap xanax.

    Tracked from Cheap xanax. 2010/03/08 17:32 Delete

    Cheap xanax online. Hysbysfwrdd cymrux xanax cheap phentermine. Buy cheap generic xanax. Cheap xanax fast delivery. Buy cheap xanax without prescription.

  198. Ultram buy cheap no prescription.

    Tracked from Cheap ultram. 2010/03/09 09:08 Delete

    Cheap cod ultram. Ultram buy cheap no prescription. Order ultram cheap pharmacy. Ultram buy ultram online order cheap ultram.

  199. Buy cheap phentermine.

    Tracked from Cheap phentermine cod. 2010/03/09 09:40 Delete

    Buy cheap phentermine. Phentermine pill buy cheap phentermine. Phentermine cheap.

  200. Tramadol.

    Tracked from Canine tramadol. 2010/03/09 12:58 Delete

    Buy tramadol. Tramadol side affects. Tramadol. Tramadol cheap no rx.

  201. Cheap phentermine.

    Tracked from Get phentermine. 2010/03/10 09:52 Delete

    Cheap phentermine diet pill. Phentermine. Phentermine yellow.

  202. Effects of xanax.

    Tracked from Xanax. 2010/03/10 10:19 Delete

    Xanax side effects. Xanax while pregnant. Xanax online. Xanax cocktail. Xanax. Xanax effect.

  203. Phentermine 37.5 mg online prescription.

    Tracked from Phentermine online pharmacy. 2010/03/10 19:42 Delete

    Order phentermine online. Phentermine online. Buy phentermine online. Phentermine diet pills buy online. Online phentermine. Buy phentermine online discount cheap pharmacy. Buy phentermine order cheap online. Adipexdrug addiction order phentermine online.

  204. Buy vicodin.

    Tracked from Buy vicodin no prescription. 2010/03/11 09:48 Delete

    Buy 15mg vicodin with a doctor consent. Buy vicodin without a prescription. Buy vicodin without script. Buy vicodin.

  205. Viagra online add to cart.

    Tracked from Buy viagra online. 2010/03/11 10:23 Delete

    Purchase viagra online. Buy cheap viagra online uk. Online viagra. Viagra online. Order viagra online.

  206. Buy lortab.

    Tracked from Buy lortab. 2010/03/11 11:12 Delete

    Buy lortab.

  207. Cialis discount american pharmacy.

    Tracked from Cialis. 2010/03/12 01:29 Delete

    Buy cialis phentermine. Buy cialis. Cheapest cialis. Cialis best price buy online. Taking viagra with cialis. Online pharmacy cialis on line. Cialis.

  208. Cheap online generic viagra.

    Tracked from Cheap viagra. 2010/03/12 04:51 Delete

    Cheap viagra. Buy viagra cheap. Cheap viagra discount.

  209. Cialis american pharmacy.

    Tracked from Levitra cialis viagra comparison. 2010/03/12 13:03 Delete

    Buy cialis. Cialis best price buy online. Cialis.

  210. references decline uncertainty warm

    Tracked from references decline uncertainty warm 2010/03/13 02:29 Delete

    gps weather environmental values

  211. No prescription vicodin.

    Tracked from Where to order vicodin with no prescription. 2010/03/13 11:37 Delete

    Liquid vicodin. Buy vicodin without script. Vicodin. Vicodin without prescription.

  212. Buy phentermine online.

    Tracked from Online phentermine. 2010/03/13 11:49 Delete

    Buy phentermine online. Online phentermine.

  213. Buy soma online without rx.

    Tracked from Buy soma online. 2010/03/13 20:31 Delete

    Buy soma. Cheapest sites for buying soma online. Buy soma online.

  214. Cialis.

    Tracked from Buying generic cialis. 2010/03/14 09:45 Delete

    Cialis best price buy online.

  215. Cheap vicodin.

    Tracked from Vicodin cheap. 2010/03/14 11:11 Delete

    Buy vicodin cheap with no prescription. Cheap vicodin.

  216. Tramadol hcl.

    Tracked from Tramadol. 2010/03/15 05:24 Delete

    Tramadol cod. Tramadol cheap. Cheap tramadol. Tramadol dosage. Tramadol.

  217. Fosamax.

    Tracked from Fosamax. 2010/03/15 10:15 Delete

    Fosamax. Side effects from fosamax medication. Fosamax side effects.

  218. Cheap tramadol.

    Tracked from Cheap tramadol. 2010/03/17 12:34 Delete

    Cheap tramadol without prescription.

  219. Buy vicodin without a prescription.

    Tracked from Buy vicodin online no prescription cod. 2010/03/17 18:32 Delete

    Buy vicodin without a prescription.

  220. Ephedrine.

    Tracked from Ephedrine yellow swarm. 2010/03/17 19:35 Delete

    Ephedrine. Vasopro ephedrine. Ephedrine how its made. Manufacturing ephedrine. Ephedrine vasopro. Dne ephedrine.

  221. Buy ativan online.

    Tracked from Buy ativan from discount store. 2010/03/17 22:08 Delete

    Buy ativan online. Buy prescriptions ativan. Buy ativan.

  222. Buy lorazepam no prescription.

    Tracked from Buy link lorazepam. 2010/03/18 11:11 Delete

    Buy lorazepam online.

  223. Can you take ibuprofen with amoxicillin.

    Tracked from Duration treatment amoxicillin. 2010/03/18 17:09 Delete

    Kittens amoxicillin. Penicillin vk vs amoxicillin.

  224. Buy amoxicillin no prescription required.

    Tracked from Buy online amoxicillin. 2010/03/18 18:25 Delete

    Buy amoxicillin no prescription required.

  225. Buy alprazolam.

    Tracked from Buy alprazolam. 2010/03/19 02:19 Delete

    Buy alprazolam.

  226. Valtrax online.

    Tracked from Valtrax online. 2010/03/19 07:48 Delete

    Valtrax online.

  227. Buy viagra online.

    Tracked from Purchase viagra online. 2010/03/19 20:53 Delete

    Buy viagra online. Viagra free sites computer find online. Viagra online no rx comparison. Viagra online. Order viagra online. Buying viagra online uk.

  228. Cheap ativan buy pharmacy online now.

    Tracked from Buy ativan online. 2010/03/20 08:53 Delete

    Buy ativan online. Buy medication ativan cheap inurl. Buy ativan.

  229. Online phentermine.

    Tracked from Online phentermine. 2010/03/20 13:08 Delete

    Buy phentermine online. Online phentermine. Cheapest phentermine online.

  230. Buy oxycodone online.

    Tracked from Buy oxycodone no prescription. 2010/03/20 18:59 Delete

    Buy oxycodone no prescription.

  231. Cheap viagra.

    Tracked from Cheap viagra. 2010/03/21 13:02 Delete

    Cheapest viagra prices. Buy cheap viagra.

  232. Buy ambien.

    Tracked from Buy ambien online. 2010/03/21 15:25 Delete

    Buy ambien.

  233. Buy xanax.

    Tracked from Buy xanax. 2010/03/22 01:41 Delete

    Buy xanax.

  234. Cheap soma.

    Tracked from Cheap soma. 2010/03/22 15:42 Delete

    Cheapest online soma. Cheap soma. Soma cheap. Cheap soma overnight.

  235. Adderall.

    Tracked from Adderall. 2010/03/22 20:16 Delete

    Generic adderall. Adderall.

  236. Buy xanax.

    Tracked from Buy xanax online. 2010/03/23 04:58 Delete

    Buy xanax. Buy xanax without prescription in usa.

  237. Buy ativan without a prescription.

    Tracked from Buy ativan. 2010/03/23 12:08 Delete

    Buy ativan online. Buy medication ativan cheap 34542.

  238. Buy cheap soma online.

    Tracked from Buy soma online. 2010/03/23 19:54 Delete

    Buy soma. Buy soma online. Soma online buy soma online bloghoster.

  239. Buy carisoprodol.

    Tracked from Buy carisoprodol. 2010/03/24 09:09 Delete

    Buy carisoprodol. Buy cheap carisoprodol here. Buy carisoprodol online.

  240. Cheap ultram.

    Tracked from Cheap ultram without prescription. 2010/03/25 01:22 Delete

    Cheap ultram. Buy cheap tramadol tramadol ultram. Cheap internet online pharmacy prescription ultram. Buy cheap prescription ultram.

  241. Ephedrine dirt cheap.

    Tracked from Ephedrine cheap. 2010/03/25 16:10 Delete

    Ephedrine dirt cheap. Cheapest ephedrine. Cheapest ephedrine forum. Cheap ephedrine. Ephedrine cheap.

  242. Clonazepam.

    Tracked from Buy clonazepam. 2010/03/25 18:25 Delete

    Clonazepam. Clonazepam overseas.

  243. Zolpidem.

    Tracked from Zolpidem. 2010/03/26 18:13 Delete

    Zolpidem generic. Cheap zolpidem persriptions. Zolpidem eszopiclone indications. Zolpidem with alcohol. Zolpidem.

  244. Fioricet online.

    Tracked from Generic fioricet. 2010/03/27 00:59 Delete

    Buy cheap fioricet. Cheap fioricet online.

  245. Zolpidem.

    Tracked from Zolpidem. 2010/03/27 02:37 Delete

    Zolpidem tartrate. Zolpidem overnight. Zolpidem.

  246. Zolpidem.

    Tracked from Zolpidem. 2010/03/27 16:14 Delete

    Zolpidem fedex. Zolpidem zolpidem tartrate. Zolpidem.

  247. Carisoprodol.

    Tracked from Buy carisoprodol. 2010/03/28 03:19 Delete

    Soma carisoprodol. Carisoprodol phentermine yellow. Carisoprodol. Carisoprodol top rated online pharmacy.

  248. Ephedrine ban.

    Tracked from Pure ephedrine. 2010/03/28 04:54 Delete

    Ephedrine p57. Ephedrine. Ephedrine pills. Ephedrine metabadrine. Ephedrine cheap.

  249. Buy vicodin.

    Tracked from Buy vicodin online. 2010/03/28 18:56 Delete

    Buy vicodin online. Buy vicodin overseas without prescription. Buy vicodin. I need to buy vicodin online. Vicodin buy.

  250. Buy alprazolam.

    Tracked from Buy alprazolam. 2010/03/28 21:02 Delete

    Buy alprazolam. Buy 2mg alprazolam without a prescription.

  251. Cheap tramadol.

    Tracked from Cheap tramadol. 2010/03/29 00:03 Delete

    Cheap tramadol. Tramadol medicine. Tramadol. Tramadol 180.

  252. Buy no phentermine prescription.

    Tracked from Buy phentermine online. 2010/03/29 04:18 Delete

    Buy phentermine online. Buy phentermine no prescription. Buy phentermine mg. Buy phentermine.

  253. Zolpidem.

    Tracked from Zolpidem. 2010/03/29 12:11 Delete

    Zolpidem.

  254. Tramadol.

    Tracked from Cheap tramadol. 2010/03/29 22:39 Delete

    Tramadol hydrochloride. Tramadol.

  255. Tramadol order online.

    Tracked from Tramadol online. 2010/03/29 23:48 Delete

    Tramadol online. Tramadol online sit. Online pharmacy tramadol.

  256. Tramadol cheap no rx.

    Tracked from Will tramadol hcl test positive in drug testing. 2010/03/30 00:27 Delete

    Best price for tramadol. Tramadol.

  257. Percocet.

    Tracked from Knos disease percocet. 2010/03/30 09:14 Delete

    Percocet withdrawal. Percocet. Percocet addiction.

  258. Cheap 37 5 phentermine.

    Tracked from Cheap phentermine no prescription required. 2010/03/30 11:01 Delete

    Cheap phentermine free shipping. Phentermine cheap no prescription. Cheap phentermine no prescription. Cheap phentermine online. Cheap phentermine.

  259. Zolpidem.

    Tracked from Zolpidem overdose. 2010/03/30 13:05 Delete

    Cheap zolpidem. Zolpidem.

  260. Adderall.

    Tracked from Adderall side effects adults. 2010/03/30 15:17 Delete

    Buying adderall online pharmacy. Adderall. Drug adderall. Adderall withdrawal.

  261. Buy amoxicillin online cheap amoxicillin.

    Tracked from Amoxicillin online no prescription. 2010/03/30 21:17 Delete

    Amoxicillin online. Buy amoxicillin online cheap amoxicillin. Amoxicillin online no prescription. Amoxicillin online homepage.

  262. Tramadol without prescription.

    Tracked from Tramadol without prescription. 2010/03/31 01:29 Delete

    Does tramadol require a prescription in mexico. Generic for tramadol prescription. Tramadol prescription. Tramadol without prescription.

  263. Buy fioricet online.

    Tracked from Cheap fioricet online. 2010/03/31 03:25 Delete

    Purchase fioricet online without prescription. Fioricet generic online prescription. Cheap fioricet online. Buy fioricet online free fedex. Fioricet online.

  264. Zolpidem zolpidem tartrate.

    Tracked from Zolpidem overnight. 2010/03/31 11:27 Delete

    Zolpidem.

  265. Buy adipex-p phentermine online.

    Tracked from Buy phentermine. 2010/03/31 11:36 Delete

    Buy phentermine online. Buy phentermine no physician contact. Buy phentermine.

  266. Phentermine no prescription.

    Tracked from Discount phentermine prescription. 2010/03/31 13:23 Delete

    Phentermine without prescription.

  267. Cheap fioricet w free shipping.

    Tracked from Cheap fioricet. 2010/03/31 14:18 Delete

    Cheap fioricet link net online site.

  268. Ativan withdrawal.

    Tracked from Ativan half life. 2010/04/01 03:38 Delete

    Ativan. Medicine ativan. Ativan without prescription.

  269. Buy amoxicillin without prescription.

    Tracked from Buy amoxicillin without prescription. 2010/04/01 13:32 Delete

    Buy amoxicillin without prescription. Buy amoxicillin with no prescription. Buy amoxicillin online cheap amoxicillin.

  270. Percocet 7.5.

    Tracked from Percocet. 2010/04/01 19:21 Delete

    Neo percocet. Compare and contrast percocet and oxycodone apap. Percocet. Long term percocet withdrawal symptoms. Therapeutic range for percocet.

  271. Buy phentermine online.

    Tracked from Buy phentermine no physician contact. 2010/04/02 01:47 Delete

    Buy cheap phentermine. Buy phentermine online no prescription. Buy phentermine online. Buy phentermine without prescription.

  272. Buy phentermine.

    Tracked from Buy phentermine on line. 2010/04/02 12:18 Delete

    Buy phentermine. Buy phentermine cod. Mg buy phentermine. Buy cheap phentermine online. Phentermine buy. Buy cheap phentermine.

  273. Buy lortab without prescription.

    Tracked from Buy lortab fibromyalgia bill consolidation c. 2010/04/02 13:37 Delete

    Buy lortab online. Buy lortab. Buy lortab with no perscription.

  274. Tadalafil now.

    Tracked from Generic tadalafil. 2010/04/02 14:23 Delete

    Micronized tadalafil. Tadalafil. Cialis generic tadalafil. Herbs with tadalafil.

  275. Order valium online.

    Tracked from Valium. 2010/04/02 14:54 Delete

    Valium side effects. Fake valium thailand. Valium. Valium online no prescription.

  276. Zoo sex.

    Tracked from Farm zoo sex animalsex zoosex bestialityporn. 2010/04/02 16:17 Delete

    Sex zoo xxx. Zoo sex.

  277. Casino royale.

    Tracked from Wynn casino. 2010/04/02 21:19 Delete

    Casino royale reviews. Grand casino biloxi.

  278. Cheap adderall.

    Tracked from Buy cheap adderall online. 2010/04/03 02:22 Delete

    Buy cheap adderall online.

  279. Animal sex movies.

    Tracked from Animal sex stories. 2010/04/03 08:13 Delete

    Animal sex movies. Free animal sex stories. Animal sex dvds. Animal sex stories. Teen animal sex. Animal sex.

  280. Online viagra.

    Tracked from Viagra online cheap. 2010/04/03 09:04 Delete

    Viagra online stores. Buy viagra online. Online viagra prescriptions.

  281. Buy cheap oxycontin.

    Tracked from Buy cheap oxycontin. 2010/04/03 13:11 Delete

    Buy cheap oxycontin.

  282. Cheap fioricet.

    Tracked from Cheap fioricet. 2010/04/03 15:33 Delete

    Cheap fioricet and one day delivery. Fioricet cheap. Cheap fioricet.

  283. Celebrex as well as ultram gt online medications.

    Tracked from Ultram home gym phentermine online. 2010/04/03 21:10 Delete

    Buy ultram pharmacy online. Canada pharmacy buy online ultram. Ultram online. Celebrex as well as ultram gt online medications.

  284. Ptsd and meridia.

    Tracked from Buy meridia online information buy meridia online. 2010/04/03 21:34 Delete

    Prescription drug meridia. Meridia. Meridia drug online.

  285. Buy soma.

    Tracked from Buy carisoprodol diazepam online soma. 2010/04/04 03:30 Delete

    Buy soma. Buy soma online.

  286. Amoxicillin online.

    Tracked from Amoxicillin online. 2010/04/04 10:23 Delete

    Amoxicillin online. Order amoxicillin online. Amoxicillin online no prescription.

  287. Percocet.

    Tracked from Percocet addiction. 2010/04/04 12:27 Delete

    Buy percocet. Percocet overdose. Percocet. Percocet addiction. Buy percocet online no prescription.

  288. Meridia diet pill.

    Tracked from Buy meridia. 2010/04/04 13:52 Delete

    Buy meridia. Meridia. Does meridia work. Meridia diet pill. Meridia and overnight delivery.

  289. Hydrocodone.

    Tracked from Hydrocodone. 2010/04/04 15:42 Delete

    Hydrocodone no prescription. Withdrawal frpm hydrocodone. Hydrocodone. Hydrocodone pics. Hydrocodone online.

  290. Buy carisoprodol link myblog de online.

    Tracked from Carisoprodol online. 2010/04/04 19:27 Delete

    Carisoprodol online. Buy carisoprodol online lowest price guarantee. Cheap online carisoprodol. Carisoprodol online prescription.

  291. Buy lortab where.

    Tracked from Buy lortab. 2010/04/04 23:10 Delete

    Buy cheap lortab medication international 35381. Buying lortab without a prescription. Buy lortab.

  292. Butalbital.

    Tracked from Butalbital acetaminophen. 2010/04/04 23:25 Delete

    Generic butalbital.

  293. Buy tramadol.

    Tracked from Tramadol buy. 2010/04/05 10:35 Delete

    Buy tramadol online cod.

  294. Oxycodone addiction.

    Tracked from Oxycodone addiction. 2010/04/05 10:55 Delete

    Oxycodone without a prescription. Oxycodone addiction. Oxycodone er.

  295. Valium overnight cheap.

    Tracked from Valium no prescription. 2010/04/05 11:00 Delete

    Buy valium. Valium. What does valium look like. Valium online.

  296. Clonazepam.

    Tracked from Clonazepam side effects depression. 2010/04/05 12:28 Delete

    What is clonazepam 0.5mg tab. Clonazepam. What medicine is clonazepam.

  297. Buy phentermine.

    Tracked from Buy phentermine without prescription. 2010/04/05 20:24 Delete

    Buy cheap phentermine online. Buy phentermine online. Buy phentermine no prescription. Buy phentermine without a prescription. Buy phentermine.

  298. What states allow otc codeine.

    Tracked from Codeine cough syrup. 2010/04/05 21:27 Delete

    Codeine sulfate. Buy codeine. Codeine. Codeine phosphate. Tylenol 4 codeine. Tylenol with codeine. What is codeine 50.

  299. Buy fioricet.

    Tracked from Buy generic fioricet. 2010/04/05 22:44 Delete

    Buy fioricet online. Buy fioricet.

  300. Adderall.

    Tracked from Mexican pharmacies adderall. 2010/04/06 10:29 Delete

    Adderall xr side effects. Buy adderall. Adderall xr headache. Adderall.

  301. Discount valium online.

    Tracked from Online pharmacy valium. 2010/04/06 11:16 Delete

    Buy valium online. Buy valium online without a prescription. Order valium online.

  302. Diazepam and nursing infant.

    Tracked from Diazepam 2 mg tablet myl. 2010/04/06 14:20 Delete

    Diazepam. Diazepam on urine drug test. Buy diazepam no prescription no membership. Diazepam us pharmacy. Diazepam and nursing infant.

  303. Cheap phentermine cod.

    Tracked from Buy cheap phentermine. 2010/04/06 16:50 Delete

    Cheap phentermine. Buy cheap online phentermine. Cheap phentermine online.

  304. Buy ultram.

    Tracked from Jh solutions buy ultram online. 2010/04/06 20:09 Delete

    Buy ultram er without prescription. Buy ultram. Buy ultram online.

  305. Buy adderall.

    Tracked from Snort adderall xr. 2010/04/06 20:22 Delete

    Adderall women weight loss. Adderall side effects. Adderall. Adderall online pharmacy. Adderall treatment for bulimia. Lower back pain and adderall.

  306. Lorazepam siezure 57.

    Tracked from Lorazepam. 2010/04/07 01:41 Delete

    Lorazepam patient assistance programs. Conversion of lorazepam to valium. Lorazepam. Lorazepam order prescription online.

  307. Buy doxycycline online.

    Tracked from Buy doxycycline prescription. 2010/04/07 02:35 Delete

    Doxycycline buy. Buy doxycycline. Buy doxycycline online.

  308. Cheap adipex.

    Tracked from Adipex overnight. 2010/04/07 04:35 Delete

    Adipex 37.5 fedex overnight. Adipex reviews. Adipex. Adipex p and phentermine diet pills shipped cod. Adipex phentermine online pharmacy.

  309. Cheap oxycodone.

    Tracked from Cheap oxycodone online. 2010/04/07 11:56 Delete

    Oxycodone cheap. Cheap oxycodone.

  310. Percocet extract how to shoot.

    Tracked from Buy percocet. 2010/04/07 13:58 Delete

    Percocet. Generic percocet.

  311. Buy ativan online no credit card.

    Tracked from Ativan -buy -buying -online -cheap. 2010/04/07 15:08 Delete

    Buy ativan online. Buy ativan online no credit card. Buy ativan online order ativan online. Buy ativan drug online. Mamboxchange guestbook detail buy ativan. Buy ativan.

  312. Buy azithromycin doxycycline.

    Tracked from Buy azithromycin doxycycline. 2010/04/07 15:50 Delete

    Buy doxycycline. Buy azithromycin doxycycline.

  313. Tickets online.

    Tracked from Buy tickets online. 2010/04/07 20:47 Delete

    Gay berlin cheap tickets online. Baseball tickets online. Buy tickets online movie. Cheap airline tickets online.

  314. Buy valium.

    Tracked from Valium. 2010/04/07 21:56 Delete

    Taking valium while breast feeding. Injectable valium. Valium metabolism. Valium.

  315. Buy fioricet.

    Tracked from Buy fioricet. 2010/04/08 00:14 Delete

    Buy fioricet online that ships to missouri. Buy fioricet. Buy fioricet online without a prescription.

  316. Comments on adipex.

    Tracked from Adipex. 2010/04/08 08:46 Delete

    Adipex phentermine vs. Adipex best quality best service best prices. Adipex.

  317. Percocet.

    Tracked from Percocet. 2010/04/08 13:29 Delete

    Buy percocet online. Percocet. Percocet extract how to shoot. How long is percocet in your system.

  318. Online pharmacies that offer fioricet.

    Tracked from Online pharmacies that offer fioricet. 2010/04/08 13:58 Delete

    Buy fioricet online that ships to missouri. Fioricet online.

  319. Oxycodone addiction.

    Tracked from Oxycodone addiction. 2010/04/08 14:09 Delete

    5mg oxycodone. Oxycodone addiction. Purchase oxycodone without a presription. Oxycodone apap side effects. Oxycodone.

  320. Buy lortab online.

    Tracked from Buy lortab in our online pharmacies. 2010/04/08 23:37 Delete

    Buy liquid lortab. Buy lortab online secure no prescriptions. Buy lortab. Buy lortab online. Buy lortab outside of usa.

  321. Cheap phentermine free shipping.

    Tracked from Cheap phentermine yellow. 2010/04/09 02:45 Delete

    Cheap phentermine. Phentermine cheap. Cheap phentermine free sh. Buy cheap phentermine.

  322. Signs of amoxicillin overdose.

    Tracked from Treating mastoiditis in adults with amoxicillin. 2010/04/09 02:53 Delete

    Buy amoxicillin no prescription required. H pylori amoxicillin. Side effects from amoxicillin 500mg. Kittens amoxicillin dose. Cat reactions to amoxicillin.

  323. Re your vicodin refill is ready.

    Tracked from Information about vicodin. 2010/04/09 13:43 Delete

    Buy vicodin online.

  324. Adderall side effects.

    Tracked from Adderall coupons. 2010/04/09 14:37 Delete

    Buy cheap adderall online. Adderall.

  325. Codeine.

    Tracked from Codeine online. 2010/04/10 00:04 Delete

    Codeine prescription 60mg. Codeine and vivitrol. Codeine. Codeine social consequences. Tylenol codeine 3. Codeine addiction symptoms. Acetaminophen 8mg codeine canada life brand. Codeine photos.

  326. How long does oxycodone stay is system.

    Tracked from Oxycodone. 2010/04/10 00:18 Delete

    Buy oxycodone online. Oxycodone urine. Oxycodone. Buy oxycodone online without.

  327. Online poker casino.

    Tracked from Casino tournaments online. 2010/04/10 11:00 Delete

    Best payout casino online. No deposit online casino. Free play at online casino slots. Online casino. Free online casino games.

  328. Viagra.

    Tracked from Viagra. 2010/04/10 13:10 Delete

    Viagra london. Try viagra for free. Re viagra cello. Viagra.

  329. Cheap tramadol without prescription.

    Tracked from Cheap tramadol. 2010/04/10 14:07 Delete

    Cheap tramadol.

  330. Buy xanax.

    Tracked from Generic xanax. 2010/04/10 20:42 Delete

    Buy xanax. Buy xanax without prescription. Order xanax. Xanax. Snorting xanax.

  331. Online pharmacy valium cheap.

    Tracked from Valium prescription online. 2010/04/10 21:44 Delete

    Buy link online ca tf valium. Valium prescription online.

  332. Cheap tramadol without prescription.

    Tracked from Cheap tramadol. 2010/04/11 00:26 Delete

    Cheap tramadol.

  333. Buy fioricet online that ships to missouri.

    Tracked from Fioricet online. 2010/04/11 00:33 Delete

    Online pharmacies that offer fioricet. Online fioricet w codeine medical consultation. Buy fioricet online that ships to missouri. Fioricet online. Generic fioricet online.

  334. Buy phentermine cod.

    Tracked from Buy phentermine online buy cheap phentermine index. 2010/04/11 09:52 Delete

    Buy phentermine. Blue phentermine gt buy phentermine online. Buy phentermine mg. Phentermine buy. Buy cheap phentermine. Order phentermine online buy cheap pharmacy here.

  335. Fioricet cheap.

    Tracked from Fioricet cheap. 2010/04/11 14:33 Delete

    Cheap fioricet and one day delivery. Fioricet cheap. Cheap fioricet.

  336. Lortab.

    Tracked from Buy lortab outside of usa. 2010/04/11 16:36 Delete

    Lortab from us. Lortab. Vicodin lortab without prescription.

  337. Cheap valtrax.

    Tracked from Cheap valtrax. 2010/04/11 18:45 Delete

    Cheap valtrax.

  338. Adderall overdose.

    Tracked from Adderall. 2010/04/11 23:52 Delete

    Adderall side effects. Adderall. Smoking adderall.

  339. Valium side effects.

    Tracked from Valium. 2010/04/12 07:32 Delete

    Valium no prescription. No prescription valium. Abusing valium. Valium.

  340. Ephedrine products online.

    Tracked from Ephedrine buy online cheap. 2010/04/12 09:35 Delete

    Ephedrine online. Pseudo ephedrine online. Ephedrine products online.

  341. Hydrochloride tramadol.

    Tracked from Tramadol for dogs. 2010/04/12 09:43 Delete

    Tramadol sr 100. Tramadol. Tramadol maintence.

  342. Levothyroxine.

    Tracked from Levothyroxine. 2010/04/12 13:42 Delete

    Comparison synthroid levothyroxine. Compare levothyroxine thyrolar. Levothyroxine.

  343. Buy alprazolam.

    Tracked from Buy alprazolam. 2010/04/12 16:42 Delete

    Buy alprazolam without prescription. Buy alprazolam. Buy alprazolam uk.

  344. Buy soma online.

    Tracked from Buy soma. 2010/04/12 19:11 Delete

    Buy soma. Soma buy. Buy soma online. Buy soma drug cheap. Buy soma with codeine. Buy soma with online prescription. Buy generic soma. Buy soma online without rx.

  345. Adderall.

    Tracked from Adderall dosage for adults. 2010/04/13 01:03 Delete

    Adderall. Adderall xr. Adderall no prescription.

  346. Buy butalbital.

    Tracked from Buy butalbital. 2010/04/13 02:20 Delete

    Buy butalbital.

  347. Carisoprodol online prescription.

    Tracked from Buy carisoprodol online no prescription. 2010/04/13 09:21 Delete

    B carisoprodol b online. Cheap carisoprodol online order carisoprodol now. Online carisoprodol. Buy carisoprodol online.

  348. Buying vicodin online.

    Tracked from Addiction vicodin. 2010/04/13 09:22 Delete

    Information about vicodin. Vicodin. Difference between vicodin and lortab.

  349. Buy soma online.

    Tracked from Buy soma online. 2010/04/13 12:24 Delete

    Buy soma from mexico online.

  350. Diazepam valium and diarrhea.

    Tracked from Diazepam. 2010/04/13 14:25 Delete

    Diazepam and promethazine. Buy diazepam with mastercard. Diazepam link messageboard aimoo com freecat us. Diazepam valium. Diazepam.

  351. Buy phentermine.

    Tracked from Phentermine. 2010/04/13 18:34 Delete

    Order phentermine. Phentermine.

  352. Cheap fioricet.

    Tracked from Cheap fioricet online. 2010/04/13 23:31 Delete

    Cheap fioricet online. Cheap fioricet.

  353. Meridia weight loss pill.

    Tracked from Meridia. 2010/04/14 05:00 Delete

    Meridia. Meridia coupons. Generic meridia.

  354. Carisoprodol phentermine yellow.

    Tracked from Carisoprodol. 2010/04/14 11:41 Delete

    Buy carisoprodol. Buy carisoprodol online lowest price guarantee. Carbamazepine carisoprodol pharmacy drugs. Carisoprodol soma drug test. Carisoprodol. What is carisoprodol 350mg.

  355. Azithromycin.

    Tracked from Azithromycin. 2010/04/14 12:29 Delete

    Azithromycin.

  356. Buy phentermine online.

    Tracked from Online phentermine. 2010/04/14 13:59 Delete

    Buy phentermine online. Online phentermine.

  357. Buy butalbital.

    Tracked from Buy butalbital. 2010/04/14 14:16 Delete

    Buy butalbital.

  358. Meridia.

    Tracked from Meridia diet pill. 2010/04/14 19:18 Delete

    Meridia side effects. Meridia. Diet pill meridia. Meridia online.

  359. Buy oxycodone online now.

    Tracked from Buy oxycodone no prescription. 2010/04/14 20:29 Delete

    Buy oxycodone 5 mg capsules. Buy oxycodone without a prescription. Buy oxycodone online doctor.

  360. Online phentermine.

    Tracked from Phentermine buy phentermine online. 2010/04/15 00:53 Delete

    Phentermine online pharmac. Lowest online phentermine price. Phentermine online no prescription. Buy phentermine online. Review phentermine online and diet pill offers. Pillinc buy phentermine adipex meridia online. Cheap phentermine online.

  361. Tramadol online.

    Tracked from Buy tramadol online. 2010/04/15 02:11 Delete

    Cheapest tramadol available online. Tramadol online. Buy tramadol online. Buy tramadol online cod.

  362. Carisoprodol.

    Tracked from Pharmacy online carisoprodol description price. 2010/04/15 11:33 Delete

    Carisoprodol side effects. Buy carisoprodol online no prescription required. Pharmacy online carisoprodol description price.

  363. Ativan.

    Tracked from Ativan. 2010/04/15 11:43 Delete

    Ativan. Ativan information. Ativan in premature infants.

  364. Soma buy soma cheap soma soma online.

    Tracked from Buy soma online order soma and get cheap soma. 2010/04/15 12:25 Delete

    Buy soma cod. Buy soma online. Buy soma cheap. Buy watson brand soma.

  365. Buy tramadol online cod buy ultram.

    Tracked from Buy ultram online. 2010/04/15 17:15 Delete

    Ultram online order. Online pharmacy ultram. Ultram for sale online. Buy ultram online.

  366. Buy valium.

    Tracked from Valium. 2010/04/15 21:13 Delete

    Valium.

  367. Best online casino.

    Tracked from Online casino http. 2010/04/16 01:56 Delete

    Online casino http.

  368. Buy soma online no prescription.

    Tracked from Buying soma online. 2010/04/16 12:07 Delete

    Buy soma. Buy us soma online. Buy soma online. Buy soma with online prescription.

  369. Re viagra cello.

    Tracked from Viagra prescription price. 2010/04/16 13:03 Delete

    Cheap viagra. Viagra generic.

  370. Lorazepam ativan information and resources.

    Tracked from Ativan. 2010/04/16 14:24 Delete

    Ativan.

  371. Buy lortab.

    Tracked from Buying lortab. 2010/04/16 15:31 Delete

    Buying lortab. Buy lortab without prescription. Buying lortab on line without prescription. Buy lortab online. Buy lortab.

  372. Phentermine no prescription.

    Tracked from Phentermine. 2010/04/16 20:47 Delete

    Buy cheap phentermine. Phentermine no prescription. Phentermine without prescription. Phentermine. Discount phentermine. Herbal phentermine.

  373. Buy valium pay cod overnight delivery.

    Tracked from Buy valium. 2010/04/16 23:09 Delete

    Buy valium. Buy valium pay cod overnight delivery.

  374. Phentermine cheap.

    Tracked from Cheap phentermine. 2010/04/17 11:20 Delete

    Cheap phentermine. Buy cheap online phentermine. Cheap phentermine no prescription. Buy cheap phentermine now save. Buy cheap phentermine.

  375. Order ativan with online consultation.

    Tracked from Ativan without prescription. 2010/04/17 12:07 Delete

    Ativan data. Ativan migraines. Can you give ativan to a dog. Ativan. Ativan online prescription overnight mastercard. Ativan gel how to. Ativan pregnancy.

  376. Ambien mexico.

    Tracked from Buy ambien online. 2010/04/17 14:49 Delete

    Website for ambien. Ambien cr. Ambien.

  377. Cheapest tramadol available online.

    Tracked from Cheap tramadol prescriptions online. 2010/04/17 19:43 Delete

    Purchase tramadol online. Buy tramadol online cod. Buy online cheap and fast tramadol. Cheapest tramadol available online. Cheap tramadol prescriptions online. Buy tramadol online best prices limited time off.

  378. Cheap vicodin cod.

    Tracked from Cheap vicodin cod. 2010/04/17 20:36 Delete

    Cheap vicodin.

  379. Cheap fioricet.

    Tracked from Cheap fioricet and one day delivery. 2010/04/18 04:32 Delete

    Cheap fioricet and one day delivery. Fioricet cheap. Cheap fioricet.

  380. Codeine 222.

    Tracked from Fioricet with codeine. 2010/04/18 06:48 Delete

    Buy codeine online without prescription. Codeine.

  381. Online pharmacies that offer fioricet.

    Tracked from Fioricet online. 2010/04/18 08:45 Delete

    Online pharmacies that offer fioricet. Online fioricet w codeine medical consultation. Fioricet online. Generic fioricet online.

  382. Buy oxycodone.

    Tracked from Buy oxycodone. 2010/04/18 11:17 Delete

    Buy oxycodone without prescription. Buy oxycodone. Buy oxycodone without a prescription.

  383. Carisoprodol.

    Tracked from Pharmacy online carisoprodol description price. 2010/04/18 11:43 Delete

    Carisoprodol.

  384. Cheap oxycontin on line.

    Tracked from Cheap oxycontin online. 2010/04/18 13:13 Delete

    Buy cheap oxycontin. Cheap oxycontin with online prescription. Oxycontin cheap. Cheap oxycontin online. Cheapest price for oxycontin online.

  385. Cheap adderall.

    Tracked from Cheap adderall. 2010/04/18 22:18 Delete

    Adderall online buy cheapest adderall. Buy adderall online cheap without prescription. Adderall no prescription cheap. Cheap adderall.

  386. Buy ephedra.

    Tracked from Buy ephedra. 2010/04/18 22:20 Delete

    Buy ephedra. Where do i buy diet fuel containing ephedra.

  387. Cheap fioricet.

    Tracked from Cheap fioricet. 2010/04/19 09:45 Delete

    Fioricet cheap. Cheap fioricet.

  388. Viagra canada.

    Tracked from Cheap viagra. 2010/04/19 10:57 Delete

    Viagra. Free viagra. Buy viagra. Viagra london. Re viagra cello.

  389. Buy azithromycin doxycycline.

    Tracked from Buy doxycycline. 2010/04/19 12:54 Delete

    Buy azithromycin doxycycline.

  390. Cheap ultram.

    Tracked from Cheap ultram. 2010/04/19 14:03 Delete

    Cheap ultram. Cheap ultram online. Cheap ultram pharmacy online.

  391. Buy phentermine online.

    Tracked from Order phentermine online. 2010/04/19 22:54 Delete

    Phentermine online. Can i order phentermine online. Phentermine online purchase. Adipexdrug addiction order phentermine online. Cheap phentermine online. Cheapest phentermine online. Online phentermine.

  392. Buy lorazepam no prescription overnight delivery.

    Tracked from Buy lorazepam overseas no prescription discount. 2010/04/20 00:21 Delete

    Buy lorazepam no prescription overnight delivery. Buy lorazepam without prescription. Buy lorazepam.

  393. Carisoprodol.

    Tracked from Carisoprodol. 2010/04/20 06:59 Delete

    Pharmacy online carisoprodol description price. Carisoprodol. Carisoprodol phentermine yellow.

  394. Codeine antitussive action.

    Tracked from Codeine cough syrup. 2010/04/20 09:29 Delete

    Canadian codeine on line. How long does codeine stay in your system. Liquid codeine how to make. Codeine.

  395. Buy carisoprodol online lowest price guarantee.

    Tracked from Carisoprodol online prescription. 2010/04/20 11:07 Delete

    Carisoprodol online. Buy carisoprodol online lowest price guarantee. Carisoprodol phentermine online.

  396. No prescription phentermine.

    Tracked from Phentermine no prescription. 2010/04/20 17:33 Delete

    Phentermine no prescription. Phentermine cheap no prescription. No prescription phentermine.

  397. Buy tramadol.

    Tracked from Buy tramadol 32. 2010/04/20 20:50 Delete

    Buy tramadol online. Buy tramadol online cod. Buy tramadol. Buy cheap tramadol online 35009.

  398. Buy cheap adderall online.

    Tracked from Buy cheap adderall online. 2010/04/21 03:29 Delete

    Buy cheap adderall online. Buy adderall cheap.

  399. Phentermine.

    Tracked from Order phentermine online. 2010/04/21 12:02 Delete

    Discount phentermine. Phentermine diet pills. Phentermine. Phentermine side effects. Phentermine prescription. Buying phentermine. Phentermine line.

  400. Buy xanax no prescription.

    Tracked from Buy xanax. 2010/04/21 14:29 Delete

    Buy xanax. Buy xanax no prescription. Buy xanax cheap medication.

  401. Buy viagra cheap.

    Tracked from Buy viagra online. 2010/04/21 20:40 Delete

    Buy viagra online. Buy viagra. Buy taladafil viagra. Buy viagra online 35008.

  402. Carisoprodol online.

    Tracked from Buy carisoprodol online lowest price guarantee. 2010/04/21 20:53 Delete

    Pharmacy online carisoprodol description price. Carisoprodol online. Buy carisoprodol online lowest price guarantee. Carisoprodol buy cheap carisoprodol order online.

  403. Phentermine no prescription.

    Tracked from Phentermine no prescription required. 2010/04/22 02:39 Delete

    Phentermine 37.5 mg online prescription. Phentermine on line without prescription. Buy phentermine no prescription required. Phentermine without prescription. Best site for phentermine prescription. Phentermine no prescription.

  404. Buy valtrax.

    Tracked from Buy valtrax. 2010/04/22 07:37 Delete

    Buy valtrax.

  405. Buy xanax.

    Tracked from Buy xanax no prescription. 2010/04/22 10:11 Delete

    Buy xanax. Buy xanax online.

  406. Hydrocodone.

    Tracked from Hydrocodone. 2010/04/22 14:05 Delete

    Hydrocodone. Hydrocodone extraction. Hydrocodone apap. Hydrocodone m357.

  407. Online concert tickets.

    Tracked from Tickets online. 2010/04/22 21:34 Delete

    Movie tickets online.

  408. Carisoprodol 350mg.

    Tracked from Buy carisoprodol. 2010/04/23 05:20 Delete

    Buy carisoprodol. Order carisoprodol. Order soma carisoprodol.

  409. Fioricet cheap.

    Tracked from Fioricet cheap. 2010/04/23 07:57 Delete

    Cheap fioricet and one day delivery. Fioricet cheap. Cheap fioricet.

  410. Ativan.

    Tracked from Ativan. 2010/04/23 10:51 Delete

    Ativan headaches. Order ativan fast local delivery wholesale price.

  411. Oxycontin online.

    Tracked from Order oxycontin online. 2010/04/23 14:49 Delete

    Oxycontin online. Buy oxycontin online.

  412. Viagra online.

    Tracked from Buy viagra meds online. 2010/04/23 22:08 Delete

    Viagra online stores. Buy viagra online. Discount viagra online.

  413. Cheap adderall.

    Tracked from Cheap adderall. 2010/04/24 00:17 Delete

    Adderall online buy cheapest adderall. Adderall cheap. Cheap adderall.

  414. Buy hydrocodone without a prescription.

    Tracked from Buy hydrocodone without a prescription. 2010/04/24 09:10 Delete

    Buy hydrocodone pharmacy online. Foreign hydrocodone buy. Buy hydrocodone no prescription. Buy hydrocodone. Buy hydrocodone online.

  415. Lortab doctor.

    Tracked from Lortab tn. 2010/04/24 22:31 Delete

    Lortab. Buy lortab without prescription. Side effects of lortab. Lortab 3600. Lortab 10 650 picture.

  416. Hydrocodone.

    Tracked from Buy hydrocodone with no perscription. 2010/04/25 10:35 Delete

    Hydrocodone order. Hydrocodone. Hydrocodone dependancy. Online pharmacies hydrocodone. Buy hydrocodone online.

  417. Buy cheap adderall online.

    Tracked from Buy cheap adderall online. 2010/04/26 02:30 Delete

    Buy cheap adderall online.

  418. Amoxicillin dosage.

    Tracked from Colonoscopy preparation and amoxicillin. 2010/04/26 16:51 Delete

    Amoxicillin. Amoxicillin for your pet. Bronchitis and amoxicillin. Augmentin vs amoxicillin. Dosing of amoxicillin for sinus infection. Taking amoxicillin while pregnant.

  419. Drug guide alprazolam overview on yahoo health.

    Tracked from Alprazolam. 2010/04/27 00:40 Delete

    Heroin mixed with alprazolam picture. Alprazolam.

  420. Buy valium with mastercard.

    Tracked from Beamto buy link online valium pharmacy forum. 2010/04/27 11:46 Delete

    Buy valium. Buy valium c.o.d.. Buy valium pay cod overnight delivery. Buy valium online.

  421. Percocet 7.5 take recreationally.

    Tracked from Percocet addiction. 2010/04/27 23:38 Delete

    Percocet. Percocet addiction.

  422. Buy hydrocodone.

    Tracked from Buy hydrocodone need physician. 2010/04/28 12:19 Delete

    Buy hydrocodone bitartrate. Buy hydrocodone online consulting. Buy hydrocodone online from fla. Buy hydrocodone. Hydrocodone buy cheap. Hydrocodone norco buy.

  423. Buy butalbital.

    Tracked from Buy butalbital. 2010/04/28 22:58 Delete

    Buy butalbital.

  424. Buy butalbital.

    Tracked from Buy butalbital. 2010/04/29 12:03 Delete

    Buy butalbital.

  425. Hydrocodone.

    Tracked from Worried sick about unborn baby due to hydrocodone. 2010/04/29 22:09 Delete

    Hydrocodone. Hydrocodone online. I had a healthy baby while i took hydrocodone. Hydrocodone without prescription. How do you make hydrocodone. I took hydrocodone thru entire pregnancy.

  426. Buy phentermine online discount cheap pharmacy.

    Tracked from Cheap phentermine. 2010/04/30 13:19 Delete

    Cheap phentermine. Phentermine cheap. Buy phentermine online order cheap phentermine now. Buy cheap phentermine mg tabs lowest prices. Extra cheap phentermine.

  427. Buy valium without prescription.

    Tracked from Buy valium. 2010/04/30 22:54 Delete

    Buy 20mg valium. Where to buy valium. Buy valium without prescription.

  428. Pet supplies amoxicillin.

    Tracked from Can you mix amoxicillin with milk. 2010/05/01 10:11 Delete

    Side effects amoxicillin itch. Side effects of amoxicillin and clavulanate. Pet supplies amoxicillin. Picture of amoxicillin rash. What is amoxicillin used for. Side effects of amoxicillin. Drug interaction between coumadin and amoxicillin.

  429. Buy qulitest butalbital.

    Tracked from Buy butalbital weblog. 2010/05/02 00:17 Delete

    Buy butalbital. Butalbital buy butalbital online cheap fiorcet. Butalbital buy codeine w. Buy butalbital online. Buy butalbital weblog. Where to buy butalbital online.

  430. Phentermine no prescription.

    Tracked from Phentermine no prescription free shipping. 2010/05/02 21:33 Delete

    Need a prescription for phentermine. No prescription phentermine. Phentermine no prescription. Buy phentermine no prescription.

  431. Cheap fioricet.

    Tracked from Fioricet cheap. 2010/05/03 07:04 Delete

    Cheap fioricet and one day delivery. Fioricet cheap.

  432. Ambien onlilne overnite shipping.

    Tracked from Ambien cr. 2010/05/03 07:57 Delete

    Ambien during pregnancy. Ambien awakening. Ambien. Photo of ambien cr.

  433. Lipitor.

    Tracked from Lipitor side effects. 2010/05/03 08:44 Delete

    Lipitor. Side effects of generic lipitor. Lipitor hdl triglycerides.

  434. Lipitor.

    Tracked from Lipitor vs zocor. 2010/05/03 14:07 Delete

    Lipitor.

  435. Buy oxycontin online.

    Tracked from Buy oxycontin online. 2010/05/03 19:47 Delete

    Buy oxycontin online without a prescription. Online oxycontin. Buy oxycontin online no rx. Online no prescription oxycontin pharmacy. Buy oxycontin online.

  436. Buy hydrocodone online.

    Tracked from Easy way to buy hydrocodone online. 2010/05/04 07:41 Delete

    Easy way to buy hydrocodone online. Buy hydrocodone online consultation. Buy hydrocodone online. Buy hydrocodone online without prescription. Hydrocodone buy online. Buy hydrocodone without a prescription.

  437. Cialis.

    Tracked from Cialis. 2010/05/04 12:19 Delete

    Cialis side effects. Buy cialis online. Soft cialis. Cialis. Cheap cialis.

  438. Online pharmacy oxycodone.

    Tracked from Oxycodone. 2010/05/04 16:59 Delete

    Is oxycodone or hydrocodone stronger. Oxycodone hcl 5 mg. Oxycodone side effects. Oxycodone have side effects. Oxycodone. How to extract oxycodone from percocet. Oxycodone online.

  439. Buy alprazolam.

    Tracked from Buy alprazolam. 2010/05/05 04:57 Delete

    Buy alprazolam.

  440. Will ambien show up in a urine test.

    Tracked from Ambien overnight. 2010/05/05 12:27 Delete

    Ambien buy. Ambien. Ambien online no prescription overnight delivery. Ambien cr.

  441. Buy butalbital weblog.

    Tracked from Buy butalbital online. 2010/05/05 18:26 Delete

    Buy now butalbital. Buy butalbital. Buy butalbital fioricet mg generic tabs. Buy butalbital pharmacy online. Butalbital buy butalbital online cheap fiorcet. Buy qualitest butalbital apap online. Buying butalbital online.

  442. Doxycycline buy online.

    Tracked from Buy doxycycline. 2010/05/06 05:05 Delete

    Buy doxycycline. Buying doxycycline. Buy doxycycline on line. Buy doxycycline uk. Buy doxycycline online.

  443. Cheap fioricet.

    Tracked from Fioricet cheap. 2010/05/06 20:46 Delete

    Cheap fioricet and one day delivery. Fioricet cheap.

  444. Cheap tramadol.

    Tracked from Tramadol cheap no rx free overnight shipping. 2010/05/07 07:52 Delete

    Cheap tramadol prescriptions online.

  445. Vicodin user message board.

    Tracked from Vicodin withdrawl. 2010/05/07 22:57 Delete

    Vicodin side effects. Vicodin. Dangers of vicodin. Pharmacy online no prescription vicodin. Buy vicodin.

  446. Cialis.

    Tracked from Buy cialis. 2010/05/08 07:30 Delete

    Cialis generic click here. Cialis best price buy online. Buy viagra online uk cialis levitra. Cialis.

  447. Buy lorazepam without prescription.

    Tracked from Buy lorazepam overseas no prescription discount. 2010/05/08 16:45 Delete

    Buy lorazepam without prescription. Buy lorazepam. Buy lorazepam rx. Buy lorazepam overseas no prescription discount. Buy lorazepam online.

  448. Buy percocet.

    Tracked from Buy percocet. 2010/05/09 08:06 Delete

    Buy percocet. Buy rx percocet without rx. Buy percocet no prescription. Buy percocet online no prescription. Buy percocet illegally. Buy percocet without prescription.

  449. Buy percocet.

    Tracked from Buy percocet without a prescrition. 2010/05/09 16:40 Delete

    Buy percocet. Buy percocet online without office visit. Buy percocet online.

  450. Buy butalbital.

    Tracked from Buy butalbital. 2010/05/10 06:50 Delete

    Buy butalbital.

  451. Cheap tramadol high online no prescription.

    Tracked from Buy generic tramadol no prescription. 2010/05/10 16:03 Delete

    Buy tramadol online no prescription. Tramadol no prescription. No prescription tramadol.

  452. Prescription amoxicillin.

    Tracked from Side effects of amoxicillin. 2010/05/11 10:25 Delete

    Child rash cheeks strep throat amoxicillin. Does amoxicillin cause ovulation. Reaction to amoxicillin. Mix amoxicillin liquid. Drug interaction between coumadin and amoxicillin.

  453. Buy xanax.

    Tracked from Buy xanax. 2010/05/11 12:45 Delete

    Buy xanax. Buy xanax no prescription. Pictures of xanax. Xanax. Xanax prescription. Cheap xanax overnight delivery.

  454. Vicodin.

    Tracked from Cheap vicodin. 2010/05/12 02:30 Delete

    Vicodin cod. Vicodin. Vicodin without prescription. Vicodin addiction.

  455. Lipitor poisoning.

    Tracked from Lipitor. 2010/05/14 17:47 Delete

    Lipitor.

  456. Cialis and addiction.

    Tracked from Cheapest cialis. 2010/05/15 19:14 Delete

    Buy cialis. Cialis discount american pharmacy. Cialis best price buy online. Taking cialis.

  457. Cheap tramadol.

    Tracked from Tramadol. 2010/05/17 20:52 Delete

    Cheap tramadol. Tramadol.

  458. Cheap tramadol.

    Tracked from Cheap tramadol. 2010/05/18 11:27 Delete

    Tramadol cheap. Cheap tramadol. What is tramadol. Tramadol.

  459. Advanced book by fioricet guest powered.

    Tracked from Generic fioricet low prices amp fast delivery. 2010/05/19 06:09 Delete

    Fioricet drug test. Fioricet. Fioricet and blood work. Fioricet free shipping. Cheapest fioricet. Fioricet plain pill.

  460. Oxycontin tolerance.

    Tracked from Oxycontin abuse. 2010/05/19 17:13 Delete

    Oxycontin. What does oxycontin look like. Oxycontin purdue legal news. How to stop addiction to oxycontin. Oxycontin pill.

  461. Lipitor.

    Tracked from Lipitor. 2010/05/20 08:52 Delete

    Lipitor prescription side effects. Lipitor grapefruit. Lipitor dementia alcohol. Lipitor.

  462. Oxycontin addiction.

    Tracked from Oxycontin. 2010/05/20 09:14 Delete

    Oxycontin online. Buying oxycontin. Oxycontin. Oxycontin settlement.

  463. Cialis.

    Tracked from Cialis positive side. 2010/05/21 12:08 Delete

    Drug called cialis. Cialis and levitra. Cheapest cialis. Cialis lawyers. Cialis and pill splitting. Cialis.

  464. Buy adderall or dexadrine no prescription.

    Tracked from Buy adderall without a prescription. 2010/05/21 18:41 Delete

    Buy adderall without a prescription. Adderall online prescription. Adderall prescription. Adderall no prescription. Buy adderall or dexedrine no prescription needed.

  465. Tramadol.

    Tracked from Tramadol prescription. 2010/05/22 12:42 Delete

    Cheap tramadol. Vet meds tramadol. Buy cheap tramadol. Tramadol.

  466. Phentermine.

    Tracked from Phentermine. 2010/05/22 16:02 Delete

    Discount phentermine. Phentermine. Buy no phentermine prescription. Online phentermine.

  467. Oxycontin.

    Tracked from Oxycontin online. 2010/05/23 22:42 Delete

    Oxycontin withdrawl. Oxycontin. Oxycontin injury lawyer ohio. Oxycontin tolerance.

  468. Cheap tramadol.

    Tracked from Cheap tramadol. 2010/05/24 12:35 Delete

    Tramadol cheap 50mg 200. Cheap tramadol.

  469. Tramadol cheap.

    Tracked from Cheap tramadol. 2010/05/25 10:09 Delete

    Tramadol hci online buy cheap tramadol hci online. Tramadol cheap no rx free overnight shipping. Cheap tramadol fedex overnight.

  470. Cheap phentermine no prescription.

    Tracked from Cheap phentermine. 2010/05/26 08:35 Delete

    Cheap phentermine. Cheap phentermine cod.

  471. Buy soma cheap.

    Tracked from Cheap watson soma online. 2010/05/26 14:09 Delete

    Cheap soma watson. Cheap soma.

  472. Cheap tramadol.

    Tracked from Cheap tramadol. 2010/05/27 11:00 Delete

    Cheap tramadol.

  473. Fioricet online.

    Tracked from No prescription soma fioricet. 2010/05/28 17:49 Delete

    Fioricet medications.

  474. Fioricet cheap.

    Tracked from Fioricet cheap. 2010/05/29 02:52 Delete

    Cheap fioricet and one day delivery. Fioricet cheap. Cheap fioricet.

  475. Increase female sex drive without pills.

    Tracked from Increase female sex drive without pills. 2010/05/29 05:37 Delete

    Increase female sex drive without pills. Sex pills. Sleeping pills and sex.

  476. Buy adderall online cheap without prescription.

    Tracked from Adderall buy cheap adderall buy cheap. 2010/05/29 15:42 Delete

    Cheap adderall.

  477. Phentermine.

    Tracked from Phentermine. 2010/05/30 12:09 Delete

    Discount phentermine. Phentermine price. Phentermine. Buy phentermine online. Get phentermine.

  478. Buy adderall online no prescription needed.

    Tracked from What is adderall. 2010/05/30 22:02 Delete

    Buy adderall. Adderall xr. Snorting adderall effects. Adderall. Mexican pharmacies adderall. Adderall 7.5.

  479. Phentermine.

    Tracked from Phentermine. 2010/06/01 02:27 Delete

    Phentermine no prescription. Phentermine without prescription. Phentermine. Card master no phentermine prescription. Phentermine prescription. Buy phentermine.

  480. Tramadol.

    Tracked from Cheap tramadol without prescription. 2010/06/01 06:18 Delete

    Tramadol half life. Cheap tramadol.

  481. Poker rules.

    Tracked from Poker hands. 2010/06/02 23:38 Delete

    Best poker tools. Girls playing strip poker. Strip poker videos. Online poker. Full tilt poker. Online poker games. Poker supplies.

  482. Tramadol no prescription.

    Tracked from Order tramadol no prescription. 2010/06/03 18:44 Delete

    Buy tramadol online no prescription. Tramadol no prescription. Cheap tramadol no prescription. No prescription tramadol. Buy tramadol no prescription.

  483. Buy xanax.

    Tracked from Buy xanax. 2010/06/04 12:54 Delete

    Buy xanax. Mixing marijuana and xanax.

  484. United states department of agriculture.

    Tracked from Alabama department of agriculture license. 2010/06/05 05:02 Delete

    Department of agriculture division of forestry. Department of agriculture. Oregon agriculture department. Department of agriculture calorie.

  485. Tramadol.

    Tracked from Tramadol. 2010/06/05 11:28 Delete

    Drug encyclopedia cor 127 tramadol. Tramadol hcl. Tramadol. Tramadol cheap no rx.

  486. Florida department agriculture.

    Tracked from Department of agriculture. 2010/06/05 15:59 Delete

    United states department of agriculture. North carolina department of agriculture. U s department of agriculture. Georgia department of agriculture. Texas department of agriculture. Ohio department of agriculture.

  487. Buy phentermine in the uk.

    Tracked from Pillinc buy phentermine adipex meridia online. 2010/06/06 00:57 Delete

    Buy phentermine buy free phentermine shipping buy. Buy phentermine. Buy phentermine in the uk. Phentermine buy phentermine cheap phentermine. Buy phentermine on line. Buy no phentermine prescription. Buy phentermine online c.o.d.. Order phentermine onl...

  488. ..

    Tracked from .. 2010/06/06 03:31 Delete

    ..

  489. Meridia side effects.

    Tracked from Meridia and wellbutrin. 2010/06/06 09:02 Delete

    Meridia. Meridia drug information meridia side effects.

  490. ..

    Tracked from .. 2010/06/06 16:23 Delete

    ..

  491. Buy adderall ord dexadrine no prescription.

    Tracked from Buy adderall xr w out prescription. 2010/06/06 19:49 Delete

    Purchase adderall without prescription. Buy adderall without a prescription. Adderall without a prescription. Adderall overnight no prescription. Adderall no prescription. Buy online adderall without prescription. No prescription adderall.

  492. Oxycodone addiction.

    Tracked from Can oxycodone raise blood pressure. 2010/07/21 14:38 Delete

    Oxycodone addiction. Oxycodone online. Oxycodone pictures.

  493. Xanax presciption.

    Tracked from Xanax. 2010/07/22 13:59 Delete

    Buy generic xanax information. Xanax. Ativan xanax valuim trial pack. Generic xanax.

  494. What is zoloft.

    Tracked from Zoloft. 2010/07/23 19:54 Delete

    Zoloft sexual side effects. Zoloft. Zoloft guy. Zoloft 12.5mg and a thirteen year old. Zoloft side effects.

  495. Buy soma tablets.

    Tracked from Buy watson brand soma. 2010/07/24 08:45 Delete

    Soma cube. Soma plant. Soma online sales. Soma. Soma ironman. Soma in urine.

  496. Take oxycodone.

    Tracked from Oxycodone addiction. 2010/07/25 07:53 Delete

    Oxycodone addiction. Oxycodone.

  497. Mevacor.

    Tracked from Mevacor side effects. 2010/07/25 16:17 Delete

    Side effects of mevacor. Mevacor tg. Mevacor. Mevacor side effects. Mevacor 40mg.

  498. Zolpidem.

    Tracked from Zolpidem diazepam purchase online. 2010/07/25 19:06 Delete

    Zolpidem no prescription. Zolpidem. Zolpidem tartrate to buy online.

  499. Mysoline.

    Tracked from Mysoline. 2010/07/25 19:33 Delete

    Mysoline.

  500. Problems with ditropan xl.

    Tracked from Ditropan xl side effects. 2010/07/26 07:57 Delete

    Ditropan xl. Ditropan xl side effects. Ditropan xl 15 mg. Problems with ditropan xl.

  501. Oxycodone stomach problems.

    Tracked from Hydrocodone versus oxycodone. 2010/07/26 11:47 Delete

    Oxycodone sideeffects. Oxycodone.

  502. What is lopressor used to treat.

    Tracked from Nutritional implications of lopressor. 2010/07/26 19:05 Delete

    Side effects of lopressor. Lopressor. Lopressor-ginsing. Lopressor baldness.

  503. Order caverta online.

    Tracked from Order caverta online. 2010/07/26 22:42 Delete

    Caverta 50mg 10 tablets. Caverta. Ranbaxy caverta.

  504. Nexium damage.

    Tracked from Nexium dosage. 2010/07/27 10:51 Delete

    Generic nexium. Nexium.

  505. Accutane.

    Tracked from Accutane i pledge. 2010/07/27 14:33 Delete

    Atlanta accutane side effects.

  506. Lotensin.

    Tracked from Lotensin. 2010/07/27 21:06 Delete

    Is lotensin a beta blocker. Lotensin and advil. Lotensin. Lotensin hct. Lotensin side effects.

  507. Online pharmacy aldactone.

    Tracked from Aldactone hyperkalemia. 2010/07/28 04:10 Delete

    Online pharmacy aldactone. Length of action of aldactone.

  508. Famvir.

    Tracked from Shingles famvir. 2010/07/28 13:11 Delete

    Famvir side effects. Famvir. One day famvir.

  509. O keefe v lee calan imports inc.

    Tracked from Cartalk calan. 2010/07/29 02:44 Delete

    Calan. Calan seminar abstract. Gay calan bosc spain. Nos calan gaeaf.

  510. Ditropan xl.

    Tracked from Ditropan. 2010/07/29 03:26 Delete

    Ditropan. Drug class of ditropan. Ditropan xl. Ditropan prescribed for. Ditropan side effects ditropan.

  511. Side effects of lexapro.

    Tracked from Side effects of lexapro. 2010/07/29 13:46 Delete

    Substitutes for lexapro. Side effects of lexapro.

  512. Lamictal and memory loss.

    Tracked from Side effects of lamictal. 2010/07/29 15:05 Delete

    Lamictal. Lamictal thin hair shampoo.

  513. Colospa.

    Tracked from Colospa. 2010/08/02 12:47 Delete

    Colospa.

  514. Ilosone.

    Tracked from Ilosone. 2010/08/03 00:56 Delete

    Ilosone.

  515. Hydrea.

    Tracked from Hydrea. 2010/08/03 15:00 Delete

    Hydrea article archives by keepmedia. Hydrea.

  516. Lamictal.

    Tracked from Lamictal. 2010/08/04 09:49 Delete

    New lamictal side effects. Lamictal rash. Lamictal side effects. Lamictal.

  517. Kamagra.

    Tracked from Kamagra usa. 2010/08/04 21:45 Delete

    Kamagra usa. Kamagra.

  518. Lamictal side affects.

    Tracked from Lamictal acne. 2010/08/05 20:02 Delete

    Drug side effect lamictal bipolar lamictal.

  519. Lozol.

    Tracked from Lozol. 2010/08/06 20:45 Delete

    Lozol.

  520. Dangers of using dostinex.

    Tracked from Dangers of using dostinex. 2010/08/07 13:37 Delete

    Dostinex. Dostinex dosage for sexual health. What is dostinex.

  521. Crestor and food interactions.

    Tracked from Crestor side affects. 2010/08/08 01:20 Delete

    Crestor. Crestor effects patient side. Crestor myalgia.

  522. Hydrea.

    Tracked from Hydrea article archives by keepmedia. 2010/08/08 21:59 Delete

    Hydrea article archives by keepmedia. Hydrea.

  523. Microzide.

    Tracked from Order microzide cheapest pill without prescription. 2010/08/09 20:04 Delete

    Microzide. Microzide mavik zofran contraindications.

  524. Flomax.

    Tracked from Flomax. 2010/08/10 10:25 Delete

    Flomax. Who can flomax medicine.

  525. Levothroid.

    Tracked from Levothroid raise blood pressure. 2010/08/10 20:58 Delete

    Levothroid. Levothroid or synthyroid. Mfg levothroid.

  526. Floxin.

    Tracked from Floxin otic for dogs. 2010/08/11 15:01 Delete

    Floxin otec. Floxin otic. Floxin.

  527. Flomax herbal subsitute.

    Tracked from Flomax and diabeties. 2010/08/12 02:07 Delete

    Flomax.

  528. Kamagra.

    Tracked from Kamagra. 2010/08/12 14:02 Delete

    Kamagra.

  529. Mevacor.

    Tracked from Mevacor. 2010/08/13 01:39 Delete

    Mevacor lipitor. Mevacor.

  530. Hydrea article archives by keepmedia.

    Tracked from Hydrea article archives by keepmedia. 2010/08/13 17:53 Delete

    Hydrea article archives by keepmedia. Hydrea.

  531. Dostinex.

    Tracked from Dostinex dosage for sexual health. 2010/08/14 11:54 Delete

    Dostinex. Medicines dostinex. What is dostinex.

Comments List

  1. tsohr 2009/01/24 11:40 # M/D Reply Permalink

    이런 좋은 문서를... 공개되도 괜찮은가요? 장난아니네요 ㄷㄷ;
    그런데, DLL 인젝션이나 다른 프로세스의 메모리를 읽는 행위도 해킹에 포함되는 내용같은데, 안티해킹도 해킹의 범주인가요?

Leave a comment

GameGuard에 대한 간단한 분석.

GameGuard라는 친구에 대해서 궁금해 하는 분들이 많더군요.
이 글은 모니터링 도구들을 이용해서 간단히 둘러 본
그 친구의 모습입니다. 사용된 도구의 저작권 및
해당 친구의 저작권은 각 저작권의 소유자에게 있습니다.

이 글의 저작권은 저에게 있겠죠..
내용상 문제가 되는 점이 있거나 한다면,
밑에 댓글로 달아주시거나 메일 주시면 감사하겠습니다.
해당 글에 대한 요청이나 질문은 받지 않습니다. :)



다운로드 :

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by Dual

2007/02/14 00:48 2007/02/14 00:48
Response
15 Trackbacks , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/253

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/253

Trackbacks List

  1. ygairzsd

    Tracked from ygairzsd 2009/02/20 21:58 Delete

    ygairzsd

  2. nmtkstec

    Tracked from nmtkstec 2009/02/20 23:04 Delete

    nmtkstec

  3. mpqbrcnw

    Tracked from mpqbrcnw 2009/02/20 23:04 Delete

    mpqbrcnw

  4. xzccpdgt

    Tracked from xzccpdgt 2009/02/20 23:04 Delete

    xzccpdgt

  5. pfc jesse mizener

    Tracked from pfc jesse mizener 2009/07/28 03:28 Delete

    panzer iv model diorama <a href="http://sexocean78.5gighost.com/panzer-iv-model-diorama.html">panzer iv model diorama</a>

  6. zeps bbs

    Tracked from zeps bbs 2009/07/29 15:32 Delete

    tawas security experts <a href="http://vatzefak.wordpress.com/">tawas security experts</a>

  7. zero turn mowers

    Tracked from zero turn mowers 2009/07/29 16:21 Delete

    tawas business analysis <a href="http://gomyloko.wordpress.com/">tawas business analysis</a>

  8. Margot Kidder Nude

    Tracked from Margot Kidder Nude 2009/08/18 01:55 Delete

    Margot Kidder Nude <a href="http://www.kaboodle.com/margot_kidder_nude_52">Margot Kidder Nude</a> Photos and Video. jgr1uig98d

  9. nopi chicks

    Tracked from nopi chicks 2009/08/19 20:32 Delete

    grammas educated pussy <a href="http://www.kaboodle.com/grammas_educated_pussy_75">grammas educated pussy </a> dating sittes <a href="http://www.kaboodle.com/dating_sittes_70">dating sittes </a>

  10. asiain porn

    Tracked from asiain porn 2009/08/27 16:49 Delete

    lolpost bbs <a href="http://www.kaboodle.com/lolpost_bbs_87">lolpost bbs </a>

  11. Casino 1269869137

    Tracked from Casino 1269869137 2010/03/30 02:33 Delete

    Casino 1269869137

  12. Casino 1273770280

    Tracked from Casino 1273770280 2010/05/14 18:32 Delete

    Casino 1273770280

  13. Casino 1274830705

    Tracked from Casino 1274830705 2010/05/26 10:06 Delete

    Casino 1274830705

  14. Casino 1276714797

    Tracked from Casino 1276714797 2010/06/17 07:08 Delete

    Casino 1276714797

  15. Casino 1277066961

    Tracked from Casino 1277066961 2010/06/21 07:55 Delete

    Casino 1277066961

Leave a comment

Game Speed Hacking의 원리 그리고 Codes


Game Speed Hacking의 원리 그리고 Codes





Sammuel Dual [Dual5651@hotmail.com]

Homepage : http://dualpage.muz.ro



This article assumes you're familiar with WinNT
Level of Difficulty    1  2  3
Download the code for this article:GSH.zip


이번 글에서는 Game Speed Hacking에 대하여 다루어 봅니다.




1962년 3월, 미국의 MIT 공과대학 학생들이 만든 스페이스워(Spacewar)가

만들어 진지도 약 40년이 흘렀고, 그 세월동안 게임은 큰 발전을 거듭해 왔습니다.

사람들은 어떠한 일에서 다른 이보다 Advantage를 가지고 싶어합니다.

이러한 Advantage에 대한 욕망은 게임이 발달해온 40년간의 세월동안

Game Hacking을 Game의 발전속도에 맞추어 발전하게 해왔습니다.

약 1995년 이전까지만 하여도 Online게임이기 보다는 Single게임이

주류를 이뤘습니다. 이떄가지만 해도 Game Hacking은 단지 게임을

빨리 클리어 하고 싶다던지,변칙적인 게임을 즐겨 보고 싶은 욕구를

채우기 위한 수단이었습니다. 그러나 1990년대 후반부터 등장한

Online게임은 그동안 혼자서 즐기던, 혹은 친구 한명쯤과 같이 즐길수 있던

게임에서 벗어나 모르는 여러 사람들끼리도 게임을 즐길수 있게 되었고,

이는 게임의 중독성및 경쟁의식을 강하게 해주었습니다.

더 이상 게임은 혼자 엔딩을 보는것이 아니게 되었고,

다른 사람과의 경쟁이 되었습니다. 공평한 조건속에서의 게임보다,

Advantage를 가지고 있는 게임이 승산이 큰것은 당연한 일이었고,

사람들은 Online게임에 Game Hacking을 사용하기 시작했습니다.

Single게임에는 별로 큰 의미를 가지지 않던 Game Hacking기법 한개가

Online게임에는 커다란 의미를 가지게 되었으니,

그 기술이 바로 Game Speed Hacking이었습니다.

게임의 장르를 무시하고 Game Speed Hacking은 커다란 영향을 주었습니다.

때로는 다른 플레이어 보다 빠르게 움직이거나 공격함으로써,

또 때로는 다른 플레이어 보다 느리게 움직이거나 느리게 공격할수 있게 됨으로써,

엄청난 Advantage를 가지게 된 것입니다.

Game Speed Hacking은 직접적인 메모리 변수의 값을 바꾸거나,

Operation Code(기계어)를 조작하는 것이 아님으로,

다른 Game Hacking기법들 보다 방어하기가 까다롭습니다.

그 점이 Online게임이 등장한지도 약 10년이 지난 지금도

Game Developer들이 Game Speed Hacking하면 치를 떠는 이유인거 같습니다.

Game Speed Hacking?



Game Speed Hacking이란 대체 무엇일까요?

정의에 대해서 확실히 집고 넘어갈 필요성이 있다고 봅니다.

Game Speed Hacking이란 게임에서 다른 플레이어 보다 Advantage를

가지기 위해 속도를 빠르게 혹은 느리게 고의적으로 조작하는 기법 입니다.

그런데, 대체 게임의 속도를 어떻게 조작하는 걸까요?

크게 두가지 방법이 있습니다.

첫쨰로 시스템을 전체적으로 속도를 조작 버리는 기법이 있고,

둘쨰로 각 프로세스 개별적으로 속도를 조작할수 있는 기법이 있습니다.

첫쨰 방법은 시스템 전체가 가속되거나 감속됨으로 하드웨어에 안좋은

영향을 줄수도 있는 방법임으로 이 글에서는 다루지 않습니다.

두번쨰 방법으로 프로세스 개별적 속도 조작법이 있습니다.

이 기법은 원하는 특정 프로세스의 속도만을 개별적으로 조작해 줌으로써,

보다 하드웨어에 미치는 영향이 보다 적게 가는 기법 입니다.

본글에서는 이 기법에 대해서 다루어 보도록 하겠습니다.


Game Developer들은 게임에서 일정한 Delay Time을 주어야 할떄가 많습니다.

예를들면 공격 주기 라던지, 이동속도 라던지, 에너지 회복 시간 같은것을

하기 위해서 말입니다. Delay Time은 신뢰할수 있는 시간 이어야 함으로,

Local Time을 사용하기 보다는,System Time을 사용하는것이 일반적입니다.

이 비교적 신뢰할수 있는 시간을 얻기 위해서 Game Developer들은 아래의

3가지 API를 많이 사용 합니다.


DWORD GetTickCount(void);

DWORD timeGetTime(void);

BOOL QueryPerformanceCounter(LARGE_INTEGER* lpPerformanceCount );


(DXUtil_Timer()는 내부적으로 QueryPerformanceCounter사용)

(위의 API들 외에 함수들을 더 알고 싶다면 여기를 클릭)


Game Developer들은 Delay Time을 계산할떄

위의 API들을 다음과 같이 코드에 응용하여 사용 합니다.


GetTickCount():




timeGetTime():




QueryPerformanceCounter():






보는 바와 같이 각각 사용하는 API는 다르지만,

전 시각 - 후시각의 차로 Delay Time을 만들어 내는걸 볼수 있습니다.

그렇다면 이 차를 빠르게 좁힘으로써 시간을 빠르게 흐른것 처럼

게임을 속여 줄수 있다는 말이 됩니다.

어떻게 하면 차를 빠르게 좁힐수 있을까요?

그건 누구나 쉽게 시간을 빠르게 흐르게 하면 되지요.

라고 말하겠지만 어떻게 빠르게 흐르게 할거냐는 질문엔 침묵을 금치 못합니다.

대답은 바로 API Hooking을 이용하라 입니다.

우리는 위의 API들이 각각 어딘가에 시간을 저장해두고,

우리가 해당 API를 호출할떄 이를 반환해줄것임을 예측해 볼수 있습니다.

즉 다음과 같은 구조가 될 것 입니다.



API Hooking을 이용하면 API 호출의 흐름으 도중에 가로채어 조작해줄수 있습니다.

즉 다음과 같은 구조로 조작하여 주면 될것입니다.



말로 표현하면, 시간 API가 호출될떄,

기존의 API의 코드가 실행 되게 하지 말고,

Hooking하여서, My Routine으로 넘어오게 하고,

My Routine은 가짜 변수에서 시간을 꺼내어서 반환해주면 됩니다.

물런 My Routine속에 있는 가짜 시간용 변수는 마치

진짜 시스템에 숨겨져 있는 '그' 변수 처럼

시간을 증가 시키면서 존재하고 있으되,

원하는 속도 만큼 지속적으로 빠르게 증가 시키면서 존재하고 있어야 합니다.

이제 이론적인 부분은 다 끝났으니 실제 Code를 작성하여 봅시다.



Fucking †he C0de



이번글의 내용을 진행한 컴퓨터의 사양은 아래와 같습니다.



CPU : Intel(R) Pentium(4) 4 CPU 1500MHz

RAM : 523,248KB

OS : Microsoft Windows XP

Tools : Microsoft Windows XP Driver Development Kit

      Microsoft Visual Studio 2003

*-본글에서 등장하는 Code는 NT Platform을 위해 작성 되었습니다.-*


먼저 API Hooking기법중에 사용할 기법은 Dll Injection입니다.

int 3(0xCC)삽입 기법보다는 속도면이나, 시스템의 안정성에서 보다 좋기 떄문입니다.


Dll Injection을 하기위해 대상 Process의 핸들을 구해오는게 급선무 일것입니다.

필자는 대상의 Process를 구해오기위해 다음과 같은 Code를 작성했습니다.



위의 Code가 하는 기능은 ZwQuerySystemInformation()이라는

Native API를 이용하여, Process 목록을 구해 각각의 Pid를 배열에 저장해 두고,

프로세스 이름은 함수의 인자로 넘어온 hListBox안에 있는 핸들값을 갖는

리스트 박스에 문자열을 추가 시켜 주는 기능입니다.

특정 프로세스를 대상 프로세스 하고 싶다면 아래와 같이 수정하면 됩니다.




이제 대상의 Pid를 구했으니 Access Handle을 얻을 필요가 있습니다.

Access Handle을 구하는 부분은 아래와 같이 작성 하였습니다.



ZwOpenProcess()라는 Native API를 사용하여 Access Handle을 구해 온후,

현재 프로세스가 실행중인 경로를 구해 Directory라는 변수에 넣고,

DLL의 이름을 그 뒤에 붙여 넣은후 현재 경로 와 DLL이름이 합쳐진

이 문자열을 InjectDll()이라는 함수로 넘긴다.


AccessHandle도 구했으니 Dll Injection을 하기위해 다음과 같은 Code를 작성했습니다.



대상 프로세스에 현재경로 와 DLL이름을 합친 문자열의 길이만큼,

메모리를 할당한 후 그곳에 현재 경로 와 DLL이름을 합친 문자열을

적어 넣습니다. 그리고 원하는 프로세스에 Thread를 삽입할수 있는

API인 CreateRemoteThread()를 이용하여 함수의 주소로 LoadLibraryA()의

주소를, 함수 인자로 대상 프로세스에 현재경로와 DLL이름을 합친

문자열을 써넣은 주소를 주었습니다. 이렇게 하면, 대상 프로세스에 있는

LoadLibraryA()가 우리의 HackDll.dll을 대상 프로세스의 메모리에 로드 하여 줍니다.


이제 대상 프로세스에 Dll을 삽입 하는 것으로 이 프로세스의 임무는 끝났습니다.

지금 부터는 Dll의 임무가 시작됩니다.

삽입된 Dll은 이제 대상 프로세스의 메모리 위에 있는 것입니다.

즉 대상 프로세스 안에 얼마던지 우리가 원하는 Code를 널수 있다는 말이 됩니다.

먼저 DllMain은 아래와 같이 작성했습니다.




Dll이 대상 프로세스에 Attach될떄,

Start라는 함수로 부터 시작하는 새로운 Thread를 만듭니다.

이 Thread는 Hook을 설치하는 역할과 '가짜 시간 변수'의 시간을

지속적으로 업데이트 하여 주는 역활을 합니다.

'가짜 시간 변수'의 시간은 정확한 주기로 증가해 주어야 함으로,

SetThreadPriority()라는 API를 이용해 Thread의 Priority를 최상위로 맞춰 주었습니다.

두번쨰 Thread인 GetTime은 공유 메모리에서 지속적으로 가속도를 구해오는 역활을 합니다.

Dll이 Detach될떄는 Thread의 핸들들을 놓아주고, 공유메모리도 놓아주고, Hook도 해제합니다.


이제 중심부의 시작인 Start의 Code를 살펴 봅시다.



먼저 조종 프로세스와의 공유메모리를 만듭니다.

이 공유 메모리는 가속도를 조종 프로세스 -> Dll에 전달하기 위해 사용 됩니다.

현재 시간을 GetTickCount()로 구해 MyTick이라는 변수에 저장하여 둡니다.

그 다음 시간 API들에 Hook을 설치 하고, 이제 부터 '가짜 시간 변수'의 시간을

3ms마다 증가 시키어 줍니다. tCount에는 조종 프로세스로 부터 전달받은 가속도 값이

들어있고, Sleep(3)을 Sleep(몇)으로 바꿔 주느냐에 따라서도 속도에 차이가 나게 됩니다.


조종 프로세스와의 공유 메모리를 설치하는 Code는 아래와 같이 작성 하였습니다.



CreateFileMapping()함수로 공유 메모리를 만들떄, 주의할 점은 첫 인자로 핸들이 아닌,

INVALID_HANDLE_VALUE를 주어야 공유 메모리로써 쓸수 있다는 점과, CreateFileMapping()

의 마지막 인자로 공유 메모리의 이름을 주어야 한다는 겁니다. 본 글에서는 "DUALMEM"입니다.

그후에 공유 메모리의 가속도 값과 현재 Dll에 있는 가속도 변수의 값을 1로 초기화 시킵니다.


공유 메모리도 설치 하였으니,시간 API에 Hook을 설치하기 위해

아래와 같이 Code를 작성 하였습니다.



각 시간 API의 주소를 GetProcAddress()로 구해온후 그 구해온 주소의 메모리 영역은

Code Segment임으로 READONLY로 되있을 가능성이 큼으로 VirtualProtect()를 이용해

메모리 보호권한을 WRITE도 가능하게 변경하여 줍니다.

JmpByte라는 배열의 [1][0]에 장거리 점프 명령어의 Opreation Code인 0xE9를 넣어 줍니다.

JmpByte라는 배열의 [1][1]에 MytimeGetTime()의 주소 - timeGetTime()의 주소 - 5를

저장합니다. MyTimeGetTime()은 timeGetTime()이 대상 프로세스에서

호출될때 불려질 가짜 timeGetTime()입니다.

기존의 timeGetTime()의 처음 부터 5Bytes만큼 Bytebackup이라는 변수에 백업해두고,

그 자리에는 JmpByte배열의 값들을 써넣습니다.

위에처럼 다른 함수들에도 반복해줌으로써 Hook설치를 하여 주었습니다.


여기까지 핵심부인 Start()안에 있는 Code들을 살펴 보았습니다.

Hook설치도 했으니 Dll이 해제 될때 설치한 Hook을 해제 하는 Code는 다음과 같이 작성했습니다.



시간 API의 처음부터 5bytes를 백업해뒀던 Bytes로 복원하고,

메모리 보호 권한을 원래대로 되돌리는 작업을 하여 줍니다.


이제 설치,해제하는 것을 Code를 전부 보았음으로,

설치된후 대상 프로세스에서 시간 API가 호출 될떄 대신 호출될

'가짜 시간 함수들'의 Code는 다음과 같습니다.



간단하게 MyGetTickCount()와 MyTimeGetTime()은 MyTick의 값을 반환해 주고 있고,

MyQueryPerformanceCounter()는 *lpPerformanceCount에 MyPtick의 값을 넣어주고,

무조건 성공을 반환하는 Code로 작성되어 있는 것을 볼수 있습니다.


추가적으로 단축키를 설정하는 법에 대해서 간단히 Code를 작성해 보았습니다.



적당한 부분에서 CreateThread()로 새 Thread를 만들어 줍니다.

while을 돌며 GetAsyncKeyState()함수로 현재 눌린 키가

+이면 가속도를 증가 시켜주고, -이면 가속도를 감소 시켜 주는 기능입니다.


이로써 Game Speed Hacking에 필요한 모든 요소 & Code를 살펴 보았습니다.

잘못된 점이 있으면 메일로 알려 주세요.



For related articles see:

Sysinternals Freeware - Inside the Native API

Windows NT System Calls

Undocumented Windows NT

Programming the Microsoft Windows Driver Model

Win2K/XP SDT Restore 0.2 (Proof-Of-Concept)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by Dual

2006/01/26 23:51 2006/01/26 23:51
Response
No Trackback , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/175

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/175

Leave a comment

DMA - Dynamic Memory Allocation

            
안녕하세요~ 듀얼입니다.
            
이번글은 DMA( Dynamic Memory Allocation )에 관한 건데요.
            
DMA란? 간단히 생각해서 우리가 종종 GameHacking중에
            
돈수치가 저장되있는 주소를 찾았다고 치죠.
            
그런데 게임을 다시 시작하니 그 주소는 전혀 쓸모없는
            
쓰래기 값이 들어 있거나 아무값도 안들어 있는 그런 경우를
            
종종 격어 보셨을 겁니다. 그것에 대한 해결책이 바로 DMA
            
입니다. 강좌를 이해만 하신다면 한층나은 GameHacking기술을
            
가지게 되는 것이겠죠? 행운을 빕니다.
            
 
            
타겟(GTM)의 모습 : 
            
밑 그림은 타겟 파일의 모습이다. "hack this bitch" <===
            
이것을 내 방식대로 해석하면 "해킹해봐 개새야" 이다.
            


            
 
            
============= P A R T 1
            
=============

            
 
            
이번 강좌에서는 Money 수치를 가지고 강좌를 진행해 보도록 하죠.
            
아마 지금 money 수치는 계속 줄어 들고 있을 겁니다. 수치의
            
움직임을 멈추기 위해 "Pause" 버튼을 눌러서 움직임을 일시중지
            
시켜 봅시다. 그런후 Tsearch를 키시고 밑의 그림처럼 GTM을
            
Attach 해줍니다.
            


            
 
            
위 처럼해서 GTM을 Attach 하는것에 성공 하였다면.
            
밑의 그림 처럼 현재 Pause 되있는 Money의 수치를 Search 해줍니다.
            


            
 
            
값은 반드시 1개 나옵니다. (2개가 나왔을 경우 더 작은 주소의 값이 진짜 입니다.)
            
위의 Search 도 성공하였다면 그다음은 밑의그림처럼 나온 주소를 더블 클릭하거나
            
주소를 한번 클릭하고 + 버튼을 클릭하여 Cheat List로 옮겨 봅시다.
            


            
 
            
Cheat List에 옮기는것도 성공 하였다면 그다음은 Tsearch의 주메뉴에서 "AutoHack"
            
의 자식메뉴인 "Enable debugger" 클릭하여 디버거를 활성화 시켜 줍니다.
            


            
 
            
그리고 또다른 "AutoHack"의 자식 메뉴인 "AutoHack widnow"를 클릭하여
            
오토핵 창 을 띄웁니다.
            


            
 
            
오토핵 창이 떳다면... 이제 초록색 화살표 그림을 눌릅니다.
            
그러면 밑과 같은 Set BPM 창이 뜹니다.
            


            
 
            
Address에 우리가 찾은 (Money 수치가 담겨 있는) 주소를 넣으시고
            
Set 버튼을 누릅니다. 그러면 Set이 됩니다. 그런후 GTM으로 돌아가서
            
다시 "Pause" 버튼을 눌러 다시 Monet 수치가 움직이게 해봅시다.
            
그러면 밑의 그림처럼 " 4011DB: sub [esi+0x4],eax "라는것이
            
AutoHack 윈도우에 보이는것을 볼수 있습니다.
            
 
            


            
 
            
위에 나온 것을 마우스로 한번 클릭한후 "Disassembler" 버튼을
            
클릭하시면 밑과 같은 화면을 볼수 있습니다.
            
 
            


            
 
            
4011db 와 그 주변 주소들의 OPcode 들을 Disassemble 하여 보여주는 것입니다.
            
우리는 예상할수 있습니다. [esi+0x4] 지점에 eax 값을 sub(뺴줌) 으로써 Money의
            
값이 줄어 듬으로 esi+0x4 안에 우리의 주소가 닮겨 있을 것이라는...
            
여기서 [esi+0x4] 가 의미하는것이 무엇인가 하면.. [    ] 란
            [   ]주소 안에 있는 값이
            
가리키는... [포인트 하는] C에서의 * 와 같거나 or 비슷한 뜻이라고 할수 있습니다.
            
정리해서 말하면 esi+0x4 주소 안에는 Money수치가 닮겨 있는 주소가  들어 있는
            
것입니다. 그렇지만 esi+0x4라는 것은 고정 주소가 아니기 떄문에 저대로는 우리는
            
Trainer를 만들수 없습니다. 그럼으로 Code Injection을 통해서 esi+0x4의 값을
            
메모리 상의 지점으로 옮기게 하도록 해보죠. 장거리 점프의 길이는 5Bytes인데
            
딱 4011db 다음줄의 4011de mov eax,0x5 가 딱 5Bytes 군요. 이 줄을 점프로
            
대체 합시다. 빈공간은 400000 ~ 401000 까지는 빈공간 인데 우리는 400300 부터
            
쓰도록 하죠. 바꾸는 방법은 밑의 그림처럼 해주면 됩니다.
            


            
 
            
바꾸는것을 완료 하셨다면 이제 EasyWrite를 이용해서 400300에 우리의 코드를 Injection
            
해봅시다.
            
 
            
============= P A R
            T 2
=============

            
 
            
EasyWrite를 키는 방법은 밑의 그림과 같습니다.
            


            
            
 
            
EasyWrite를 이용하여 400300 부터 우리의 코드를 삽입하여 줍시다.
            
저는 우선 밑의 그림과 같은 코드를 삽입하도록 하였습니다.
            


            
 
            
보시면 0x4011de 줄은 jmp 400300 명령어로 대체 하였으며
            
400300 다음의 첫번쨰 명령은 원래 0x4011de에 있던 mov [esi+0x4],eax
            
명령어를 해주었고 그다음 명령어는 이곳으로 점프를 해왔으니
            
다시 원래의 코드로 복귀하기 위해 기존의 코드인 0x4011e3으로 점프하게
            
하였습니다. 그다음 OK 버튼을 눌러 코드를 저장 시키고 밑의 그림처럼
            
□를 클릭하여 체크상태로 만듭니다. 그런후 타겟이 정상적으로 작동되나
            
테스트 해봅니다. (코드를 우회해도 정상적으로 작동되나...)
            
 
            


            
 
            
아마 재대로만 따라하셨다면 정상적으로 작동하시는것을 보실수 있을 겁니다.
            


            
 
            
이제 코드를 우회 할수 있도록 해놨으니 esi+0x4 의 값을 메모리에
            
저장 시키는 코드도 집어넣도록 합시다. esi+0x4의 코드를 옮기는
            
명령어로는 Lea 를 쓰도록 하겠습니다. Lea 명령어란 간단히 예를들면
            
lea eax,address 
            ; eax 의 값을 adressd의 주소로 만든다.

            
그럼으로 우리는 우리의 공간에 밑과 같은 코드를 집어넣으면 됩니다.
            
 
            


            
 
            
위의 코드가 정상적으로 되는지 테스트 해보기 위해 OK 버튼을 눌르어 임시저장후
            
밑의 □를 클릭하여 체크 상태로 만들고 GTM의 "Pause" 버튼을 눌러 다시
            
Money가 움직이게 해봅시다.
            
 
            


            
 
            
우리는 Code Injection 을 통하여 0x400400 Money의 주소가 자동 저장되도록 해놓았습니다.
            
그럼으로 아마 0x400400엔 Money의 현재 주소값이 들어있겠죠? 한번 확인해 보죠.
            
밑의 그림처럼 하얀 백지 모양의 버튼을 클릭하여 "New cheat"를 띄운후 밑처럼 세팅하고
            
OK 를 눌러봅시다.
            
 
            


            
 
            
저는 밑과 같이 저장되어 있었습니다. 하지만 저건 10진수 값임으로
            
16진수로 변환 시켜줄 필요가 있습니다. 계산기나 뭐 간단한 툴을
            
이용하여 변환시키기 바랍니다. 뭐 어쨰든 10진수 "19727956" 을
            
16진수로 변환하면 "12D0654" 이 됩니다. 과연 "12D0654"에
            
현재 Money의 값이 들어 있을 까요? 한번 보죠.
            


            
 
            
어떄요? ^-^/ 됬죠? 이걸 기반으로 트레이너를 만들어 보죠.
            
 
            
============= P A R
            T 3
=============

            
 
            
이번강좌에서는 GTS [Game Hacking Studio]로 트레이너를
            
만들도록 해보죠. 밑처럼 새 프로젝트를 만들면 됩니다.
            


            
 
            
그런후 타겟 파일을 밑 그림 처럼 패치해줄 대상파일을 지정해줍니다.
            
 

            
 
            
그런다음 밑그림처럼 버튼을 하나 추가 줍니다.
            


            
 
            
그리고 새로만든 버튼을 마우스 오른쪽 버튼으로 클릭하면
            
나오는 팝업메뉴에서 "속성"을 클릭하여 속성에 들어갑니다.
            
버튼속성에서 Funtion 부분으로 갑니다. 그러면 밑과 같은
            
부분이 뜨는데요. "삽입"를 선택하시기 바랍니다.
            


            
 
            
그런후 아까 우리가 EasyWrite에서 만든 코드를 주석을 다 삭제한후 전부 선택하고
            
Copy[복사] 한후 Code Injectior라는 글자 밑에 있는 박스에 붙여 넣습니다.
            


            
 
            
밑그림 처럼 복사해넣으시면 됩니다.
            


            
 
            
위처럼 해줌으로써 0x400400에 Money의 주소를 옮기게 하는 버튼의 코드는 완성입니다.
            
이번에는 Money의 값을 바꾸는 버튼을 하나 만들어 보도록 하죠.
            
이제 새로 버튼을 하나 더 만들어 주시고 이번에도 속성에 들어가서 Funtion 에서 "쓰기"
            
를 선택해 주시기 바랍니다. 그리고 다음과 같이 한줄의 명령어를 써넣었습니다.
            
Pointer 400400 0 add 3F 42 0F 00
            
위 코드가 뜻하는것은 Pointer란 GTS에서 해당 주소 안에 있는 값에 대해 동작을
            
하라는 명령어 입니다. 그럼으로 400400안에 있는 주소[Money의 주소]에
            
3F 42 0F 00 (=9999999)를 써넣을것입니다.


            
            
 
            
그리고 "Function" 옆에 있는 "Freeze"를 클릭합니다. 그리고 밑의 그림과 같이 세팅하여 줍니다.
            


            
 
            
이제 모든 세팅을 끝냈으니 정상적으로 트레이너가 작동되는지 테스트 해보죠.
            
트레이너를 빌드하기 위해 밑의 그림처럼 해주시기 바랍니다.
            


            
 
            
트레이너 빌드가 완료되고 트레이너가 켜진다면 "DMA활성버튼"을 먼저 클릭하시고
            
"Money조작버튼"을 클릭 하시기 바랍니다. 그리고 GTM의 Money값이 바뀌는지
            
확인해 보죠 :p
            


            
 
            
바뀌죠? :p Yeah 완료 입니다. 이런 방식으로 여러분은
            
주소가 바뀌는 것에 대해서도 패치를 만들수 있을 것입니다.
            
더 자세한것을 원하시면 외국 강좌를 참고 하시거나
            
밑의 동영상 강좌를 참고 하시기 바랍니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by Dual

2005/09/11 13:07 2005/09/11 13:07
Response
No Trackback , a comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/153

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/153

Comments List

  1. aa 2009/01/18 10:27 # M/D Reply Permalink

    I am wondering whether there is any English version of you articles?
    i am interested in it!
    waiting for you letter!!
    vxking@hotmail.com

Leave a comment
안녕하세요 코코입니다. 드디어 기다리시던 강좌를 시작하겠습니다. ^^*

본 강좌의 저작권은 저에게 있지만 그걸 왈가왈부 할만한 가치가 있다고는 생각되지 않으므로
마음껏 퍼가셔도 좋습니다. 대신 제이름과 출처를 꼭 밝혀주시길 바랍니다.

덧붙여 제 개인적인 경험을 바탕으로 한것이므로 정석이 아닐 수 있으며 다른 더 좋은 방법들이
있을 수 있습니다. 잘못된 점이나 더 좋은 방법이 있다면 언제라도 태클 환영합니다. 질문은
질답게시판에 해주세요. 아는 범위 내에서 답해드리겠습니다.

====================================================================================

1. 준비물 (본인의 경우)
디버거- OllyDbg
헥스에디터 - Hex Workshop 4.1, 울트라 에디트
듀얼 모니터(선택)

듀얼 모니터를 권장하는 이유는 대상 게임이 전체화면을 사용하기 때문에 디버깅시
조금 어려움이 생길 수 있기 때문입니다.
아마 다이렉트 X를 사용하기때문이 아닐까 생각되네요.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2. 폰트를 찾아라.
예전 강좌에도 있었지만 다시 보는 불편함을 덜어드리기 위해 간단하게 설명드리겠습니다.

한글화를 하려면 가장 먼저 해야할 것이 폰트를 바꾸는 것입니다. 게임에 따라 고유폰트를
사용하는 경우와 표준폰트(S-JIS)를 사용하는 경우가 있습니다. 이제부터 튜토리얼 식으로
설명해 드리겠습니다.

올리를 실행하고 polylove.exe를 엽니다. 그러면 자동으로 분석을 시작할 것입니다.
사양에 따라 시간이 좀 걸릴수도 있습니다.

분석이 끝났으면 CPU창에서 아무 곳에다 마우스를 올려놓고

오른쪽 클릭-> search for -> name in current module


을 선택하면 모듈창이 하나 뜹니다. 이 과정은 게임에 사용된 API함수 등을 알아내기 위한 것입니다.
자세한 의미는 저도 잘 모릅니다.^^;



그럼 모듈창에서 CreateFontIndirectA라는 이름을 찾습니다.
바로 이 함수가 폰트를 설정하는 역할을 합니다.

선택하고 엔터를 누르면 그 함수를 사용하는 부분을 찾아줍니다.



이제 어느부분인지 한번 가보겠습니다. 더블클릭하면 그 위치로 가게 됩니다.

여기서는 위에 것으로 하겠습니다.



이제 창을 조금 위로 올려봅시다. 올라가다 보면

MOV BYTE PTR SS:[ESP+23],80

와 같은 부분을 찾을 수 있을 겁니다. ESP + 23에다 80을 넣으라는 뜻이죠.

이것이 무슨 의미냐면 CreateFontIndirectA라는 함수에 인수들을 넣는 과정인데
이 함수는 LOGFONT라는 구조체를 사용합니다. 더 자세한 부분이 알고 싶으면 게시판에 질문해 주세요.

여기서 아까 찾은 80을 넣는 부분이 S-JIS를 사용한다는 뜻입니다. 그럼 여기를 한글표준폰트로 바꾸는
작업이 필요하겠죠. 한글 표준 폰트는 81입니다.

그럼 찾은 부분을 더블클릭하면 편집창이 나옵니다.



81로 수정하고 Assemble을 클릭하여 편집한다음에 esc를 누르면 창이 닫힙니다.
이제 게임을 한번 실행해 보죠. 정말 한글로 나오는지.

F9를 눌러 게임을 실행합니다.
메인 화면은 아무런 변화가 없습니다. 옵션으로 한번 가보죠.

이게 웬일입니까. 일본어가 그대로 나오는 군요. 어떻게 된걸까요?
그런데 자세히 보시면 오른쪽 귀퉁이에 한글이 깨져서 나와있는걸 볼수 있습니다.



일단 여기만 수정해 보기로 합시다.


그에 앞서 다시 돌아와 start를 누르면 일본어가 하나도 바뀌지 않고 그대로 나오는 것을
알 수 있습니다. 그렇다면 이게임은 다른 방법으로 폰트를 수정해야 한다는 결론이 나옵니다.
이부분은 다음 강좌에서 설명드리겠습니다.

간단하게 말씀드리자면 일본어 폰트자체가 하나의 이미지로 되어있습니다. 이런걸 고유폰트라고 합니다.


그런이유로 여기서는 다음으로 미루고 깨진 글씨만 한글로 고쳐보겠습니다.

크게 두가지 방법이 있습니다.
하나는 깨진 한글을 그대로 디버거에서 찾는 방법입니다.

아까 깨진 한글을 두글자 정도만 기억합니다. '럊뾭'으로 하죠.

ctrl+F2를 눌러 리로드 합니다. 여기서 주의할 점은 리로드를 하게되면 모든 수정사항이 원래대로 돌아
옵니다. 따라서 수정사항을 저장하려면 오른쪽 클릭 -> copy to excutable -> all modifications를 선택하고
새창이 뜨면 오른쪽 클릭 -> save file을 선택하여 새파일로 저장하면 됩니다.



어쨋든 리로드 후에 hex dump부분에서 그림과 같이 선택합니다.



새로뜨는 창에 ASCII부분에 한글 버튼을 누르고 '럊뾭'을 입력합니다.
그러면 그부분이 찾아질 겁니다. 그래서 ASCII부분을 보면 아까 깨진 한글이 나와있습니다.
여기를 드래그 한후 오른쪽 클릭 -> Binary -> edit를 선택하면 편집창이 뜹니다.

여기에 한글로 편집하면 됩니다. 주의할 점은 ASCII부분에 한글로 입력해야 하며 입력후에 꼭 오른쪽
화살표를 눌러야 제대로 입력됩니다.



그리고 다시 실행하면 깨진 부분이 한글로 바뀐것을 알 수 있습니다.

다른 방법은 에디터를 사용하는 방법입니다.

수정할 부분을 쉽게 찾기 위해서 조금전에 '럊뾭'으로 찾았던 곳의 주소를 기억합니다.
여기서는 0x422738입니다. 그런데 이 주소는 실행파일의 오프셋이 아닌 메모리에
덤프된 주소 입니다.

보통은 0x400000에서부터 덤프하기때문에 실행파일에서의 오프셋은 그걸뺀 0x22738입니다.


그럼 한번 찾아보죠. 수정하지 않은 실행파일을 울트라 에디트로 엽니다.
보기의 hex/열 글꼴 설정에서 일본어를 지원하는 폰트로 바꾼후 일본어를 선택해줍니다.

그다음 go아이콘을 누르고 0x22738을 입력합니다. 그러면 일본어부분이 나오죠.
여기서 한글로 수정해 주면 됩니다. 단, 일본어 글꼴로 표시했기 때문에 한글은 깨져서
나옵니다. 그리고 그주변에 보면 다른 것들도 같은 방법으로 수정할 수 있습니다.



다음에는 고유번호에 대해서 설명해 드리겠습니다.
이것으로 이번 강좌를 마치겠습니다.


PS. 헉헉.. 역시 첨부터 하나씩 설명하려니 시간이 많이 걸리는 군요. 사실 이번꺼는 별로 할것도 없었는데
너무 자세하게 하려고 하니 힘드네요. 어쨋든 마지막까지 최선을 다해서 하겠습니다. 의문사항이나
잘못된점, 더 좋은 방법에 대한 덧글 환영입니다.
이올린에 북마크하기

Posted by Dual

2005/07/31 12:44 2005/07/31 12:44
Response
No Trackback , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/30

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/30

Leave a comment
본 강좌의 저작권은 저에게 있지만 그걸 왈가왈부 할만한 가치가 있다고는 생각되지 않으므로
마음껏 퍼가셔도 좋습니다. 대신 제이름과 출처를 꼭 밝혀주시길 바랍니다.

덧붙여 제 개인적인 경험을 바탕으로 한것이므로 정석이 아닐 수 있으며 다른 더 좋은 방법들이
있을 수 있습니다. 잘못된 점이나 더 좋은 방법이 있다면 언제라도 태클 환영합니다. 질문은
질답게시판에 해주세요. 아는 범위 내에서 답해드리겠습니다.

====================================================================================

지난 번에는 간단하게 S-JIS를 한글 표준폰트로 바꾸는 걸 했습니다.

이번 강좌부터는 본격적으로 어카이브 파일을 파헤쳐 보도록 하겠습니다.

지난번 작업으로 폴리곤 러브는 고유폰트를 사용한다는 사실을 알아냈습니다.
고유폰트란 쉽게 말해서 폰트자체를 이미지로 만들어서 사용하는 것을 말합니다.
따라서 SJIS를 변환해도 한글로 나오질 않죠.

그럼 고유폰트에 대해서 좀더 알아봅시다.


1. 고유폰트는 이미지다.

위에서 말씀드렸듯이 고유폰트는 하나의 이미지로 되어 있습니다. 따라서 게임을 실행할때
분명 어딘가에서 이미지를 읽어올 것입니다. 우리는 어디서 어떻게 읽어오는지를
알아내면 됩니다. 이제 분석을 시작해보죠.

2. 어카이브를 파헤쳐라.
이것도 이전 강좌들에서 나온것이지만 다시한번 설명드리자면 어카이브파일이란
여러개의 파일을 하나로 압축, 암호화한 파일을 말합니다.

어카이브의 구조는 게임마다 다르지만 보통은

1. 파일의 갯수
2. 파일명
3. 크기, 압축유무
4. 기타 잡다한 정보
5. 파일 오프셋
6. 파일 내용

로 구성되어 있습니다. 이는 순서와 무관하며 더 적을 수도 있고 많을수도 있습니다.

어쨋든 그렇다면 폴리곤 러브는 paq라는 형식을 사용합니다. 분석에 앞서 한번 파일을 살펴보죠.

PLI, PLS, PLC등이 있는데 용량이 적당한(?) PLI를 먼저 보겠습니다.



위 그림은 hex workshop을 통해서 본 것입니다. 한눈에 보기에도 대충 어떤 구조인지 짐작이 가죠?
이제 디버깅을 해보도록 합시다.

파일을 읽어오는 API함수는 ReadFile입니다. 저번과 마찬가지로 찾아봅시다. 이번엔 꽤많이 나옵니다.
여기서 call로 시작되는 부분을 살펴봅시다. 이함수를 사용하기 위해 호출하는 것입니다.

그런데 이부분만 봐서는 어떤 파일을 불러오는지 알수가 없습니다. 아까 봤던 PLI.paq를 읽어오는
부분을 찾기 위해서 PLI.paq가 어디에서 불려졌는지 찾아보겠습니다.

CPU창에서 오른쪽 클릭 -> Search for -> all referrenced text strings

여기서 PLI.paq를 찾아봅니다. 오른쪽 클릭으로 검색할 수 있습니다.



더블클릭해서 살펴보면 바로 다음에 CALL PloyLove.0040FE10 이란 부분을 찾을 수 있습니다.



여기가 파일명을 불러오는 것이라고 짐작할 수 있겠죠?
사실, 여기까지 오는데 많은 시행착오를 거쳤습니다.
PLI.paq를 사용하는 부분이 다행이 한곳이라 쉽게 할 수 있습니다.
여러분들도 직접 해보면서 분석하는것이 좋을 것입니다.

그럼 아래와 같이 브레이크 포인트(이하 브포)를 걸어놓고 한번 어떻게 되는지 살펴보겠습니다.
F2키를 누르면 현재 위치에 브포를 걸 수 있습니다.



그 다음 F9를 눌러 실행시켜보면 브포를 건 위치에 멈춰집니다. F8을 누르면서 한단계씩 내려가다
아까 CALL하는 부분에서 F7을 눌러 그 안으로 들어가 봅시다.
여기서 뭔가 작업을 하게 되겠죠?



젤 먼저 눈에 띄는 부분이 CreateFileA일 것입니다. 그 위애 나열된 것들이 이 함수가 받는 인수들입니다.

바로 위에 파일명이 보이는 군요. 아마 PLI.paq라 예상됩니다만 역시 F8로 하나씩 내려가봅시다.

PLI.paq가 맞습니다. CreateFileA는 지정된 이름의 파일을 생성합니다. 다시말해 존재하지 않으면
새로 만들고 이미 있으면 그걸 여는 거죠.

존재하는 파일이니 열렸을 것입니다. 계속 내려가다 보면 갑자기 점프하는데 여긴 아마 파일이 있는경우
와 그렇지 않은 경우를 다루는것 같습니다. 어쨋든 내려가보면 우리가 기다렸던 함수가 있습니다.

바로 ReadFile입니다. 이 함수가 받는 인수중에 알아야 할건 BytesToRead와 Buffer인데 전자는 불러올 파일의 크기며 후자는 올려놓을 메모리의 주소입니다.

그럼 그 주소에 어떤 부분이 올라오는지 확인해봐야 겠죠?
메모리 창에서 아무 줄이나 더블클릭하면 새창이 뜹니다. 이창이 실제 메모리에 덤프된 정보를 보여줍니다.

제 경우에는 buffer가 0x174FCD4입니다. 덤프된 창에서 오른쪽 클릭 -> Go to address를 선택하면
나타나는 창에서 174FCD4를 넣고 OK하면 그 곳으로 갑니다. 아직은 덤프된 상태가 아닙니다.




ReadFile을 불러올때까지 F8로 진행합니다. 불러온 순간 메모리의 4바이트가 바뀐것을 알 수 있습니다.




자세히 보니 아까 봤던 파일의 첫 4바이트가 덤프된거군요.
계속 진행해 봅시다.

VirtualAlloc함수가 나옵니다. 이 함수는 파일을 읽어와 덤프할 메모리를 미리 확보하는 것입니다.




확보된 메모리 주소는 call직후에 EAX를 보면 알 수 있습니다. 제 경우에는 0xFAF0000입니다.
아까와 마찬가지로 메모리창을 엽니다. 확보된 주소로 가보면 모두 초기화 되어있습니다.




다시 ReadFile이 나옵니다. 이제 목록을 불러오겠군요. 한번 확인해 봅시다.



역시나 맞습니다. 오늘은 여기까지 입니다. 너무 길어져서 나눠서 하겠습니다.

살짝 말씀드리면 이 다음은 정해진 파일을 목록에서 불러와 그 오프셋을 읽어온 후
그 위치에서 정보를 읽어오는 형태가 될 것입니다. (다말해버렸네..ㅡ,.ㅡ)
이올린에 북마크하기

Posted by Dual

2005/07/31 12:43 2005/07/31 12:43
Response
No Trackback , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/29

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/29

Leave a comment
본 강좌의 저작권은 저에게 있지만 그걸 왈가왈부 할만한 가치가 있다고는 생각되지 않으므로
마음껏 퍼가셔도 좋습니다. 대신 제이름과 출처를 꼭 밝혀주시길 바랍니다.

덧붙여 제 개인적인 경험을 바탕으로 한것이므로 정석이 아닐 수 있으며 다른 더 좋은 방법들이
있을 수 있습니다. 잘못된 점이나 더 좋은 방법이 있다면 언제라도 태클 환영합니다. 질문은
질답게시판에 해주세요. 아는 범위 내에서 답해드리겠습니다.

====================================================================================

지난 시간에는 PLI.paq에서 파일 목록을 불러오는것까지 했습니다.
이번엔 파일 정보를 직접 읽어보도록 하겠습니다.

지난 강좌까지 진행됐다고 가정하고 이어서 설명을 시작하겠습니다.

파일목록을 메모리에 덤프하고 계속 F8을 눌러 진행하면 반복되는 루틴이
나오는 것을 알 수 있습니다.



어떤 작업을 하는지 하나씩 진행하면서 알아보도록 하겠습니다.

0040FE9F |> 8B5424 20 MOV EDX,DWORD PTR SS:[ESP+20]
// ESP+20의 주소(스택)에서 1바이트를 읽어 EDX에 저장합니다. (우리가 읽고자 하는 파일명)

0040FEA3 |. 83C9 FF OR ECX,FFFFFFFF
// ECX 를 FFFFFFFF로 초기화

0040FEA6 |. 8BFA MOV EDI,EDX
// EDX값을 EDI로 옮김

0040FEA8 |. 33C0 XOR EAX,EAX
// EAX 초기화

0040FEAA |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
// EDI를 1비트씩 읽음(어떤연산인지는 정확히 모르겠지만 여기서는 파일명의 길이를 계산하는데 사용됩니다. 즉, 읽으면서 ECX 값을 하나씩 줄임)

0040FEAC |. F7D1 NOT ECX
// ECX의 보수를 구함. 즉, 위의 연산에 의한 파일명의 길이가 나타납니다.

0040FEAE |. 49 DEC ECX
// ECX 값을 1 감소

0040FEAF |. 51 PUSH ECX
// 스택에 ECX값을 저장

0040FEB0 |. 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14]
// ESP+14의 주소(스택)에서 1바이트를 읽어 ECX에 저장 (어카이브에서 불러온 파일목록에서 하나의 파일명을 불러옴)

0040FEB4 |. 52 PUSH EDX
// EDX를 스택에 저장 (우리가 읽고자 하는 파일명)

0040FEB5 |. 51 PUSH ECX
// ECX를 스택에 저장 (어카이브에서 불러온 파일목록에서 읽어온 파일명)

0040FEB6 |. E8 55810000 CALL PolyLove.00418010
// 목록을 확인하는 루틴 호출

일단 CALL 하기전까지 살펴보면

EDX에는 실행파일에 내장되어 있는, 불러와서 읽을 파일명이 들어있고
ECX에는 어카이브에서 읽어온 목록중에 하나가 들어가게 됩니다.

그렇다면 CALL에서는 이 두 파일명이 동일한지를 확인하게 되겠죠?
사실 이부분은 그렇게 어려운 부분이 아니고 그다지 중요하지 않으므로 같은 파일명을 찾았다고
가정하고 진행하도록 하겠습니다. 궁금하신분들은 직접 들어가셔서 확이해 보시면 됩니다.
루틴이 그리 길지 않으니 금방 이해하실 수 있으실 겁니다.


이제 동일한 파일명을 찾았습니다. 그러면 자동으로 위의 루틴을 벗어나게 될겁니다.




계속진행하면 갑자기 점프하게 됩니다. 이제부터 본격적으로 파일을 읽어내는 작업을 하게 됩니다.


일단 보이는 함수는 SetFilePointer, VirtualAlloc, ReadFile이군요.

다른건 이미 아실테고 SetFilePointer는 ReadFile함수가 읽어올 파일 포인터의 위치를

잡아주는 역할을 합니다. (확실하지 않음..^^;)

하나씩 살펴보죠.

0040FF1B |> 8B07 MOV EAX,DWORD PTR DS:[EDI]
//EDI에서 1바이트를 읽어와 EAX에 저장(어카이브파일의 두번째 1바이트를 읽어옴)

0040FF1D |. 6A 01 PUSH 1 ; /Origin = FILE_CURRENT
0040FF1F |. 6A 00 PUSH 0 ; |pOffsetHi = NULL
0040FF21 |. 50 PUSH EAX ; |OffsetLo = 69F4 (27124.)
//EAX(오프셋 정보)를 스택에 저장

0040FF22 |. 56 PUSH ESI ; |hFile
0040FF23 |. FF15 AC004200 CALL DWORD PTR DS:[<&KERNEL32.SetFilePo>; SetFilePointer


처음부분을 보면 EDI에서 1바이트를 읽는것을 알 수 있습니다. 그런데 EDI에 저장되어 있는 주소는
스택이 아닌 어카이브를 덤프한 메모리 주소입니다. 그 주소의 메모리창을 살펴보면 여기서는 F4 69 00 00가 나오는 군요




SetFilePointer함수에 들어가는 오프셋은 69F4로 들어갑니다. 이건 리틀엔디안에 따른 것인데 크게 신경쓸필요는 없고
그냥 뒤에서 부터 읽는다고 생각하시면 됩니다.

그럼 파일 포인터가 69F4로 잡히겠죠? 그런데 여기서 끝나지 않고 계속 루틴을 도는 것을 알 수 있습니다.
다음부분을 살펴보죠.

0040FF29 |. 8B4424 20 MOV EAX,DWORD PTR SS:[ESP+20]
//ESP+20의 주소(스택)에서 1바이트를 읽어와 EAX에 저장(우리가 읽고자하는 파일명이 몇번째 위치하고 있는지에 대한 정보가 들어있다.

0040FF2D |. 83C7 18 ADD EDI,18
//EDI에 0x18을 더함 (다음 파일 오프셋을 읽기위함)

0040FF30 |. 48 DEC EAX
//EAX 값을 1 감소 (파일 하나를 이미 읽었음을 뜻함)

0040FF31 |. 894424 20 MOV DWORD PTR SS:[ESP+20],EAX
//EAX 값을 스택에 다시 저장

0040FF35 |.^75 E4 JNZ SHORT PolyLove.0040FF1B
//루틴 반복

우리가 읽으려고 하는 파일(Im_txt24.Jzp)이 어카이브 파일 목록에서 세번째에 위치하고 있으므로
이같은 루틴을 세번 반복할 것입니다. 그리고 여기서 알 수 있는 것은 각각의 파일명 앞부분에는
그 파일의 크기가 저장되어 있음을 알 수 있습니다.

따라서 원하는 파일의 위치는 그 전의 파일 크기를 모두 더한 값 바로 다음에 위치하게 됩니다.
여기서 주의해야할 것은 처음부터 더하면 안되고 파일목록이 끝난 위치부터 계산해야합니다.

직접 손으로 한번 찾아보도록 하겠습니다.

헥스 에디터로 PLI.paq파일을 엽니다. 그러면 세번째 바이트에 F4690000이 보일겁니다. 일단 적어두고
그다음 파일명 앞부분을 살펴보면 089C0100을 찾을 수 있습니다. 이두개를 더합니다.

뒤에서부터 거꾸로 읽어(69F4, 019C08) 계산기를 사용해 더해보면 205FC가 나옴을 알 수 있습니다.
그럼 한번 찾아봅시다. 처음부터 찾는 것이 아니라 파일목록이 끝난 다음부터 계산해야하므로
아래의 위치에서 오른쪽 클릭 -> GO TO -> OFFSET을 클릭한 후 Current position을 선택하고 오프셋에
아까 계산한 값(205FC)을 입력합니다.




go를 누르면 그 오프셋으로 가게 되는데 여기서부터가 이 파일의
시작이 되는 것입니다.

다시 디버거로 돌아와 계속 진행하면 메모리를 확보하게 되는데 크기는 읽어올 파일명의 바로 앞에있는 1바이트 입니다.
여기서는 0x192758입니다. 그다음 ReadFile함수를 통해서 파일을 읽게됩니다.

전번과 마찬가지로 메모리 창을 열어 확인해보면 파일내용이 덤프됐음을 알 수 있습니다.




오늘은 여기까지 입니다. 다음에는 덤프된 파일의 암축을 풀고 복호화하는 과정을
설명드리겠습니다.
이올린에 북마크하기

Posted by Dual

2005/07/31 12:41 2005/07/31 12:41
Response
No Trackback , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/28

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/28

Leave a comment

난수 조작을 통한 테트리스 블럭 조작

안녕하세요~ Dual입니다. ;)
홈페이지에서 왠만하면 GameHacking기법에 대해선
다루지 않으려고 했지만, 왠지 하나쯤은 있어도
괞찮겠다는 생각이 들어서 글을 쓰게 되었습니다. ;)
그리고 이글에서는 노가다적인 Memory Finding을 쓰면서 하는것이 아닌,
테트리스 게임에 대한 분석을 통해서 얻어낼수 있는 사항들을 가지고
디버거 툴을 가지고 패치하는 법에 대해서 다루도록 해보겠습니다. ;p

예~! 본격적인 패치 작업을 시작하기 전에 블럭 조작을 위해서 필요한
사항이 무엇인지 파악하는것이 중요합니다.
먼저, 테트리스의 블럭(모양)수는 몇개일까요?

위에서의 그림 처럼, 블럭의 갯수는 7개 입니다. ;p
(이것을 미리 알아두는 것은 아주 중요합니다.)
Tetris게임은 블럭을 Random적으로 생성해내어,
이값을 배열에 저장해두고, 배열의 값을 하나씩 읽어와서
그 해당 블럭을 출력하는 방법을 취하고 있습니다.
(미리 블럭 배열을 생성 해두는 이유는 게임의 속도 떄문일것입니다.)
여기서 의문점이 생길수 있습니다.
과연 Random적으로 블럭의 값을 생성해내는 방법은?
어떤 함수를 이용하는 것일까? 라는 의문점이죠.
Random Number를 우리 나라 말로 하면 난수가 됩니다.
난수란 어떤 규식성이 없이 무작위로 발생한 수를 말하는 것이죠.
그리고 이 난수를 발생시키는 함수는 VC 내장 함수인 rand() 함수입니다.
rand() 함수를 이용하여 블럭의 갯수(=7개)만큼의 난수를 발생시킬떈 밑에와 같이씁니다.
rnd = rand() % 7;
아무리 큰수가 되더라도 7로 나눈 나머지(mod연산)을 구하면 7이하의 값이 되게 됩니다.
이를 어셈블리어로 표시해보면 밑에와 같을 것입니다.
call rand //rand함수를 호출한다.
cdq
xor eax,edx //eax와 edx를 xor 연산한다.
mov ecx,7 //나누는 수는 ecx에 저장한다.
sub eax,edx //eax에서 edx를 뺸다.
cdq
idiv ecx //eax의 값을 ecx 나눈다.
우리는 이와 같은 형태의 부분을 찾으면 되는 것입니다. ;p
이제 이론적인 부분을 알게 되었으니,
남은 일은 OllyDbg를 이용하여 실제로 저거와 비슷한 부분을 찾아내면 되는것 입니다. ;)
OllyDbg를 키고 대상 프로그램으로 넷마블 테트리스+ 를 지정합니다. (Attach)
올리디버거 메뉴 상단의 E<=버튼을 클릭하여 모듈 목록을 띄운후에,
Tetrisplus.exe를 마우스 오른쪽 버튼으로 클릭하면 뜨는 메뉴중,
View Names 메뉴를 클릭해서 함수목록을 띄웁니다.

함수 목록이 떳다면, rand()함수가 있는지 찾아봅니다.
역시 우리의 기대를 져버리지 않고,
rand()함수가 존재하는것을 볼수 있습니다. ;)
rand 함수를 마우스 오른쪽 버튼으로 클릭하여 뜨는 메뉴중
Find References 라는 메뉴를 클릭하여 rand()함수를 호출하는 주소들을 볼수 있습니다.

정말 많은곳에서 rand()함수를 호출해다가 쓰는곳을 볼수 있습니다.
이것을 하나씩 Follow In Disassembler 하여 보는 것은 엄청난 노가다 작업이 될듯함으로 ;)
Set Break On Every Command 메뉴를 이용해서 모두 브레이크 포인트를 건후,
게임을 시작할떄 브레이크 포인트가 걸리는것중 우리가 찾는 부분과 비슷한것이 있는지
찾아 보는 형식으로 해보겠습니다. ;)

첫번쨰 브레이크 포인트가 걸린지점은,
00442103 E8 A2B40700 CALL TetrisPl._rand
00442108 99 CDQ
00442109 B9 32000000 MOV ECX,32
0044210E 8B1D 20895400 MOV EBX,DWORD PTR DS:[<&WINMM.timeGetTim>; WINMM.timeGetTime
00442114 F7F9 IDIV ECX
우리가 찾는 값은 7인데 여기선 32임으로 아니니, 브레이크 포인트를 해제하고 넘어갑니다.
0044213E E8 67B40700 CALL TetrisPl._rand
00442143 8B8E B8010000 MOV ECX,DWORD PTR DS:[ESI+1B8]
00442149 89BE F4010000 MOV DWORD PTR DS:[ESI+1F4],EDI
0044214F 85C9 TEST ECX,ECX
00442151 74 07 JE SHORT TetrisPl.0044215A
두번째 브레이크 포인트가 걸린 지점역시 아닌듯 합니다. 브레이크 포인틀르 해제하고 넘아갑니다.
00442197 E8 0EB40700 CALL TetrisPl._rand
0044219C 8B86 F0010000 MOV EAX,DWORD PTR DS:[ESI+1F0]
004421A2 85C0 TEST EAX,EAX
004421A4 74 09 JE SHORT TetrisPl.004421AF
004421A6 50 PUSH EAX
004421A7 E8 33E30D00 CALL TetrisPl.??3@YAXPAX@Z
세번쨰 지점 역시 아닌듯 합니다. ;)
00442221 E8 84B30700 CALL TetrisPl._rand
00442226 89BE A8010000 MOV DWORD PTR DS:[ESI+1A8],EDI
0044222C 8B76 0C MOV ESI,DWORD PTR DS:[ESI+C]
0044222F 85F6 TEST ESI,ESI
네번쨰 역시도 아닙니다 T.T
004410EB E8 BAC40700 CALL TetrisPl._rand
004410F0 99 CDQ
004410F1 B9 32000000 MOV ECX,32
다섯번쨰 역시 아닙니다.
00441146 E8 5FC40700 CALL TetrisPl._rand
0044114B 99 CDQ
0044114C B9 0A000000 MOV ECX,0A
00441151 F7F9 IDIV ECX
여섯번쨰 지점은 상당히 흡사하여 보이지만,
우리가 찾는것은 0xA가 아닌 0x7임으로 넘어갑니다.
004339FD E8 A89B0800 CALL TetrisPl._rand
00433A02 99 CDQ
00433A03 B9 0A000000 MOV ECX,0A
00433A08 F7F9 IDIV ECX
일곱번쨰 역시 우리가 찾는 부분이 아닙니다.
004393DC E8 C9410800 CALL TetrisPl._rand
004393E1 99 CDQ
004393E2 33C2 XOR EAX,EDX
004393E4 B9 07000000 MOV ECX,7
004393E9 2BC2 SUB EAX,EDX
004393EB 99 CDQ
004393EC F7F9 IDIV ECX
8번쨰에 우리가 찾던 부분을 찾을수 있었습니다. ;p
아직 확실하지 않음으로 몇번더 OllyDbg를 돌립니다. ;0
00439406 E8 9F410800 CALL TetrisPl._rand
0043940B 99 CDQ
0043940C 33C2 XOR EAX,EDX
0043940E B9 07000000 MOV ECX,7
00439413 2BC2 SUB EAX,EDX
00439415 99 CDQ
00439416 F7F9 IDIV ECX
9번쨰 브레이크 포인트가 걸린지점은 8번쨰 부분과
똑같이 생겼으며, 8번쨰 포인트 바로 아래부분에 있는것으로
보아 넷마블 테트리스+의 프로그래머 분께서 블럭 체크를 위해
같은 부분을 두곳만들어 둔것이 아닌가 생각됩니다. ;)
우리는 패치해야할 주소를 알아낸 것입니다.
이제 패치하는 방법에는 두가지 방법이 있습니다.
------------------------------------------------
① ecx의 값을 수정하여 범위를 좁아지게 만든다.
② eax의 값을 수정하여 무조건 어떤 블럭이 나오도록 만든다.
------------------------------------------------
2번쨰 방법은 넷마블 테트리스+의 경우 같은 블럭이 연속으로
여러번 떨어질 경우 잘못된 패킷이라 간주하고,
방에서 접속이 끊어짐으로 첫번쨰 방법을 사용 하도록 해보겠습니다. ;)
8번쨰와 9번쨰 부분의,
004393E4 B9 07000000 MOV ECX,7
0043940E B9 07000000 MOV ECX,7
를 각각 MOV ECX,2로 바꾸었습니다. ;)

이제 테트리스에서 패치가 적용되었는지 확인해 보겠습니다. ;)

이제 어디 부분을 패치해줘야 되는지 알았음으로
Memory Patch식으로 만들거나(추천),
실행 파일에 직접 수정을 가해줄수 있겠습니다. (이방법 쓰면 게임이 재미없어지겠죠)
우리는 테트리스의 블럭의 계수가 7개이며,
난수를 발생시키는 함수는 rand() 함수였다는 사실을 통해
rand()함수에 브레이크 포인트를 걸고 적절한 부분을 찾는 방법을 통해
성공적으로 패치 해낼수 있었습니다. ;)
이것은 테트리스 만의 것이 아님으로 여러가지 게임에 응용해 볼수 있을것입니다. ;)
간단한 예로 지뢰찾기 같은 프로그램 부터 시작해서 N뭐 게임사의 MxxxxxSxxxy 같은
게임에서 초기 스텟을 주사위로 정하는거 같은 게임까지 말이죠 ;)
그럼 오늘 글도 여러분에게 많은 도움이 됬었길 바라며,
오늘도 즐거운 밤입니다.
이올린에 북마크하기

Posted by Dual

2005/07/31 10:40 2005/07/31 10:40
Response
No Trackback , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/14

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/14

Leave a comment
안녕하세요 ;p Dual 입니다.
재가 자주 글을 쓰는 편은 아니지만 ;)
(어짜피 많은 글들이 손실 되는편이라)
뭐 어째든 오랜만에 글을 쓰게 되었습니다. ;)
이번 강좌에서는 도배를 하는법에 대해서 다루겠는데요
대부분의 Game들과 Chatting들은 원활한 환경을 제공하기
위해서 도배를 할수 없도록 해놓지요.
오늘의 예제로 쓸 버디채팅 역시 마찬가지입니다.
버디 채팅에서 도배를 하면 어떤 메시지 박스가 뜨는것이 아니라,
곳바로 방에서 나가져 버리기 때문에,
어떤 String Reference를 추적하는건 불가능하다고 생각될지도 모릅니다. ;)
어떤 방법을 쓸지 잘 감이 안올지도 모르죠 ;)
외국에서도 Online Game을 우리나라 만큼 많이 하지 않아서인지 ;)
Online Game의 도배하는법에 대해서는 다루는 강좌를 찾기가 힘들더군요 ;)
(아니, 아에 찾지 못했습니다 T.T)
뭐, 오랜만에 방학을 맞아서 푹 자다보니깐 글쓸 마음도 생기고 해서,
글을 한번 적어 보겠습니다. ;)
예~! ;) 먼저 버디채팅을 켜봅시다.

위와 같은 화면을 만날수 있습니다.
여기서 대화를 나누는것이지요. ;)
대화창에 말을 빠르게 쓰면 방에서 나가지게 됩니다.
그 주기는 1초에 4번 입니다. ;)
이제 우리의 친구 프로그램인 wpe를 킨후에
대상 프로그램으로 BuddyChat.dll을 잡아 주신후
패킷 스니핑을 시작합니다.
그런후 채팅창에 도배를 한번 시도해봅시다.

예~! 위와 같은 패킷들이 잡힌후 방에서 나가지는걸 볼수 있을겁니다. ;)
@CHT는 채팅창에 말을쓸떄,
$CCL은 방에서 나가질떄 서버 사항을 받는 패킷임을 알수 있습니다.
(이런걸 알아내는 과정은 충분한 피드백을 필요로 하겠죠)

예. 우린 지금 하려는 작업의 70%를 끝낸겁니다. ;)
머리가 바보가 아니라면, 여기서 How to 에 대한 응답은 끝나셨을겁니다.
뭐 노파심에 How To 에 대한 응답을 하자면,
버디채팅의 구조를 밑에와 같이 프로그래머가 작성했음을 추론해볼수 있습니다.

------------------------------------------------------------------
①1초마다 0으로 세팅되는 변수가 하나 존재한다.
② ①에서의 변수와 4(번)를 계산하여,
jl = 작다면 = 크지 않다면 점프한다.
③만약 점프를 하게 되면 그곳에는 방에서 나가지는
Routine이 존재할것이다.
점프를 하지 않게되면, 패킷(@CHT)을 방에 있는 다른 사용자들에게
보내어서, 내가 할말을 전한다.
------------------------------------------------------------------

그렇다면 우리는 두가지 방법으로 접근해볼수 있겠죠 ;)
1초마다 0으로 세팅되는 변수를 Tsearch같은 메모리 파인더로 찾아낸다.
(이건 무지 노가다 작업이고, 비효율 적이며 무식한짓입니다.)
두번쨰 방법은 4와 비교하여 점프를 하는 부분을 찾아내어 nop시킨다.

당연히 후자의 방법이 훨씬 효율적입니다.
그렇다면 해당 부분은 어디서 부터 추적해 들어가야 할까요?
이것역시 두가지 선택이 가능합니다.
첫번쨰는 @CHT가 쓰이는 부분부터 위로 따라 올라가면 될것이고,
만약 이런 문자열을 쓰기 귀찮다면 WS_32.DLL의 send함수에
Break Point(중단점)을 설치하여 위로 올라가도 무리가 없을것입니다.
(후자의 방법은 패킷이 많이 왔다 갔다 하는 fps게임에 비효율적입니다.)

이제 아시겠나요? ;)
방법에 대하여 완전히 간파했으니,
이제 Olly Dbg로 해당 부분을 찾는 작업을 시작합시다. ;)
OllyDbg를 키시고 대상 프로그램으로 BuddyChat을 Attach 시킵니다.
그후에 버디버디 메인 모듈에서 밑의 그림과 같이
All referenced text strings 메뉴를 클릭하여 @CHT 문자열을 찾습니다.

문자열을 찾았으니, 마우스 오른쪽 버튼으로 클릭한후,
Follow In Disassembler 메뉴를 클릭하면,
해당 문자열이 쓰이고 있는 부분으로 코드창이 옮겨지게 됩니다.

이제 이부분을 찾았으니 위로 따라 올라가며,
4와 비교 하는 부분이 있는지 찾아 봅시다.

엇 따라 올라가다 보니 ;)
이 부분은 call에 의해 호출된 함수 형태였음을 알수 있습니다.
(코드를 보면 알수 있습니다 - > 경험자에게 물어보세요;p)
이곳에 브레이크 포인트를 걸고 아무말이나 채팅창에 써보면,
브레이크 포인트가 걸리고 그림에서 처럼
오른쪽 하단의 스택창에 Return Address가 0x0040B8F1임을 알수 있습니다.
그럼 이제 저 주소로 코드위치를 옮깁시다 ;)
(아참 브레이크 건건 혼란을 방지하기 위해 풀어주는 습관 ;p)

예 대략 이런곳으로 빠져나오는군요 ;)
계속 코드를 살펴 보며
jl이 없는지 확인하며 위로 올라가 봅시다. ;)
(상당히 이부분도 어느정도 노가다성이 있군요 ;)
(이럴떄는 확실히 Olly보다는 Disassembler가 편할지 모릅니다.)

오~! 드디어 찾아내었습니다. ;)
0x40B783이라는 주소에서 첫번쨰 jl을 만날수 있었습니다. ;)
4보다 작을 경우 점프라는 조건인
cmp eax, 4
jl @주소
형식임으로 우리는 이것을 jmp @주소 형태로 고쳐 주면,
1초에 말을 4번 이상 써도 팅기지 않을것입니다. ;)
한번 메모리 패치를 하여 보죠 ;)

위의 그림과 같이 어셈블 메뉴를 이용하여,
JL 40B864 명령을 - > JMP 40B864 NOP
로 변경하여 주었습니다. ;)
메모리 패치를 해주었으니 실제로 도배가 되는지 테스트 하여 보죠 ;)
(그림분실)
보시는 바와 같이 패치 성공입니다. ;)
(정적인 그림만 봐서 어찌 아리오~~~;p)
이 명령을 바꾸면 되는것이 확인 되었음으로,
exe 메모리 패치 형태로 만드셔도 되고,
dll파일을 직접 수정해 넣어도 좋을것입니다. ;)
(강좌의 성격상 맞지 않음으로 생략하겠습니다.)
어쨰든 우리는 이제 Game & Chatting 에서 도배 패치를
만드는법에 대하여 알게 되었습니다. ;)
이 글에서는 send함수를 통해 말할떄 보내지는 패킷의 구분자
@cht 문자열을 가지고 역으로 밟고 올라갔는데,
send 함수에 브레이크 포인트를 걸고 역으로 밟고 올라가도 됨을
다시 한번 확인하며 ;)
이번 글은 여기서 마치겠습니다. ;)
오늘도 즐거운 밤입니다. ;)
이올린에 북마크하기

Posted by Dual

2005/07/31 02:25 2005/07/31 02:25
Response
211 Trackbacks , a comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/13

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/13

Trackbacks List

  1. Adipex.

    Tracked from Cheap adipex. 2009/12/04 15:11 Delete

    Adipex no doctor. Adipex. Blood glucose and adipex.

  2. Zolpidem.

    Tracked from Zolpidem. 2009/12/04 16:11 Delete

    Cheap zolpidem. Zolpidem online. Zolpidem overnight. Zolpidem overdose. Zolpidem.

  3. Ambien cr.

    Tracked from Ambien cr. 2009/12/05 04:08 Delete

    Does ambien cause fetal birth defect. Ambien. Ambien cr addiction.

  4. Tramadol.

    Tracked from Tramadol 100mg. 2009/12/05 12:31 Delete

    Tramadol hydrochloride. 200 mg hexal tramadol. Taking tramadol while pregnant. Tramadol.

  5. Buy carisoprodol.

    Tracked from Carisoprodol. 2009/12/05 16:06 Delete

    5. carisoprodol 350. Carisoprodol. Somas with carisoprodol doese t contain codeine. Carisoprodol phentermine yellow.

  6. Free adult movies.

    Tracked from Free adult flash games. 2009/12/05 16:08 Delete

    Free adult chat rooms. Free adult movies. Free online adult games. Free adult web cams.

  7. Detox vicodin.

    Tracked from Snort a vicodin. 2009/12/06 04:42 Delete

    Signs of vicodin addictio. Liquid form of vicodin. Vicodin without prescription. Vicodin statistics. Vicodin detox. Vicodin military urinalysis. Vicodin and hydroxyzine. Lorcet vicodin online. Vicodin withdrawal.

  8. Adipex online.

    Tracked from Your best phentermine adipex online source. 2009/12/06 05:00 Delete

    Adipex online. Adipex phentermine vs al bawaba blogs. Online prescription for adipex. Is adipex phentermine t. Adipex.

  9. No prescription adipex.

    Tracked from Adipex no prescription cod. 2009/12/06 08:11 Delete

    Is phentermine the same as adipex. Buy adipex. Adipex phentermine vs al bawaba blogs. Adipex. 180 ct adipex. Adipex capsules.

  10. Zolpidem.

    Tracked from Zolpidem without prescription. 2009/12/06 08:21 Delete

    Zolpidem.

  11. Carisoprodol.

    Tracked from Carisoprodol. 2009/12/06 19:21 Delete

    Buy carisoprodol online lowest price guarantee. Carisoprodol phentermine yellow. Carisoprodol phentermine yellow all on one site. 5. carisoprodol 350. Carisoprodol mg. Carisoprodol. Pharmacy online carisoprodol description price.

  12. Zolpidem overdose.

    Tracked from Zolpidem. 2009/12/06 19:26 Delete

    Cheap zolpidem. Zolpidem tartrate. Zolpidem.

  13. Meridia.

    Tracked from Monte cristo meridia mexico. 2009/12/07 05:41 Delete

    Meridia. Meridia without prescriptions.

  14. Alprazolam long term use.

    Tracked from Alprazolam. 2009/12/07 07:12 Delete

    Alprazolam.

  15. Acomplia dosage.

    Tracked from Acomplia. 2009/12/07 16:45 Delete

    Acomplia. Acomplia cheap no prescription. Buy acomplia no prescription.

  16. Zolpidem fedex.

    Tracked from Zolpidem. 2009/12/07 19:23 Delete

    Zolpidem without prescription. Cheap zolpidem. Zolpidem. Zolpidem with alcohol.

  17. Buy phentermine.

    Tracked from Order phentermine online. 2009/12/08 03:06 Delete

    Phentermine 37 5mg. Phentermine. Phentermine capsule. Purchase phentermine. Phentermine overnight. Adipexdrug addiction order phentermine online.

  18. Prozac.

    Tracked from Side effects of prozac. 2009/12/08 12:49 Delete

    Buy prozac online free shipping cheap. Prozac menopause. Prozac nation. Prozac used for. Prozac. Prozac good for anxiety disorders. Prozac for menopause.

  19. Prozac hives.

    Tracked from Withdrawal from prozac blood in urine. 2009/12/08 14:46 Delete

    Prozac suicide. Prozac weekly. Prozac misuse. Benefits of prozac.

  20. Acomplia rimonabant.

    Tracked from Acomplia. 2009/12/08 15:46 Delete

    Acomplia. Obese online pharmacy getpharma acomplia. Zippy acomplia news.

  21. Free granny sex movies.

    Tracked from Granny sex stories. 2009/12/09 01:13 Delete

    Granny sex. Free granny sex. Granny have sex.

  22. Side effects of drug prozac.

    Tracked from Christina ricci prozac nation wallpaper. 2009/12/09 02:55 Delete

    Does prozac detoxify toxins. Xanax prozac contraindication. Generic forms of prozac. Side effects of prozac. Buy prozac. Xanax and prozac. Christina ricci prozac nation.

  23. Prozac side effects.

    Tracked from Phentermine prozac. 2009/12/09 14:37 Delete

    Prozac. Phentermine prozac. Prozac nation movie. Prozac for menopause.

  24. Tramadol.

    Tracked from Tramadol. 2009/12/09 14:48 Delete

    Buy tramadol index. Canine tramadol. Tramadol side effects. Tramadol.

  25. Lipitor.

    Tracked from Lipitor. 2009/12/10 00:50 Delete

    Lipitor discontinued. Lipitor side effects forum. Lipitor versus pravachol. Lipitor the drug.

  26. Zolpidem without prescription.

    Tracked from Zolpidem abuse. 2009/12/10 01:37 Delete

    Zolpidem online. Zolpidem. Zolpidem ambien.

  27. Xanax during pregnancy.

    Tracked from Xanax. 2009/12/10 18:25 Delete

    Xanax. Xanax addiction.

  28. Xanax addiction.

    Tracked from Generic xanax. 2009/12/11 04:11 Delete

    Xanax no prescription. Xanax no prescription overnight delivery. Xanax with 5-htp.

  29. Carisoprodol phentermine yellow all on one site.

    Tracked from Buy carisoprodol best prices limited time offer. 2009/12/11 08:34 Delete

    Carisoprodol pharmacy. Soma carisoprodol abuse information. Carisoprodol. Buy carisoprodol.

  30. Nude mature women.

    Tracked from Mature post. 2009/12/12 00:29 Delete

    Mature men. Mature nudes. Mature woman. Mature ladies. Mature.

  31. Tramadol.

    Tracked from Tramadol. 2009/12/12 07:01 Delete

    Tramadol. Tramadol 50mg.

  32. Teen sex.

    Tracked from Teen sex. 2009/12/12 11:45 Delete

    Teen sex.

  33. Buy ultram.

    Tracked from Generic ultram. 2009/12/14 00:14 Delete

    Ultram. Ultram er. Is there a generic form of ultram. Ultram addiction. Ultram abuse.

  34. Penis torture.

    Tracked from Bdsm torture. 2009/12/14 14:32 Delete

    Sexual torture. Ball torture. Sex torture. Torture galaxy. Female torture.

  35. Handjob.

    Tracked from Handjob movie galleries. 2009/12/15 08:24 Delete

    Handjob video. Handjob. Massage handjob clips. Free handjob movies.

  36. Horse sex.

    Tracked from Horse sex. 2009/12/16 07:59 Delete

    Horse having sex. Sex with horse. Free horse sex. Horse sex.

  37. Cheap cialis.

    Tracked from Cialis. 2009/12/16 17:35 Delete

    Buy cialis. Cialis.

  38. Teen sex.

    Tracked from Teen sex. 2009/12/17 07:42 Delete

    Teen sex.

  39. Zolpidem overnight.

    Tracked from Zolpidem. 2009/12/19 04:47 Delete

    Zolpidem.

  40. Animal sex with girl.

    Tracked from Animal sex dvd. 2009/12/21 05:53 Delete

    Free animal sex pictures. Animal sex videos. Animal sex stories free. Sex animal. Animal sex.

  41. How long does hydrocodone stay in your system.

    Tracked from How long does hydrocodone stay in your system. 2009/12/21 08:01 Delete

    How long does hydrocodone stay in the system. How long does hydrocodone stay in your system.

  42. Zolpidem.

    Tracked from Cheapest zolpidem. 2009/12/22 09:02 Delete

    Cheap zolpidem. Zolpidem and sleepwalking. Zolpidem without prescription. Zolpidem overdose. Zolpidem abuse. Zolpidem.

  43. Free porn videos sample.

    Tracked from Free porn. 2009/12/22 23:59 Delete

    Free porn pics. Free porn galleries. Free gay porn. Free porn videos. Free porn.

  44. Paradise poker.

    Tracked from Online poker software. 2009/12/25 15:24 Delete

    Poker. Star poker. Spanish poker dice. Poker chips. Online poker tracker. Poker gifts. Mike hallock poker.

  45. Handjob.

    Tracked from Hetero handjob. 2009/12/26 15:18 Delete

    Amateur handjob. Free handjob movies. Handjob blogs. Handjob videos. Handjob clip. Free handjob galleries.

  46. Tramadol.

    Tracked from Tramadol dog. 2009/12/28 01:49 Delete

    Tramadol side effects. Tramadol.

  47. Hydrocodone apap 5 500.

    Tracked from Buy hydrocodone with no rx. 2009/12/29 04:43 Delete

    Hydrocodone. How to make hydrocodone. Ic hydrocodone apap 5 500. Buy hydrocodone without a prescription. Buy hydrocodone online.

  48. Tramadol.

    Tracked from Buy tramadol online save wholesale price yep. 2009/12/30 04:04 Delete

    Tramadol.

  49. Levitra.

    Tracked from Levitra. 2010/01/01 04:24 Delete

    Levitra online consultation us. Levitra.

  50. Breast torture extreme.

    Tracked from Clit torture. 2010/01/02 04:02 Delete

    Tit torture. Male tickle torture. Clit torture. Torture sex.

  51. Cock and ball torture.

    Tracked from Wooden horse torture. 2010/01/03 17:15 Delete

    Nipples torture. Clit torture. Celebrities in torture and bondage videos. Nipple torture. Pussy torture. Bdsm torture. Tickle torture. Japanese horse torture.

  52. Granny sex pics.

    Tracked from Granny sex tgp. 2010/01/05 04:26 Delete

    Sex stories about granny. Granny hardcore sex. Granny sex. Granny reality sex. Ugly sluts granny sex. Black granny sex.

  53. Soma sun pilates.

    Tracked from Soma to florida. 2010/01/05 11:38 Delete

    Soma information. Soma in san diego. Soma. Soma ironman. Soma prescription medicine.

  54. Drug soma.

    Tracked from Soma cube. 2010/01/06 07:59 Delete

    Generic soma. Soma side effects. Soma to florida. Soma. Ashes of soma lyrics. Soma fm. Prescription medication side effects for soma.

  55. Multiple orgasms through cialis.

    Tracked from Cialis. 2010/01/06 14:55 Delete

    Cod phentermine as well as cialis cheap reviews. Cialis best price buy online. Taking viagra with cialis. Cialis free sample.

  56. Cialis attorney ohio.

    Tracked from Cialis. 2010/01/07 12:21 Delete

    Cialis forum. Cialis best price buy online. Cialis drug. Cheapest generic cialis. Cialis.

  57. Amoxicillin and strep b.

    Tracked from Amoxicillin dosage. 2010/01/07 16:19 Delete

    Amoxicillin and saliva tests. Amoxicillin. Amoxicillin pregnancy. Taking amoxicillin while pregnant.

  58. Milf sex.

    Tracked from Milf sex. 2010/01/08 15:17 Delete

    Milf sex.

  59. Viagra professional .

    Tracked from Viagra professional . 2010/01/08 16:34 Delete

    Viagra professional .

  60. Viagra 6 free samples.

    Tracked from Natural viagra free samples. 2010/01/09 16:20 Delete

    Free viagra.

  61. Prozac.

    Tracked from Prozac. 2010/01/10 04:17 Delete

    Prozac increases patience. Does prozac make you lose weight. Prozac columbine methodist. Prozac. Prozac side effects.

  62. Buy cialis phentermine.

    Tracked from Free sample cialis. 2010/01/11 05:13 Delete

    Buy cialis. Cialis best price buy online. Cialis and pill splitting.

  63. Cialis.

    Tracked from Cialis. 2010/01/12 03:03 Delete

    Effectiveness comparison levitra cialis. Cialis viagra levitra. Order cialis online. Buy cialis. Cialis best price buy online. Levitra cialis viagra.

  64. Viagra professional .

    Tracked from Viagra professional . 2010/01/13 19:59 Delete

    Viagra professional .

  65. Tramadol 180 electronic check.

    Tracked from Tramadol dog. 2010/01/14 03:32 Delete

    Rxmedsasap com purchase tramadol. Buy tramadol the lowest prices chtiblog com. Tramadol cod. Tramadol. Tramadol 180 free shipping.

  66. Free samples of viagra.

    Tracked from Viagra 6 free samples. 2010/01/14 05:26 Delete

    Free viagra samples. Free samples of viagra. Viagra 6 free samples. Viagra free samples.

  67. Buy cialis.

    Tracked from Cialis. 2010/01/14 17:36 Delete

    Dangers cialis and cocaine. Viagra vs cialis. Buy cialis. Cialis drug. Buy cialis mg x in us online pharmacy. Cialis.

  68. Animal sex.

    Tracked from Sex with animal sex. 2010/01/15 15:21 Delete

    Gay animal sex. Animal sex laws. Free animal sex stories. Animal sex with human. Animal sex stories free. Animal sex with girl. Sex animal. Animal sex clips. Free animal sex movies.

  69. Cialis.

    Tracked from Cialis. 2010/01/16 15:47 Delete

    Taking viagra with cialis. Buy cialis order cialis buy cialis generic. Buy cialis. Cialis injury attorney ohio. Cialis. Cialis st. Asprin and cialis.

  70. Viagra 6 free samples.

    Tracked from Viagra attorneys. 2010/01/16 17:03 Delete

    Viagra samples. Cheapest viagra. Generic viagra. Your viagra onlinne guide. Viagra generic. Re viagra cello. Viagra.

  71. Generic viagra.

    Tracked from Free viagra. 2010/01/17 09:46 Delete

    Viagra. Viagra prescription price. Viagra on line. Generic viagra. Viagra online add to cart.

  72. Taking viagra with cialis.

    Tracked from Cialis. 2010/01/17 09:59 Delete

    Cialis best price buy online. Cialis.

  73. Meridia no prescription.

    Tracked from Re meridia. 2010/01/18 23:48 Delete

    Meridia purchase pharmacy online. How much weight can i lose with meridia. Meridia weight loss meds.

  74. World series of poker.

    Tracked from Online poker assistant. 2010/01/19 14:22 Delete

    World poker tour. Online poker. Party poker. Poker table.

  75. Free poker.

    Tracked from Poker tables. 2010/01/23 12:22 Delete

    Holdem poker lessons. Full tilt poker. Poker. Strip poker. Poker tables.

  76. Http levitra.

    Tracked from Levitra. 2010/01/24 12:23 Delete

    Levitra attorneys. Cialis viagra and levitra to treat erectile dy. Cialis viagra levitra. Levitra. Which is more effective viagra cialas levitra.

  77. Bad credit signature loans.

    Tracked from Student loans. 2010/01/26 07:59 Delete

    Loans. Education loans. Bad credit loans. Mortgage loans. Loans for bad credit. Personal loans.

  78. Fda tamiflu reactions.

    Tracked from Tamiflu 84 canadians have had adverse reactions. 2010/01/26 14:37 Delete

    Adverse effects of tamiflu. Tamiflu and psychological side effects. Australia tamiflu avian bird flu. Tamiflu warning. Aids tamiflu flu. What is the shelf life of tamiflu. Effect of tamiflu on the avian flu. Tamiflu.

  79. Nexium drug interaction.

    Tracked from Nexium. 2010/01/29 12:06 Delete

    Nexium famotidine. Nexium for treatment of gerd.

  80. Estradiol.

    Tracked from Estradiol is 117 on day 5. 2010/01/29 17:19 Delete

    Injectable estradiol online without a prescription. Low estradiol levels. Estradiol. Estradiol in men.

  81. Cheap 2mg alprazolam.

    Tracked from Alprazolam. 2010/01/31 15:28 Delete

    Alprazolam powered by invision power board. Alprazolam. Alprazolam drug. Cheap 2mg alprazolam.

  82. Tramadol.

    Tracked from Tramadol. 2010/02/01 12:47 Delete

    Tramadol online. Buy tramadol. Tramadol hcl. Tramadol. Hydrochloride tramadol.

  83. Topamax.

    Tracked from Topamax alcohol use. 2010/02/03 15:12 Delete

    Half life of topamax. Drug comparable to topamax. Weight loss results topamax. Topamax. Topamax the good the bad and the ugly. Who has tried topamax for binge eating.

  84. Carisoprodol.

    Tracked from Soma medicine carisoprodol as low as. 2010/02/03 21:13 Delete

    Carisoprodol online. Buy carisoprodol. Soma carisoprodol. Carisoprodol. Order carisoprodol.

  85. Estradiol pill.

    Tracked from Estradiol cypionate in oil. 2010/02/04 09:04 Delete

    Estradiol face. Estradiol. Desogestrel ethinyl estradiol. Effects of ethinyl estradiol in men.

  86. Ambien cr.

    Tracked from Ambien cr. 2010/02/04 10:05 Delete

    Buy ambien online no prescription. Ambien with alcohol. Ambien and hot flashes.

  87. Keflex.

    Tracked from Keflex. 2010/02/05 04:11 Delete

    Keflex. Keflex znd urinary tract infections.

  88. What causes high estradiol level and low fsh.

    Tracked from Depo-estradiol online without a prescription. 2010/02/05 19:22 Delete

    Estradiol.

  89. Online poker.

    Tracked from Online poker aide. 2010/02/05 19:51 Delete

    Poker. Full tilt poker. Personalized clay poker chips.

  90. Teen sex.

    Tracked from Teen sex. 2010/02/06 15:08 Delete

    Teen sex.

  91. Topamax and anxiety.

    Tracked from Topamax disscussion board. 2010/02/06 20:09 Delete

    Topamax sleep. Topamax dosage. Topamax. Topamax what dose to lose weight.

  92. Carisoprodol hydrocodone.

    Tracked from Carisoprodol. 2010/02/06 20:33 Delete

    Carisoprodol.

  93. Ambien safety profile.

    Tracked from Ambien on line. 2010/02/07 12:22 Delete

    Ambien. Ambien on line. Ambien side effects.

  94. Does alcohol affect zithromax.

    Tracked from Zithromax. 2010/02/07 23:08 Delete

    Zithromax. Zithromax discoloration. Zithromax azithromycin. Zithromax contraindications. Reaction to zithromax. Zithromax gohnorea.

  95. Methotrexate and lansoprazole.

    Tracked from Methotrexate. 2010/02/08 15:33 Delete

    Methotrexate side affects. Methotrexate. Ectopic pregnancy methotrexate. Methotrexate long term side effects.

  96. Lorazepam.

    Tracked from Lorazepam. 2010/02/08 20:32 Delete

    Lorazepam. Lorazepam order online consultation. Withdrawal symptoms lorazepam.

  97. Will ambien show up in a urine test.

    Tracked from Ambien. 2010/02/10 21:19 Delete

    Ambien and memory loss. Ambien us pharmacy. Free trial version of ambien. Ambien without a prescription. Ambien. Ambien purchase omline. Ambien side effects.

  98. Ultram er tablets.

    Tracked from Ultram warnings. 2010/02/15 18:01 Delete

    Ultram.

  99. Snorting hydrocodon.

    Tracked from Hydrocodon online. 2010/02/17 13:34 Delete

    Hydrocodon. Hydrocodon online.

  100. Alprazolam.

    Tracked from Alprazolam no prescription. 2010/02/18 11:26 Delete

    Alprazolam online. What does alprazolam look like. Alprazolam. Alprazolam and alcohol.

  101. Valium no prescription needed.

    Tracked from Cheap valium. 2010/02/18 18:47 Delete

    Valium no prescription needed. Valium. Order valium.

  102. Adipex generic form phentermine lowest prices.

    Tracked from Adipex. 2010/02/19 08:32 Delete

    Adipex.

  103. Signs of vicodin addictio.

    Tracked from Vicodin. 2010/02/19 15:35 Delete

    Effects of vicodin. Liquid vicodin. Vicodin. Buy vicodin online without. Buy vicodin no prescription. Vicodin side effects. Vicodin without prescription.

  104. How long does valium stay.

    Tracked from Valium dosage. 2010/02/21 19:00 Delete

    Valium prescription online. Valium.

  105. Alprazolam dosage.

    Tracked from Alprazolam. 2010/02/22 12:26 Delete

    Alprazolam gaba. Alprazolam drug. Alprazolam cheap prices big discounts on the web. Alprazolam side effects. Alprazolam.

  106. Southwest airlines.

    Tracked from United airlines. 2010/02/22 20:28 Delete

    Delta airlines. Alaskan airlines. American airlines. Northwest airlines.

  107. Ambien us pharmacy.

    Tracked from Ambien cr. 2010/02/23 09:33 Delete

    Ambien us pharmacy. Cheaper ambien prescription.

  108. Zoloft.

    Tracked from Zoloft indications. 2010/02/23 17:54 Delete

    Zoloft. Side effects of zoloft. Zoloft hyponatremia. Zoloft side effects.

  109. Animal sex animal.

    Tracked from Animal sex. 2010/02/24 13:49 Delete

    Gay animal sex. Animal sex movies. Free animal sex pics. Animal sex. Free animal sex movies.

  110. Zoloft.

    Tracked from Zoloft side effects. 2010/02/24 21:32 Delete

    Tics and zoloft in adults. Zoloft. Sexual side effects from zoloft. Zoloft side effects.

  111. Affects of vicodin.

    Tracked from Vicodin consultation. 2010/02/25 11:24 Delete

    Dangers of vicodin. Vicodin without prescription. Buy vicodin online. Vicodin no prior prescription.

  112. Side effects of alprazolam.

    Tracked from Buy alprazolam. 2010/02/25 15:08 Delete

    Order alprazolam in the us. Will alprazolam show in bloodwork. Order alprazolam.

  113. Buy alprazolam.

    Tracked from No prescription alprazolam. 2010/02/26 09:24 Delete

    No prescription alprazolam mastercard accepted.

  114. Percocet.

    Tracked from Buy percocet online. 2010/02/26 11:08 Delete

    Long term use of percocet. Percocet. How do i get off percocet.

  115. Adipex no prescription.

    Tracked from Adipex online. 2010/02/27 08:58 Delete

    Buy adipex now. Adipex. Adipex online. Adipex without prescription.

  116. Viagra.

    Tracked from Viagra. 2010/02/27 14:26 Delete

    Viagra. Viagra soft tabs. Re viagra cello.

  117. Seroquel.

    Tracked from Seroquel. 2010/02/28 13:16 Delete

    Seroquel 150mg at night. Astra zeneca seroquel. Seroquel. Patent expire seroquel. Herbal alternative to seroquel.

  118. Viagra prices.

    Tracked from Viagra. 2010/02/28 15:12 Delete

    Viagra. Generic viagra. Viagra samples. Free viagra. Buy viagra. Re viagra cello.

  119. Buy alprazolam.

    Tracked from Herbal alprazolam. 2010/03/01 11:39 Delete

    Xanax alprazolam overnight. Pictures of alprazolam.

  120. Viagra.

    Tracked from Impulse female viagra. 2010/03/01 16:47 Delete

    Order viagra. Re viagra cello. Viagra.

  121. Adderall.

    Tracked from Adderall treating anxiety in adults. 2010/03/02 11:12 Delete

    Free adderall. Adderall without prescription. Adderall.

  122. Generic cialis pay by money order.

    Tracked from Cialis. 2010/03/02 16:56 Delete

    Cialis uk suppliers. Dangers cialis and cocaine. Cialis fedex. Buy cialis. Cheap cialis. Cialis.

  123. Oxycodone hci cr.

    Tracked from Fentanyl vs oxycodone. 2010/03/03 08:58 Delete

    How strong is 30mg of oxycodone. Oxycodone.

  124. Alprazolam.

    Tracked from Purchase alprazolam online. 2010/03/04 02:02 Delete

    Alprazolam. Mylan alprazolam. Alprazolam in mexico.

  125. Percocet pregnancy.

    Tracked from Percocet. 2010/03/04 13:17 Delete

    Percocet. Percocet addiction.

  126. Pillinc buy phentermine adipex meridia online.

    Tracked from Buying meridia in mexico. 2010/03/05 07:07 Delete

    Http loriall.tripod.com meridia-medication.

  127. Percocet.

    Tracked from Percocet. 2010/03/05 18:32 Delete

    Percocet 93-490. Percocet withdrawal symptoms. No prescription percocet. Percocet.

  128. Carisoprodol side effects.

    Tracked from Carisoprodol side effects. 2010/03/06 09:59 Delete

    Carisoprodol soma drug test. Carisoprodol toxicity. Effects of carisoprodol. Carisoprodol. Carisoprodol phentermine yellow.

  129. Taking viagra with cialis.

    Tracked from Side effects of viagra. 2010/03/06 23:48 Delete

    Viagra. Over the counter viagra. Free viagra. Taking viagra with cialis. The new viagra. Viagra uk medix plus forum.

  130. Latest news about danger phentermine acomplia.

    Tracked from Acomplia. 2010/03/07 06:56 Delete

    Acomplia. Diet pill acomplia rapid. Acomplia meds purchase.

  131. Picture of alprazolam bars.

    Tracked from Alprazolam. 2010/03/07 09:24 Delete

    Alprazolam-mylan. Purchase alprazolam. Alprazolam tab. Cheap alprazolam. Alprazolam no prescription. I need alprazolam. Alprazolam free shipping.

  132. Auto insurance.

    Tracked from State farm auto insurance. 2010/03/07 13:06 Delete

    Auto insurance saratoga california. Auto insurance. Aaa auto insurance. Aarp auto insurance. Grange auto insurance. Rhode island auto insurance for high risk driver. Usaa auto insurance.

  133. Acomplia.

    Tracked from Where can i purchase acomplia. 2010/03/08 08:54 Delete

    Acomplia.

  134. Keflex.

    Tracked from Keflex drug used for. 2010/03/08 11:07 Delete

    Keflex. Keflex mode of action.

  135. Tramadol.

    Tracked from Tramadol withdraw. 2010/03/08 18:35 Delete

    Comparative potencies of opioids tramadol. Tramadol side effects. Tramadol.

  136. Alprazolam tablet.

    Tracked from Alprazolam-ratiopharm. 2010/03/09 10:21 Delete

    Alprazolam purchased by mastercard. Alprazolam no prescription. Alprazolam effects side xanax discount. Alprazolam without prescription. Alprazolam.

  137. What is cozaar.

    Tracked from Cozaar. 2010/03/09 10:27 Delete

    Cozaar marfan's. Cozaar side effects. Cozaar.

  138. Keflex.

    Tracked from Keflex mode of action. 2010/03/10 12:38 Delete

    What is keflex. Keflex. What is keflex used for. Keflex tics. Keflex mode of action.

  139. Viagra.

    Tracked from Viagra london. 2010/03/10 13:23 Delete

    Viagra dosage. Free viagra sample. Buy viagra online. Viagra. Free sample viagra. Re viagra cello.

  140. Antique auto insurance.

    Tracked from Auto insurance. 2010/03/10 20:20 Delete

    California insurance company auto salvage sales. Allstate auto insurance. Auto insurance. Cheap auto insurance. Gmac auto insurance. Nissan skyline auto-insurance. Auto insurance online. North carolina auto insurance.

  141. Cialis best price buy online.

    Tracked from Compare cialis and viagra. 2010/03/10 20:45 Delete

    Buy cialis. Cialis best price buy online. Taking cialis. Cialis. Online pharmacy cialis on line. Cheapest cialis.

  142. Alprazolam.

    Tracked from History alprazolam. 2010/03/11 23:36 Delete

    Heroin mixed with alprazolam. Photos of alprazolam n126. Alprazolam without prescription. Alprazolam 0.5mg. Alprazolam. I need alprazolam. Cheap 2mg alprazolam. Overdose of alprazolam.

  143. Direct auto insurance.

    Tracked from Auto insurance. 2010/03/16 01:24 Delete

    Commercial auto insurance.

  144. Effectiveness comparison levitra cialis.

    Tracked from Cialis. 2010/03/16 12:00 Delete

    Asprin and cialis. Buy cialis. Cialis cheap. Cialis.

  145. Heroin mixed with alprazolam.

    Tracked from Alprazolam 0.5mg. 2010/03/17 08:04 Delete

    Alprazolam side effects. Alprazolam. Purchase alprazolam online medical consultations.

  146. Keflex.

    Tracked from What is keflex used for. 2010/03/18 05:13 Delete

    Keflex and dose. Keflex pneumonia. Keflex.

  147. Keflex.

    Tracked from Keflex. 2010/03/18 11:30 Delete

    Keflex. Keflex and dose. What is keflex. Keflex used to treat. What is keflex used for.

  148. Carisoprodol phentermine yellow all on one site.

    Tracked from Medlineplus drug information carisoprodol. 2010/03/19 09:42 Delete

    Carisoprodol.

  149. Cheapest cialis.

    Tracked from Buy generic cialis. 2010/03/20 09:30 Delete

    Cialis uk suppliers. Cialis st. Cialis effects. Cialis.

  150. Cialis.

    Tracked from Cialis. 2010/03/21 08:45 Delete

    Cialis drug. Cialis best price buy online. Cialis.

  151. Order carisoprodol.

    Tracked from Order carisoprodol. 2010/03/22 09:31 Delete

    Soma carisoprodol. Carisoprodol. Order soma carisoprodol.

  152. Generic cialis.

    Tracked from Cialis st. 2010/03/23 08:01 Delete

    Viagra vs cialis. Drug called cialis. Cialis drug. Cialis best price buy online. Cialis.

  153. Casino 1270282933

    Tracked from Casino 1270282933 2010/04/03 18:44 Delete

    Casino 1270282933

  154. Casino 1274019881

    Tracked from Casino 1274019881 2010/05/16 23:30 Delete

    Casino 1274019881

  155. Casino 1276715730

    Tracked from Casino 1276715730 2010/06/17 07:47 Delete

    Casino 1276715730

  156. Cialis.

    Tracked from Taking cialis. 2010/07/11 21:14 Delete

    Cialis.

  157. Expired percocet.

    Tracked from How do i get off percocet. 2010/07/12 09:27 Delete

    Is darvocet stronger than percocet. Compare and contrast percocet and oxycodone apap.

  158. Vicodin.

    Tracked from Vicodin. 2010/07/13 01:57 Delete

    Vicodin abuse. Vicodin. Prescriptions drugs pharmacy online vicodin. Next day delivery vicodin. Vicodin at overseas pharmacies. Purchase vicodin online. Vicodin strengths.

  159. Fashion bug.

    Tracked from Renaissance fashion. 2010/07/13 13:33 Delete

    19th century fashion. Chandler fashion square. Fashion designers. Teen fashion models.

  160. Xanax.

    Tracked from Xanax. 2010/07/14 09:41 Delete

    Order xanax online. How long does 1mg of xanax stay in your system. Effects of xanax. Xanax. Xanax valium.

  161. Naked celebrities.

    Tracked from Free nude celebrities. 2010/07/15 01:06 Delete

    Free naked male celebrities. Naked celebrities. Nude celebrities. Celebrities nude. Celebrities. Free nude celebrities.

  162. Cialis online.

    Tracked from Cialis and drug craving. 2010/07/15 12:10 Delete

    Viagra and cialis. Cialis. Liquid cialis.

  163. Vicodin.

    Tracked from Vicodin side effects. 2010/07/15 22:58 Delete

    Vicodin side effects. Liquid vicodin.

  164. Zolpidem ambien.

    Tracked from Zolpidem and sleepwalking. 2010/07/16 12:11 Delete

    Cheap zolpidem.

  165. Purchase cialis online.

    Tracked from Cialis drug. 2010/07/16 22:56 Delete

    Cialis online. Cialis best price buy online. Cialis in las vegas. Cialis. Cialis dosage. Cheapest cialis.

  166. Zoo sex.

    Tracked from Zoo sex. 2010/07/17 12:04 Delete

    Zoo sex.

  167. Vicodin addiction.

    Tracked from What is vicodin. 2010/07/17 23:20 Delete

    Buy vicodin. Vicodin. Vicodin withdrawl. Order vicodin. Vicodin es.

  168. Viagra dosage.

    Tracked from Cheap viagra. 2010/07/18 23:09 Delete

    Generic viagra. Viagra blood pressure. Viagra 6 free samples. Buy generic viagra.

  169. How long does xanax stay in your system.

    Tracked from Buy xanax. 2010/07/19 11:47 Delete

    Xanax online. Xanax. Xanax without a prescription. Xanax effect.

  170. Cheap tramadol without prescription.

    Tracked from Cheap tramadol without prescription. 2010/07/19 23:06 Delete

    Cheap tramadol. Vet meds tramadol. Cheap tramadol without prescription. Tramadol.

  171. Cialis and levitra.

    Tracked from Generic cialis. 2010/07/20 13:51 Delete

    Buy cialis. Cialis positive side. Cialis.

  172. Nude celebrities.

    Tracked from Celebrities sexy. 2010/07/21 01:05 Delete

    Free celebrities nude.

  173. Buy percocet online.

    Tracked from Percocet withdrawal symptoms. 2010/07/21 12:35 Delete

    Percocet dosages. Percocet.

  174. Generic viagra no prescription.

    Tracked from Viagra. 2010/07/21 23:57 Delete

    Generic viagra.

  175. Chemical compounds of xanax.

    Tracked from Geniric xanax. 2010/07/22 16:53 Delete

    Hysbysfwrdd cymrux xanax cheap phentermine. Cheap xanax. Xanax.

  176. Xanax.

    Tracked from Xanax without prescription. 2010/07/22 18:47 Delete

    Side effects of drug xanax. Buy xanax. Xanax withdrawal. How long does xanax stay in your system. Xanax effects. Xanax. Xanax side effects.

  177. Cheap tramadol.

    Tracked from Ultram tramadol. 2010/07/23 20:36 Delete

    Tramadol prescription. Tramadol hydrochloride. Cheap tramadol without prescription. Tramadol abuse.

  178. Viagra.

    Tracked from Viagra generic. 2010/07/24 09:25 Delete

    Generic viagra.

  179. Xanax.

    Tracked from Side effects of xanax. 2010/07/24 12:10 Delete

    Xanax withdrawal. Xanax prescription. Xanax. Generic xanax 2 mg no prescription. Xanax weight gain. Side effects of xanax.

  180. Cialis.

    Tracked from Cialis. 2010/07/25 08:46 Delete

    Cialis for woman. Buy cialis online. Buy cialis. Cialis. Cheap cialis.

  181. Gay anal sex.

    Tracked from Anal sex. 2010/07/25 21:24 Delete

    Guide to anal sex. Anal sex. Anal sex lessons. Free anal sex videos. Anal sex stories. Anal sex pic.

  182. Animal sex.

    Tracked from Animal sex. 2010/07/25 23:54 Delete

    Animal sex.

  183. Porno tube.

    Tracked from You tube. 2010/07/26 08:39 Delete

    Stark tube tester. You tube. U tube.

  184. Cheap phentermine online.

    Tracked from Phentermine prozac. 2010/07/26 20:18 Delete

    Phentermine without prescription.

  185. Get phentermine.

    Tracked from Phentermine 37.5mg. 2010/07/27 09:31 Delete

    Phentermine online purchase. Discount phentermine. No prescription phentermine.

  186. Cialis.

    Tracked from Cialis. 2010/07/27 20:21 Delete

    Cialis online. Taking viagra with cialis. Viagra and cialis. Problems lubricating even with cialis. Cialis.

  187. Ambien.

    Tracked from Buy ambien online cod. 2010/07/28 12:08 Delete

    Ambien cr. Ambien. Ambien cr color.

  188. You tube.

    Tracked from You tube. 2010/07/29 01:29 Delete

    You tube.

  189. Phentermine.

    Tracked from Phentermine cheap. 2010/07/29 12:47 Delete

    Phentermine prescription. Cheap phentermine no prescription.

  190. Celexa.

    Tracked from Celexa side effects. 2010/08/01 03:36 Delete

    Celexa cytomel. Celexa.

  191. Premarin adoption.

    Tracked from Premarin. 2010/08/01 17:33 Delete

    Premarin.

  192. Vicodin no prescription.

    Tracked from Vicodin withdrawal. 2010/08/02 02:41 Delete

    Buy vicodin. Cheap vicodin. Vicodin withdrawal symtoms.

  193. Effexor xr.

    Tracked from Effexor xr. 2010/08/02 10:50 Delete

    Side effects of effexor xr. Effexor xr withdrawal symptoms. Effexor alcohol side effects. Effexor. Coming off effexor xr.

  194. Premarin.

    Tracked from Premarin. 2010/08/02 14:22 Delete

    Premarin. Premarin vaginal cream. Premarin depression. Premarin generic.

  195. Vicodin military urinalysis.

    Tracked from Vicodin. 2010/08/02 20:54 Delete

    Vicodin. Vicodin for the soul. Dangers of vicodin. Vicodin withdrawal.

  196. Acomplia.

    Tracked from Acomplia. 2010/08/03 14:59 Delete

    Acomplia. Acomplia acetylcholine. Acomplia discount.

  197. Burberry raincoat.

    Tracked from Burberry bags. 2010/08/04 10:35 Delete

    Burberry bags. Burberry bags collection. Burberry.

  198. Britney spears no underwear.

    Tracked from Underwear. 2010/08/04 17:00 Delete

    Insulated underwear. Britney spears in her underwear. Boy underwear.

  199. Diflucan.

    Tracked from Diflucan. 2010/08/05 17:14 Delete

    Diflucan rebate. Diflucan fluconazole. Generic for diflucan. Diflucan.

  200. Colde sores appearing while on valtrex.

    Tracked from Use of the drug valtrex. 2010/08/06 19:31 Delete

    Colde sores appearing while on valtrex. Valtrex. How many times a day should i take valtrex.

  201. Lorcet vicodin online.

    Tracked from Cheap vicodin cod. 2010/08/07 12:40 Delete

    Vicodin.

  202. Cialis.

    Tracked from Cialis. 2010/08/08 02:30 Delete

    Cialis.

  203. Valtrex.

    Tracked from Valtrex. 2010/08/08 09:13 Delete

    Valtrex. Valtrex 500mg. Free sample valtrex.

  204. Cialis.

    Tracked from Purchase cialis online. 2010/08/08 18:40 Delete

    Cialis.

  205. Zolpidem.

    Tracked from Zolpidem. 2010/08/08 22:12 Delete

    Cheap zolpidem. Zolpidem.

  206. Lexapro.

    Tracked from Stopping the use of lexapro. 2010/08/09 16:41 Delete

    Lexapro. Studies comparing prosac and lexapro. Lexapro without prescription.

  207. Hess trucks.

    Tracked from Older trucks. 2010/08/10 04:46 Delete

    Used tow trucks for sale. Monster trucks. Dodge trucks. Peterbilt trucks. Toyota trucks.

  208. Armani watches.

    Tracked from Giorgio armani makeup case. 2010/08/10 09:49 Delete

    Eva langoria in armani. Armani figurines.

  209. Britney spears underwear.

    Tracked from Britney spears underwear. 2010/08/10 22:51 Delete

    Britney spears underwear. Britney spears no underwear. Young girls in underwear. Britany spears no underwear. Gay underwear. Sexy underwear. Men in underwear.

  210. Vicodin.

    Tracked from Vicodin. 2010/08/11 01:44 Delete

    Darvocet vs vicodin. Where to order vicodin with no prescription. Cheap vicodin. Vicodin. Next day delivery vicodin. Buy vicodin without script. Vicodin military urinalysis.

  211. Vicodin.

    Tracked from Vicodin. 2010/08/11 13:31 Delete

    Effects of vicodin. Vicodin. Vicodin at overseas pharmacies. Vicodin no prescription. Vicodin interaction with metropolol. Vicodin online no prescription. Vicodin detox vicodin.

Comments List

  1. 하악하악 2009/05/31 23:52 # M/D Reply Permalink

    우와우!!! 너무 좋은강좌입니다. 이런곳이 있다니 천국입니다.절하고 싶습니다. 축복받으실겁니다. 너무너무 좋습니다.

Leave a comment

Inside Of Tsearch

대상 프로그램의 모습




1.How to Search Value?


우선 우리의 타겟 프로그램에 열고 엑세스 권한을


얻는것이 첫번쨰 일것이다. Tsearch키면 보이는


창의 주메뉴에 있는 OpenProcess를 클릭하여


우리의 대상 프로그램인 ttester.exe를 연다.




그러면 OpenProcess 버튼및의 돋보기 버튼이


활성화 된것을 볼수 있다. 돋보기 버튼을 클릭하여


보자. 첫번쨰 인자인 Search는 3가지로 나뉘는데


Exact Value(),Range(값범위),UnKnow Value(모든값)


위의 세가지이다. 두번쨰 인자는 Value로서 Search


인자에서 Exact Value를 선택했을떄의 Value는


검색할 값을 묻는것이다.Range를 선택했을떄는


Value1 과 Value2 로 늘어나는것을 볼수있다.


Value1 부터 Value2 까지의 값을 모두 검색하는


것이다. 예를들면 Value1에 10을 적었고 Value2에


12 를 적었다면 10,11,12 라는 값은 모두 검색


되어 보여지게 된다. UnKnow Value상태는 Search


부분이 비활성화 된다. 한마디로 값을 입력할필요


가 없다는 뜻이다. 세번쨰 인자인 Type은 바이트폭


을 나타내는것으로 6가지를 재공한다. 순서대로는


Byte[1],워드[2],이중워드[4],사중워드[8] 그리고


플로트,더블 등의 타입을 재공한다. 이를 잘조화


하여 검색하면 효과적인 검색이 가능하다.




예를 들어 Search 는 Exact Value,Value는 1


Type은 1Byte로 해놓고 Search를 했다고 하자.


그러면 많은 값들이 Search 됨을 볼수 있다.






이렇게 값이 많이 잡혀서야 우리가 원하는게 뭔지 알수없다.


그래서 있는 기능인 Next Search는 바로


현재 Search 되어 돋보기 밑의 리스트에 추가


되어 있는 주소들 사이에서만 검색을 하는 것이다.




밑에와 같은 많은 Search 방식들을 재공하고 있다.


Has Changed: 이전 검색값과 값이 변경되었나?


Has Not Changed: 이전과 같은가?(변화가 없는가)


Has Increased: 값이 이전보다 커졌는가?


Has Decreased: 값이 이전보다 작아졌는가?


Range: 범위로 재검색


그외의 것들은 확장기능으로 by는 얼마나 증가됬거나


감소 되었는가 하는 값을 적어줘야 하고 %가 붙은


것들은 증가된 %를 적어주면 되는 것이다.이런식으로


확실한 Search가 가능하게 되는 것이다.


 


2.How to Use AutoHack?


이번강좌의 핵심인 AutoHack에 대하여 알아보자.


우선 AutoHack 기능을 사용하기 위해선 우선


주메뉴의 Autohack - > Enable debugger 를 클릭하여 주어야 한다.


그다음 우리의 타겟 프로그램인 ttster.exe 를 보면


많은 게이지들이 움직이고 있고 밑에 세가지 버튼들


이 보일것이다. 그중에서 첫번쨰 버튼인 Pause 버튼


을 누른다. 그러면 움직이던 게이지들이 중지된다.




먼저 가장위에 있는 값인 Lives의 값을 Search 해보자.


본인 같은 경우는 Pause 했을떄의 값이 5였다.






그럼으로 New Search 에서 Search 는 Exact Value


Value는 5 Type은 1byte 로 해놓고 검색을 하여


보았다. 역시 아주 많은 값들이 검색되어 어떤게


우리가 원하는값인지 알수 없었다.




대상창으로 돌아가서 다시 Un Pause 버튼을 누른다.


Lives의 값이 바뀐다음 다시 Pause 를 누른다.






이제 다시 Tsearch 화면으로 돌아와서 Next Search


돋보기 버튼을 클릭한후 이전 New Search 에서


Value만 5대신 4를 검색한다. 본인같은 경우는


딱 한개의 값만이 남았음으로 값을 찾을수 있었다.


하지만 한번에 안될경우도 있는데 그럴경우는 계속


반복해주며 1~5 이내가 남을 떄까지 반복하여 준다.




이제 찾은 주소인 0x403017을 더블 클릭하여 준다.


그러면 그림 처럼 오른쪽 리스트로 옮겨짐을 볼수


있는데 그상태에서 마우스 오른쪽버튼으로 클릭하면


그림과 같은 팝업메뉴를 볼수있다. 그중에서


가장 밑에 있는 AutoHack을 클릭하여 준다.




그런다음 그림처럼 Tsearch의 주메뉴에서


AutoHack ->AutoHack Window 를 클릭하여 주면


다음과 같은 창이 뜬다. 우리는 이창을 보며 걸려


들길 기다리면 되는것이다.




ttester.exe 를 다시 띄우고 Pause 버튼을 눌러보자.




그림 처럼 0x403017에 엑세스 하는 부분들이


낚였음을 볼수있다. 낚인것들을 살펴보자 첫번쨰


0x401217은 Lives를 1씩 감소 시키는것이고 두번쨰


0x40121F는 Lives가 0 이 되었을떄 이를 다시 10으로


만들어 주는 것이다.




이제 이를 수정시키는 방법을 알아보자.


첫번째 쉬운 방법으로 주소옆에 있는


□ 체크 박스를 클릭하여 체크하여 주면 NOP THIS LINE이


걸리게되어 작동하지 않게 된다. 실제로 그런지 한번


확인해 보기 바란다.


두번쨰 방법은 원하는 주소를 클릭하고 하단부에 있는


Disassembler 버튼을 클릭하면 그 부분이 Disassemble


되어 보여지는데 그상태에서 마우스 오른쪽 버튼으로


클릭하고 Assemble 버튼을 클릭하여 준다.




그러면 뜨는 다음 과같은 창에서 dec 의 반대 어셈블리

명령어인 Inc 로 바꾸고 Assemble 버튼을 클릭한다.

(어셈블리어 에 관한 것은 기초 강좌를 참조하라)

이제 ttester.exe 의 창을 띄우면 Lives의 값이 거꾸로

올라가고 있는것을 볼수 있을것이다.



Lives의 값 말고도 Moneys와Timer도 이와 같은 방법으로 할수

있다. 하지만 밑의 프로그레스바는 그렇지 않다.

정확히 지금 값이 뭐인지 우린 알수 없다. 이럴떄

사용하는 방법을 알아보자.



위의 그림과 같이 프로그레스바(Health)가 최대치

일때 Pause 버튼을 눌러 일시중지 시킨다.

그런후 티서치의 New Search 에서 Search는

Unknow Value에 맞추고 Type은 1Byte 에 맞추고

Ok를 누른다. 많은 값들이 잡혀 보일것이다.



ttester.exe 의 창으로 돌아가 Un Pause 버튼을

눌러 일시중지를 풀어주고 어느정도 감소할떄

까지 기다렸다가 어느 정도 감소되면 다시

Pause 버튼을 눌러 일시중지 시키어 준다.



그런후 티서치 창에서 위의 그림과 같이

Search Next(두번쨰 돋보기)를 클릭하고

Search 는 Has Decreased(감소한것)

Type은 1Byte로 해놓고 Ok를 눌러 검색한다.

그런다음 다시 ttester.exe의 UnPause버튼을

눌러 일시중지를 풀어주고 어느정도 감소하면

다시 Pause 버튼을 눌른후 Has Decreased를

검색하는 방법으로 반복하다보면 ...........



위의 그림과 같이 0x40303A가 프로그레스바의


값임을 알수 있다. 그냥 벨류를 Freeze시켜도


되지만 우리는 Easy Write를 이용하여 보자.


더블 클릭하여 오른쪽 테이블로 옮기고




아까처럼 마우스 오른쪽 버튼을 클릭하면


나오는 메뉴중 가장 아래에 있는 AutoHack 버튼을


클릭 해준후 AutoHack Window를 통해서 0x40303A


에 어떤 메모리 엑세스 동작이 일어나는지 지켜보자.



저는 위와 같은 결과를 얻을수 있었습니다. 첫번쨰


0x4012E7은 감을 한개씩 감소시키는 것이고


두번쨰 0x4012EF 에서는 프로그레스바의 값이0이


되었을떄 이를 다시 최대치 값인 0x64로 만들어주는


기능을 하는 명령어 임을 볼수있다. 우리는 프로그레스


바를 감소 시키는 부분인 0x4012E7 부분을 수정하여


2씩 증가 시키도록 해보자.



위의 그림과 같이 흰 종이 모양 버튼을 클릭하면


EASYWRITE INTERPRETER 라는 창이 뜨게된다.


이창을 이용할떄 가장 중요한것은 어느 빈부분


으로 점프하여 사용할것인가 하는것인데 빈칸을


검색하여 주는 이툴(tcct)을 이용하여 빈칸을 검색


토록 하자.[만약 프로그램에 빈칸이 없다면


내 페이지의 섹션추가법(빈공간생성)을 참조토록 하라] 


어째든 지금부터 감소하는 대신 2씩 증가 시키게


해볼것이다. 방법은 두가지이다. 첫번쨰 방법은


DEC(감소)의  반대 어셈어인 INC(증가)를 두번해


주는 방법이며 두번쨰는 ADD(더하기) 명령어를


이용하는 것이다.




위의 그림과 같이 나는 작성하였다. 작성후


Check 버튼을 클릭하여 구문의 오류를 체크한후


Ok 버튼을 눌러준다. [Tmk 버튼을 통하여 Hex


코드를 알수있다] 저는 위의 예제그림에서 


어셈블리어 add를 이용하였지만


inc를 두번 사용 하여줘도 된다.


Ok 버튼을 눌러주고 구문의 오류가 없다면



위의 그림과 같이 오른쪽에 체크 박스가 생기는데


체크 박스를 클릭하여 체크 상태로 만들어 주면


적용 상태 즉 적용 완료 되어 우리가 코드 한대로


프로그레스바가 두칸씩 증가함을 볼수 있다.

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by Dual

2005/07/31 02:21 2005/07/31 02:21
Response
No Trackback , No Comment
RSS :
http://dual5651.hacktizen.com/tc/rss/response/12

Trackback URL : http://dual5651.hacktizen.com/tc/trackback/12

Leave a comment