반응형



익히 알려진 것들이겠지만... 정리차원에서 살포시 올려봅니다.


일단 "프로세스" 에 대한 전체 경로이기 때문에 EPROCESS 에서부터 시작합니다. ^^;;;;




편의상 WinXP SP3 OS 환경 하의 notepad.exe 를 타겟으로 잡고 진행합니다. ^^;;

( XP 이상이면 가능할 것으로 생각됩니다...ㅎ )


타겟으로 잡은 notepad.exe 의 EPROCESS 는 다음과 같습니다.




EPROCESS 의 여러 정보들 중에서  SectionObject, Peb, SeAuditProcessCreationInfo ...


이상의 세가지를 통해 전체경로를 구해보도록 하겠습니다. ( 물론 다른 방법도 있을 수 있겠죠..^^;; )



1. Peb


유저레벨에서도 접근이 가능한 Peb 를 이용하는 것이 가장 일반적인 방법이 아닐까 싶네요.


Peb 에는 다음과 같은 정보들이 있습니다.




ProcessParameters 는 프로세스의 파라메터에 대한 정보를 담고있는데...


ImagePathName 이라는 필드에 해당 프로세스의 전체 경로가 저장이 됩니다.


kd> dt nt!_RTL_USER_PROCESS_PARAMETERS 0x00020000
   +0x000 MaximumLength    : 0x1000
   +0x004 Length           : 0x700
   +0x008 Flags            : 0x22001
   +0x00c DebugFlags       : 0
   +0x010 ConsoleHandle    : (null) 
   +0x014 ConsoleFlags     : 0
   +0x018 StandardInput    : (null) 
   +0x01c StandardOutput   : 0x00010001 Void
   +0x020 StandardError    : (null) 
   +0x024 CurrentDirectory : _CURDIR
   +0x030 DllPath          : _UNICODE_STRING "C:\WINDOWS\system32;C:\WINDOWS\system32;C:\WINDOWS\system;C:\WINDOWS;.;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\UTIL;C:\MyTools\OllyDBG;C:\MyTools\LordPE;C:\MyTools\ImpREC"
   +0x038 ImagePathName    : _UNICODE_STRING "C:\WINDOWS\system32\notepad.exe"
   +0x040 CommandLine      : _UNICODE_STRING ""C:\WINDOWS\system32\notepad.exe" "
   +0x048 Environment      : 0x00010000 Void
   +0x04c StartingX        : 0
   +0x050 StartingY        : 0
   +0x054 CountX           : 0
   +0x058 CountY           : 0
   +0x05c CountCharsX      : 0
   +0x060 CountCharsY      : 0
   +0x064 FillAttribute    : 0
   +0x068 WindowFlags      : 0x401
   +0x06c ShowWindowFlags  : 1
   +0x070 WindowTitle      : _UNICODE_STRING "C:\WINDOWS\system32\notepad.exe"
   +0x078 DesktopInfo      : _UNICODE_STRING "WinSta0\Default"
   +0x080 ShellInfo        : _UNICODE_STRING ""
   +0x088 RuntimeData      : _UNICODE_STRING ""
   +0x090 CurrentDirectores : [32] _RTL_DRIVE_LETTER_CURDIR



2. SeAuditProcessCreationInfo


   +0x1f4 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO
      +0x000 ImageFileName    : 0x86027008 _OBJECT_NAME_INFORMATION
         +0x000 Name             : _UNICODE_STRING "\Device\HarddiskVolume1\WINDOWS\system32\notepad.exe"



3. SectionObject


kd> dt nt!_SECTION_OBJECT 0xe19085f8
   +0x000 StartingVa       : (null) 
   +0x004 EndingVa         : (null) 
   +0x008 Parent           : (null) 
   +0x00c LeftChild        : (null) 
   +0x010 RightChild       : (null) 
   +0x014 Segment          : 0xe182dd08 _SEGMENT_OBJECT

kd> dt nt!_SEGMENT 0xe182dd08
   +0x000 ControlArea      : 0x86005008 _CONTROL_AREA
   +0x004 TotalNumberOfPtes : 0x14
   +0x008 NonExtendedPtes  : 0x14
   +0x00c WritableUserReferences : 0
   +0x010 SizeOfSegment    : 0x14000
   +0x018 SegmentPteTemplate : _MMPTE
   +0x020 NumberOfCommittedPages : 0
   +0x024 ExtendInfo       : (null) 
   +0x028 SystemImageBase  : (null) 
   +0x02c BasedAddress     : 0x01000000 Void
   +0x030 u1               : __unnamed
   +0x034 u2               : __unnamed
   +0x038 PrototypePte     : 0xe182dd48 _MMPTE
   +0x040 ThePtes          : [1] _MMPTE

kd> dt nt!_CONTROL_AREA 0x86005008
   +0x000 Segment          : 0xe182dd08 _SEGMENT
   +0x004 DereferenceList  : _LIST_ENTRY [ 0x0 - 0x0 ]
   +0x00c NumberOfSectionReferences : 1
   +0x010 NumberOfPfnReferences : 0x13
   +0x014 NumberOfMappedViews : 1
   +0x018 NumberOfSubsections : 4
   +0x01a FlushInProgressCount : 0
   +0x01c NumberOfUserReferences : 2
   +0x020 u                : __unnamed
   +0x024 FilePointer      : 0x86132220 _FILE_OBJECT
   +0x028 WaitingForDeletion : (null) 
   +0x02c ModifiedWriteCount : 0
   +0x02e NumberOfSystemCacheViews : 0

kd> dt nt!_FILE_OBJECT 0x86132220
   +0x000 Type             : 0n5
   +0x002 Size             : 0n112
   +0x004 DeviceObject     : 0x863bd900 _DEVICE_OBJECT
   +0x008 Vpb              : 0x863e28e0 _VPB
   +0x00c FsContext        : 0xe1043d90 Void
   +0x010 FsContext2       : 0xe1043ee8 Void
   +0x014 SectionObjectPointer : 0x86133424 _SECTION_OBJECT_POINTERS
   +0x018 PrivateCacheMap  : (null) 
   +0x01c FinalStatus      : 0n0
   +0x020 RelatedFileObject : (null) 
   +0x024 LockOperation    : 0 ''
   +0x025 DeletePending    : 0 ''
   +0x026 ReadAccess       : 0x1 ''
   +0x027 WriteAccess      : 0 ''
   +0x028 DeleteAccess     : 0 ''
   +0x029 SharedRead       : 0x1 ''
   +0x02a SharedWrite      : 0 ''
   +0x02b SharedDelete     : 0x1 ''
   +0x02c Flags            : 0x44042
   +0x030 FileName         : _UNICODE_STRING "\WINDOWS\system32\notepad.exe"
   +0x038 CurrentByteOffset : _LARGE_INTEGER 0x0
   +0x040 Waiters          : 0
   +0x044 Busy             : 0
   +0x048 LastLock         : (null) 
   +0x04c Lock             : _KEVENT
   +0x05c Event            : _KEVENT
   +0x06c CompletionContext : (null) 


"프로세스" 에 포커스를 맞춰서 전체경로를 얻어오는 방법을 정리한건데...


"전체경로" 에 포커스를 맞춘다면 Peb 의 Ldr 정보를 이용하거나...


VadRoot 를 이용해서 로딩된 모듈들의 전체 경로를 구할 수도 있습니다.

그 중에서 프로세스의 경로만 가져오면 되겠죠... ^^;;;;;





반응형
AND

반응형


예전부터 다른 블로그들 방문할 때마다 소스코드가 깔끔하게 올라와 있는 걸...


많이 부러워했는데... 이 참에 저도 한번 해보자 싶어서...


티스토리에 Syntax Highlighter 를 적용했습니다.



#include <stdio.h>

int main(void)
{
    printf("Hello, World!!! \n\r");

    return 0;
}


Syntax Highlighter 최신 버전은 3.0.83 인데...


제 티스토리랑 뭔가 맞지 않는 탓인지... 코드 출력이 이상하게 되는 문제가 있어서..;;;


부득이하게 2.0.320 버전으로 적용했습니다.



적용 방법은 그리 어렵지는 않았습니다.


관리페이지의 "HTML/CSS 편집" 에서 필요한 js / css 파일들을 먼저 파일 업로드를 해두고..


skin.html / style.css 에 살짝 추가를 해주니깐 되더군요.


적용방법은 인터넷에 정보가 많으니 따로 올리진 않습니다..^^;;;;



ps... 2.0.320 버전 기준으로 상위 버전이랑 뭐가 달라서 출력이 이상하게 나온건지는 좀 봐야겠네요..^^;;




반응형
AND

반응형


분석을 하다보면 C/C++ 계열이 아닌 언어(델파이, VB, C# 등...)로 컴파일 된 바이너리를 종종 보게됩니다.


물론 이런 녀석들도 OllyDBG, ImmDBG, IDA 등의 툴로 디스어셈블 코드를 보며 분석이 가능합니다.

( C# 은 예외~_~;;; 컨셉 자체가 다르다보니... )


분석은 가능하지만 C/C++ 에 비해서 눈에 안들어온다는게 지극히 주관적인 생각입니다. ^^;;;

( UI 관련 코드들 보려면 머리가 좀 지끈거리더군요;;.. )


그럴 때 마다 뒤져보게 되는게 해당 언어 전용의 Decompiler 툴입니다... ^^;;


오늘은 그 중 델파이 Decompiler 인~ "Delphi Decompiler v1.1.0.194" 를 올려봅니다.

( 짧은 영어 실력으로 알아본 결과 사용에 제한이 없는 Freeware 인듯합니다... @_@ )











대충~ 이런 정보들에 대해 확인이 가능합니다.


디스어셈블 코드만 보이는 것 보다는 이런 해당 언어들에 특화된 정보가 있다면 조금 더 분석이 편하겠죠..^^;;;



[ 다운로드 ]

Delphi Decompiler v1.1.0.194.rar


[ 출처 ] Tuts 4 You ( http://www.tuts4you.com )




반응형

'Reverse Engineering > RCE Tools' 카테고리의 다른 글

XueTr - FireEye 업데이트~~  (0) 2012.10.29
OllyDBG 2.01 beta 2, updated 2x (2012.08.30)  (4) 2012.09.19
XueTr 0.45 업데이트~~  (0) 2011.12.07
XueTr 0.44 업데이트~~  (2) 2011.11.25
XueTr 0.42 업데이트~~  (0) 2011.09.07
AND