오래전부터 사용하던 M로제트 마시마로 MV-1000 핸디형 청소기 배터리가 충전을 해도 얼마 못쓰고 방전이 되다 보니
배터리를 교체하게 되었습니다.

기존 배터리 사양은 Ni-cd, 8 cell, 1500mAh, 9.6v이고,
모터 사양은 RS-540SM 6035, 4.5~15v, 6.2A입니다.


처음 하는 작업이다 보니 새로운 배터리의 볼트가 높아 강압기를 연결해야 하나 고민하였으나, 모터의 볼트 범위를 확인한 후 강압기는 연결하지 않았습니다. 그리고 3s연결을 위해 20A bms 회로도 주문하였습니다.


신규 배터리 사양은 Li-Po, 1003450, 2000mAh, 3.7v입니다. 3S2P로 연결하기 때문에 용량은 4000mAh가 됩니다.


개별 보호회로를 제거하고 먼저 병렬로 연결하기 위해 2개씩 미니 스폿용접기로 작업을 했습니다. 가운데 배터리는 원래 간격이 달라서 기울어졌습니다. ㅎ


그리고 니켈 플레이트를 스폿 용접하여 직렬로 연결해 주었습니다.


전원 케이블은 기존 배터리에서 사용하던 18 awg를 재사용하였고, 16 awg와 22 awg를 추가로 사용하여 bms와 휴대용 미니 인두기로 납 작업을 진행했습니다. 마무리는 캡톤 테이프로 열심히 감아주었습니다. ㅎ 그리고 배터리와 미니 무선청소기 연결 커넥터는 기존 커넥터를 그냥 사용해도 되는데 그냥 XT60 방식으로 변경해주었습니다.


니켈이나 납이 중금속을 분류되다 보니 흡입하지 않도록 주의해야 되는데 쉽지 않지만...작업은 재미있네요. ㅎ

 

아래는 M로제트 마시마로 MV-1000 핸디형 청소기 정보를 찾기 어렵다보니 추가했습니다.

인비오 PD-1850 휴대용 DVD 플레이어를 물려 받았는데 리튬폴리머 배터리가 배불러있더군요.

 

 

배터리 사양은 리튬폴리머 5534120 2000mAh 3.7v이며 2S로 연결되어 있었습니다.

동일한 배터리를 찾아봤으나 검색이 안되다보니 비슷한 크기로 만들 수 있는 배터리를 구매하였습니다.

새로 구매한 배터리사양은 리튬폴리머 1003450 2000mAh 3.7v입니다.

(제품에는 103450이라고 인쇄되어 있으나 실제 두께는 1cm였습니다.)

 

 

기존 배터리에서 bms를 재사용하기 위해 전열 테이프를 제거하고 확인해봤습니다.

보통은 스폿 작업으로 연결할 텐데 납으로 작업을 했더군요.

 

 

아무튼 사용하던 bms의 납을 휴대용 미니 인두기로 깨끗하게 제거하고 싶었으나 괜히 기판 태울까 봐 그냥 새로운 배터리에서도 보호회로를 제거한 후 미니 스폿용접기로 작업을 통해 연결해주었습니다. 그리고 기존 충전케이블은 길이가 짧아서 새로운 케이블로 교체했습니다.

 

 

마감은 200도 이상을 견딜 수 있는 내열, 절연 테이프인 캡톤 테이프로 마감해줍니다.

 

 

이제 DVD 플레이어 배터리를 삽입합니다.

 

 

DVD 재생이 잘되는지 확인하고, 아답타가 없다 보니 정품 아답타를 별도로 구매했네요.

◎ Miscellaneous : 기타 등등
 > strings : <decimal_offset>:<string> line 형식으로 된 주어진 Image와 File에서 해당 문자열을 찾을 수 있는 Process와 Virtual Address를 출력해 주는 명령어입니다.
  - 해당 명령의 입력은 Sysinternals의 Strings Utility 또는 유사한 Tool 들의 출력(offset:string)이며, 입력 Offset 은 File/Image의 시작 지점의 물리 Offset입니다.
  - Sysinternals 의 Strings는 Linux/MAC 에서 Wine을 이용하여 사용 가능하며, 이에 대한 출력은 File 형식으로 Volatility에게 Redirect 되어야 합니다. 
  - GNU 의 Strings 명령어를 사용한다면 -td Option을 통해 Offset을 10 진수로 출력 가능합니다.(GNU strings는 십육진 오프셋 미지원) 
  - File/Image 를 Sysinternals의 Strings Utility를 수행하면 많은 시간이 걸리며, -q와 -o는 Header 출력의 생략(-q)과 각 줄의 Offset(-o)을 구하기 위해 필수적인 Option입니다

 # wine strings.exe -q -o -accepteula image.vmem > image.vmem.txt
 # python vol.py -f image.vmem --profile=Win7SP1x64 strings -s export.txt

  - Default 로 PsActiveProcessHead를 이용해 Double-linked 형태로 Process 들을 출력하며, -S Option을 통해 Hidden Process 들도 출력 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 strings -s export.txt --output-file=export_strings.txt -S

  - EPROCESS Offset 도 지원해 줍니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 strings -s export.txt --output-file=export_strings.txt -o 0x00000000

 

 > volshell : 메모리 덤프 파일 분석 시에 Windbg와 유사한 명령 형식으로 분석 할 수 있습니다.
 ※ 제공 기능
  - 프로세스들의 목록화(List processes)
  - 프로세스들의 문맥 교환(witch into a process's context)
  - 구조체와 객체들의 형식 출력(Display types of structures/objects)
  - 주어진 주소에 타입 덮어씌우기(Overlay a type over a given address)
  - 링크드 리스트 순회(Walk linked lists)
  - 주어진 주소의 코드 디스어셈(Disassemble code at a given address)
  - db, dd, dt, dis 명령어는 특정 주소 공간을 인자로 전달 가능하며, 사용하는 주소 공간에 따라 다른 결과를 출력하는 것을 확인 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 volshell

 

 > bioskbd : Memory 의 BIOS 영역에서 Key 입력을 읽을 때 사용하는 명령어입니다.
  - Lenovo 의 BIOS와 SafeBoot, TrueCrypt, BitLocker에 입력한 비밀 번호를 확인 가능합니다.
  - 메모리 덤프 툴에 따라서 필요한 BIOS 영역을 포함할 수도 있고 아닐 수도 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 bioskbd

 

 > patcher : Patches memory based on page scans
  - patcher 플러그인을 실행할때, 명령줄에 쓰기 옵션(-w) 지정하지 않으면 수정이 안됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 patcher

 

 > pagecheck : pagecheck 플러그인은 커널 DTB (System/Idle 프로세스로부터)을 사용하고 페이지들(pages)이 위치하고 있는 메모리(AddressSpage.get_avaliable_pages 메서드를 사용) 정보를 출력하는 명령어입니다.
  - 각 페이지별로 그 페이지 데이터에 접근하는 것을 시도하고 자세하게 결과를 출력합니다. 만약 그 시도한 것이 실패되면 PDE, PTE 주소 정보들도 나타냅니다.
  - 이 플러그인은 기본적으로 지원되지 않고, contrib 디렉터리 안에 위치하고 있으며 non-PAE x86 주소 공간들에서 작동이 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 --plugins=contrib/plugins/ -f pat-2009-11-16.mddramimage pagecheck

 

 > mftparser : 파일이 디스크에 있는지 확인하는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 mftparser

  - 내용이 상당히 길기 때문에 --output-file 옵션을 사용하여 파일에 저장하는 것이 좋습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 mftparser --output=body -D folder_name/ --output-file=mft.body
 # cat mft.body

 

Volatility 볼라틸리티 2.1 Plugins - 윈도우#01

◎ Image Identification : 이미지 식별

Volatility 볼라틸리티 2.1 Plugins - 윈도우#02

◎ Processes and DLLs : 프로세스와 DLLs 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03

◎ Process Memory : 프로세스 메모리 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#04

◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05

◎ Networking : 네트워크 정보
Volatility 볼라틸리티 2.1 Plugins - 윈도우#06

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
Volatility 볼라틸리티 2.1 Plugins - 윈도우#07

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
Volatility 볼라틸리티 2.1 Plugins - 윈도우#08

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#09

◎ Miscellaneous : 기타 등등

 

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
 > malfind : 사용자 모드 형태로 은폐되어 있거나 인젝션 된 코드 또는 DLL 정보를 분석하는 명령어입니다.
  - VAD 태그와 페이지 권한들 같은 문자들을 기반으로 사용자 모드 메모리에 숨겨져 있거나 삽입되어 있는 코드가 DLLs를 찾아냅니다.
  - CreateRemoteThread -> LoadLibrary로 사용되는 프로세스에 삽입되는 DLLs은 탐지하지 않습니다. 이 기술로 삽입된 DLLs는 숨겨지지  않으며 dlllist에서 이것들을 확인할 수 있습니다. 
  - malfind의 목적은 기본적인 메서드/도구들이 보지 못하는 것을 DLLs의 위치를 찾아내는 것입니다. malfind에 의해 인식되는 메모리 세그먼트의 압축된 복사 파일을 저장하고 싶다면 -D 옵션과 결과가 저장될 dir를 지정해주면 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 malfind -p pid
 # python vol.py -f image.vmem --profile=Win7SP1x64 malfind -p pid -D folder_name/

 

 > yarascan : YARA를 이용하여, 사용자 및 커널 모드 메모리 영역에 포함된 바이트(Byte) 순서, ANSI 및 유니코드 (Unicode) 문자열 검색하는 명령어입니다.
  - 의심스러운 드라이버(xxx.sys)에 대한 메모리 스캔

 # python vol.py -f image.vmem --profile=Win7SP1x64 yarascan -Y "xxx.sys" --wide

  - YARA 패턴(Rules)을 만들 수 있고, --yara-file=RULESFILE 옵션을 이용하여 명시할 수 있습니다.
  - 프로세스에서 rules.yara 파일 내에 정의되어 있는 문자들을 검색하기 위해서 아래와 같은 명령어를 입력하고, 간단하게 결과를 확인할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 yarascan --yara-file=/path/rules.yara

  - 프로세스에서 간단한 문자를 검색하고, 매칭 되는 문자가 포함되는 메모리 세그먼트들을 덤프 하기 위해서는 아래 명령어를 입력하면 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 yarascan -D dump_files --yara-rules="stringtext"

  - 커널 메모리에서 바이트 패턴을 검색하기 위해서, 아래 명령어를 사용합니다.(kernel driver들에 의해 Load되어 있는 Memory만 탐색)

 # python vol.py -f image.vmem --profile=Win7SP1x64 yarascan --yara-rules="{8B 00 81 38 54 44 4C 33 75 5A}" -K

  - 각 프로세스 안에 있는 byte패턴을 얻기 위한 검색은 아래 예제와 같습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 yarascan --yara-rules="{eb 90 ff e4 88 32 0d}" --pid=624

  - 각 프로세스 안에 있는 정규 표현식에 대한 검색은 아래 예제와 같습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 yarascan --yara-rules="/my(regular|expression{0,2})" --pid=624

 

 > svcscan : Memory Image에 등록된 service 목록을 확인할 수 있는 명령어입니다.
  - Process ID, Service name, Service display name, Service type, Current status, Binary path을 확인할 수 있습니다.
  - Binary path의 경우 User-mode service 뿐만 아니라, Kernel-mode에서 사용된 service의 Driver 이름까지도 출력합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 svcscan

 

 > ldrmodules : 특정 프로세스나 DLL에 의해 은폐된 DLL 정보 분석하는 명령어입니다.
  - PEB 안의 linked list에서 Unlinking을 통해 DLL을 숨기는 기법의 경우 VAD(Virtual address Descriptor)에 정보(Base address, Full path)가 남아 있기 때문에 탐지가 가능합니다.
  - Unlinked 된 명령어를 출력해 주며, Memory mapping 된 PE File 이 PEB List에 존재하면 1, 하지 않으면 0을 출력해 줍니다.
  - 경로를 덮어쓰기 함으로써 악성코드가 DLL을 숨길 수 있으며, 이는 모든 Entry의 Full path를 보는 -v 또는 --verbose Option을 사용하여 확인할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 ldrmodules
 # python vol.py -f image.vmem --profile=Win7SP1x64 ldrmodules -v

 

 > impscan : 코드가 import 하고 있는 함수를 보여줍니다.
  - Impscan은 PE의 IAT(Import Address Table)를 파싱 할 필요 없이 API들을 불러와 정의하며, 만약 악성코드가 완벽하게 PE Header를 지우고 커널 드라이브에서 실행되고 있다면 여기엔 나오지 않을 것입니다.
  - IAT(Import Address Table) :  프로그램에서 사용할 외부 라이브러리가 메모리에 로드되고 난 후, 해당 함수의 주소를 가지고 있는 테이블입니다.
  - 명령어 라인에  -b 또는 -base 옵션으로 탐색 시작 베이스 주소 지정이 가능합니다.(Kernel driver의 Base address 도 지정 가능) 만약 Base address를 지정해 주지 않으면, Process의 main module 끝까지 탐색할 것입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 malfind -p pid 
 # python vol.py -f image.vmem --profile=Win7SP1x64 -p pid impscan -b [IAT 주소] 

  - 명령어 라인에 -D 옵션으로 modules 명령으로 확인한 base address를 통하여 Rebuild가 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 modules | grep find_text
 # python vol.py -f image.vmem --profile=Win7SP1x64 impscan -b [IAT 주소] -D folder_name/

 

 > apihooks : 사용자 및 커널 모드에서 API 후킹 정보를 분석하는 명령어입니다.
  - IAT, EAT, Inline Hooking을 찾아낼 수 있습니다.
  - Inline Hooking을 탐지하기 위해서 CALL, JMP Operand 가 직접 또는 간접적으로 위치를 참조하는 것, PUSH/RET 명령어를 탐지하며, ntdll.dll의 syscall이나 Kernel memory의 unknown code page를 호출하는 것을 탐지합니다.
  - Kernel driver의 unknown code page를 CALL 하는 부분도 탐지할 수 있습니다.(cf. tcpip.sys 에 의심스러운 redirection)

 # python vol.py -f image.vmem --profile=Win7SP1x64 apihooks

 ※ hook을 포함하는 Code 추출 가이드
  - malfind 명령어가 자동으로 찾고 추출 가능한지 확인
  - volshell의 dd/db 명령어를 통해 MZ header를 찾은 후, dlldump를 --base 값과 함께 사용하여 추출
  - vaddump 명령어를 통해 모든 Code segment 들을 추출 한 후(File 명은 주소 범위) 해당 범위에 해당하는 Dump File을 찾음.

 

 > idt : System의 IDT(Interrupt Descriptor Table) 현재 주소, Module, Interrupt 목적 등을 보여주는 명령어입니다.
  - IDT(Interrupt Descriptor Table) : 인터럽트가 발생했을 때 처리해주는 함수의 루틴을 포함하고 있는 테이블입니다.
  - Inline Hooking을 탐지하기 위해 IDT Entry 들도 Check 합니다.
  - IDT 변경사항에 대해서 자세한 정보를 얻고 싶다면, --verbose 옵션을 사용합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 idt
 # python vol.py -f image.vmem --profile=Win7SP1x64 idt --verbose

 

 > gdt : System의 GDT(Global Descriptor Table)를 탐지하는 명령어입니다.
  - GDT(Global Descriptor Table) : 커널 모드 메모리 내에 존재하는 구조체입니다.
  -  호출 문(call gate)에 설치된 Alipop 같은 루트킷들을 탐지하는데 유용합니다.
  - 조금 더 많은 조사를 원한다면 volshell을 사용하면 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 gdt
 # python vol.py -f image.vmem --profile=Win7SP1x64 volshell

 

 > threads : 각 Thread에 속한 Register 정보, Thread 시작 주소의 Disassemble Code 등 조사에 관련된 다양한 정보를 제공해주는 명령어입니다.(Investigate _ETHREAD and _KTHREADs)
- ETHREAD 객체의 가상 주소, pid, tid, Thread와 관련된 모든 tag(SystemThread, AttachedProcess, HookedSSDT), 생성/종료 시간, 상태, 순서, 시작 주소 등을 확인 가능하며 SSDT base 주소와 각 Service Table, Table 안의 Hook 된 함수도 출력해 줍니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 threads

  - 가능한 tags/filters의 리스트 항목을 보고 싶다면, -L 옵션을 사용합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 threads -L

  - Default로 모든 Thread에 대한 정보를 제공해 주기 때문에 정렬에 어려움이 있을 것이며, 이 때는 -F Option을 인자에 ", "를 이용하여 여러 개의 Filter를 적용 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 threads -F AttachedProcess

 

 > callbacks : Rootkit, Anti-virus, Dynamic Analysis, Windows Monitoring Tool 들에 사용됩니다.
  - 중요한 알림 루틴(notification routines)과 커널 콜백(callbacks)의 모음을 출력할 수 있습니다.
 ※ Callbakck 모음
  - PsSetCreateProcessNotifyRoutine(process creation)
  - PsSetCreateThreadNotifyRoutine(thread creation)
  - PsSetImageLoadNotifyRoutine(DLL/image load)
  - IoRegisterFsRegistrationChange(file system registration)
  - KeRegisterBugCheack and KeRegisterBugCheackReasonCallback
  - CmRegisterCallback(registry callbacks on XP)
  - CmRegisterCallbackEx(registry callbacks on Vista and 7)
  - IoRegisterShutdownNotification(shutdown callbacks)
  - DbgSetDebugPrintCallback(debug print callbacks on Vista and 7)
  - DbgkLkmdRegisterCallback(debug callbacks on 7)

 # python vol.py -f image.vmem --profile=Win7SP1x64 callbacks

 

 > driverirp : Driver의 IRP(Major Function) Table을 보기 위해서 사용하는 명령어입니다.
  - 해당 명령어는 driverscan에 속해 있기 때문에 해당 DRIVER_OBJECT 들을 찾을 수 있으며, 이후 함수 Table을 통해 Cycle을 순회하면서 각 함수들의 목적, 주소, 주소의 소유 Module 들을 출력해 줍니다.
  - 해당 명령어는 IRP 함수의 Inline Hooking 탐지를 지원하며 -v 또는 --verbose Option으로 해당 IRP 주소의 명령어들을 Disassemble 하여 제공합니다.
  - 해당 명령어는 특정 정규 표현식을 사용하지 않는 경우 Default로 모든 Driver에 대해 출력해 줍니다

 # python vol.py -f image.vmem --profile=Win7SP1x64 driverirp
 # python vol.py -f image.vmem --profile=Win7SP1x64 driverirp -r vmscsi
 # python vol.py -f image.vmem --profile=Win7SP1x64 driverirp -r vmscsi --verbose

 

 > devicetree : Show device tree
  - 장치(_DRIVER_OBJECT.DeviceObject.NextDevice)를 통해 해당 Driver 또는 Device 들의 관계를 보여주며 첨부된 장치(_DRIVER_OBJECT.DeviceObject.AttachedDevice)를 통해 Attach 된 Device 들을 보여줍니다
  - Driver를 "DRV"로, Device를 "DEV"로 표현하며, Attached Device를 "ATT"로 표현합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 devicetree

 

 > psxview : pslist 및 psscan에서 확인한 프로세스 정보를 비교하여 나열함으로써, 은폐된 프로세스를 탐지하는 명령어입니다.
 ※ 비교대상
  - PsActiveProcessHead linked list
  - EPROCESS pool scanning
  - ETHREAD pool scanning(EPROCESS를 참조)
  - PspCidTable
  - Csrss.exe handle table(Vista,7 에서는 불가, 몇몇 XP image에서는 불가)
  - Csrss.exe internal linked list(Vista,7 에서는 불가, 몇몇 XP image에서는 불가)

 # python vol.py -f image.vmem --profile=Win7SP1x64 psxview

  - 해당 열에 0으로 나타난 것은 Process 가 손실된 것을 나타내며, pslist에서 제외된 것을 통해 수상한 것을 확인할 수 있는데, 각각의 프로세스에서 탐지가 되지 않는다면 칼럼에 “False”라고 표시된다.

 

 > ssdt_ex : Rootkit에 의해 설치된 SSDT hooking에 대한 흔적을 검색해주는 명령어입니다.
  - 자동으로 어떤 SSDT 함수가 Hooking 되었는지 확인해 주며, Hooking kernel driver를 디스크로 추출, IDA Script File 인 IDC File을 Rookit의 함수 Label을 포함하여 생성해 줍니다.
  - idag.exe(Windows), idal(Linux/OS X)가 $PATH에 있으면 IDB 파일을 Kernel driver로부터 생성하여 IDC Script를 실행할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 ssdt_ex -D folder_name/

  - folder_name을 살펴보면 추출된 Kernel Driver(sys 파일), IDC Script(sys.idc 파일), IDA Database(idb 파일)를 확인할 수 있습니다.
  - IDB File을 열어 "Hook" 단어가 앞에 붙은 함수를 유심히 살펴보면 됩니다.

 

 > timers : Installed 된 Kernel times(KTIMER)와 관련된 DPC(Deferred Procedure Calls)를 출력해 주는 명령어입니다.
  - Zero Access, Rustock, Stuxnet 의 경우 DPC 를 이용하여 timer 를 등록합니다다. DPC 주소와 KTIMES 를 통해 악성코드가 다양한 방법으로 Kernel 공간에 숨어 있는 것을 빠르게 찾을 수 있습니다

 # python vol.py -f image.vmem --profile=Win7SP1x64 timers

  - Windows XP, 2003, 2008, VISTA 의 경우 times 를 전역 변수에 저장하지만, Windows 7 의 경우 KPCR(Kernel Processor Control Region)에 저장하고 있습니다. 
  - 그렇기 때문에 Windows7 에서 모든 timers 들을 확인 하려면 kpcrscan 을 통해 KPCR 주소들을 --kpcr Option 을 통해 인자로 넣어 주어야 합니다.
  - KPCR 에 따라 다른 timers 의 목록을 볼 수 있으며, 이는 각 Processor 가 자신만의 timers 의 set 을 가지고 있기 때문입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 kpcrscan
 # python vol.py -f image.vmem --profile=Win7SP1x64 --kpcr=0x00000000

 

Volatility 볼라틸리티 2.1 Plugins - 윈도우#01

◎ Image Identification : 이미지 식별

Volatility 볼라틸리티 2.1 Plugins - 윈도우#02

◎ Processes and DLLs : 프로세스와 DLLs 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03

◎ Process Memory : 프로세스 메모리 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#04

◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05

◎ Networking : 네트워크 정보
Volatility 볼라틸리티 2.1 Plugins - 윈도우#06

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
Volatility 볼라틸리티 2.1 Plugins - 윈도우#07

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
Volatility 볼라틸리티 2.1 Plugins - 윈도우#08

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#09

◎ Miscellaneous : 기타 등등

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
 > crashinfo : Crash dump header 정보를 출력해주는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 crashinfo

 

 > hibinfo : Hibernation file 로 부터 정보를 출력해주는 명령어입니다.
  - Hibernation file 로 부터 Control Register 상태, file 생성시간, 상태, Hibernation 직전의 해당 Windows Version 과 같은 정보를 제공해주는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 hibinfo

 

 > imagecopy : 크래시/BSOD 등의 분석불가능한 덤프파일을 분석가능한 덤프파일로 바꿔주는 명령어입니다.
  - Windows XP SP2 가 아니라면 --profile Option 을 통하여 Profile 을 지정해줘야 하며, -O Option 을 통하여 output file 을 지정할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 imagecopy -O Win7SP1x64.raw

 

 > raw2dmp : physical memory 덤프를 crash dump로 변환하는 명령어입니다.
  - WinDbg 커널 디버거에서 메모리를 불러올 때 유용합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 raw2dmp -O copy.dmp

 

Volatility 볼라틸리티 2.1 Plugins - 윈도우#01

◎ Image Identification : 이미지 식별

Volatility 볼라틸리티 2.1 Plugins - 윈도우#02

◎ Processes and DLLs : 프로세스와 DLLs 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03

◎ Process Memory : 프로세스 메모리 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#04

◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05

◎ Networking : 네트워크 정보
Volatility 볼라틸리티 2.1 Plugins - 윈도우#06

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
Volatility 볼라틸리티 2.1 Plugins - 윈도우#07

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
Volatility 볼라틸리티 2.1 Plugins - 윈도우#08

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#09

◎ Miscellaneous : 기타 등등

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
 > hivescan : Memory Dump로부터 CMHIVEs(Registry hives)의 Physical address를 찾아주는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 hivescan

 

 > hivelist : Memory Dump 로 부터 레지스터 하이브(Registry hives)의 가상 메모리 주소(Virtual address)와 Disk 상의 절대 경로를 알려주는 명령어입니다.
  - 만약 특정 하이브로부터 값을 표기하기 원한다면, 이 명령어를 실행시켜서 해당 되는 하이브 주소 값을 볼 수 있으며, 이 명령어를 통하여 Windows password를 크랙 할 수 있게 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 hivelist

 

 > printkey : 특정 Registry key 의 subkeys, values, data, data type를 보여주는 명령어입니다.
  - 기본적으로 printkey 는 모든 hives로 부터 검색을 하여 찾아진 key information을 출력하므로, HKEY_LOCAL_MACHINE\Microsoft\Security Center\Svc key 안을 둘러보고 싶다면 -K Option을 통하여 포함 문자열을 함께 적어 주는 것이 좋습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 printkey -K "Microsoft\Security Center\Svc"

  - 특정한 하이브를 검색하는데 제한이 있다면, printkey는 하이브의 가상 주소를 통해 확인할 수 있으며, HKEY_LOCAL_MACHINE의 내용을 보고 싶다면 -o Option을 사용하면 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 printkey -o 0xfffff8a000000000

 

 > hivedump : hive로부터 모든 subkey를 list 형태로 보여주는 명령어입니다.
  - 명령어 라인에 -o Option을 통해 원하는 hive의 Virtual address를 지정해 주면 해당 hive에 대한 subkey를 list 형태로 출력 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a000000000

 

 > hashdump : 주로 SAM File을 추출할 때 쓰이는 명령어입니다.(Windows password 크랙)
  -  SYSTEM hive의 Virtual address를 -y Option을 통해 넣어주고 SAM hive의 Virtual address를 -s Option을 넣어줍니다.
  - Memory Dump로부터 registry key를 읽을 수 없는 경우는 "ERROR : volatility.plugins.registry.lsadump: Unable to rad hashes from registry"와 같은 Error를 확인할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 hashdump -y [system의 virtual 주소] -s [sam의 virtual 주소]

  - 만약 SYSTEM의 "CurrentControlset\Control\lsa"와 SAM의 "Domains\Account\"에 올바른 key가 존재하는 것을 확인 가능하다면 volshell을 이용해 "CurrentControlSet"을 받아야 합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 volshell

  - 그 후, printkey 명령어를 사용하여 해당 data와 keys가 존재하는지 확인 가능합니다. 만약 key가 없다면 "The requested key could not be found in the hive(s) searched"라는 Error를 확인할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\lsa" --no-cache
 # python vol.py -f image.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account" --no-cache

 

 > lsadump : Registry로부터 LSA dump를 수행하는 명령어입니다.
  - Default password, RDP public key, DPAPI credentials 등의 정보를 출력 가능합니다.
  - SYSTEM hive의 Virtual address를 -y Option을 통해 넣어주고 SECURITY hive의 Virtual address를 -s Option을 통해 넣어주면 출력이 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 lsadump -y 0x00000000 -s 0x00000000

 

 > userassist : 메모리 덤프 파일에서 UserAssist 관련 레지스트리 키 정보 추출하는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 userassist

 

 > shellbags : ShellBags 정보를 추출하는 명령어입니다.
  - 특정 사용자가 호스트에서 수행 한 파일 또는 폴더 작업을 확인하는 데 매우 유용한 방법입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 shellbags
 # python vol.py -f image.vmem --profile=Win7SP1x64 shellbags --output=body

 

 > shimcache : Application Compatibility Shim Cache 레지스트리 키를 분석하는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 shimcache

 

 > getservicesids : 컴퓨터의 서비스에 대한 SID를 계산하고 나중에 사용할 수 있도록 Python 사전 형식으로 출력합니다.
  - 서비스 이름은 레지스트리 ( "SYSTEM\CurrentControlSet\Services")에서 가져옵니다. 
  - 출력을 파일에 저장하려면 --output-file 옵션을 사용하면 됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 getservicesids

 

Volatility 볼라틸리티 2.1 Plugins - 윈도우#01

◎ Image Identification : 이미지 식별

Volatility 볼라틸리티 2.1 Plugins - 윈도우#02

◎ Processes and DLLs : 프로세스와 DLLs 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03

◎ Process Memory : 프로세스 메모리 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#04

◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05

◎ Networking : 네트워크 정보
Volatility 볼라틸리티 2.1 Plugins - 윈도우#06

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
Volatility 볼라틸리티 2.1 Plugins - 윈도우#07

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
Volatility 볼라틸리티 2.1 Plugins - 윈도우#08

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#09

◎ Miscellaneous : 기타 등등

스폿 용접기는 저항발열을 이용해 전지 단자와 니켈판을 접합하는 제품입니다.

R21의 경우 주로 리튬 배터리팩을 만드는 데 사용되고

전기 없이 별도 배터리팩을 사용하여 휴대가 간편합니다.

우선, 개인이 직접 만든걸 카페를 통해 주문해서 구입한 제품인데 디자인부터 만족도가 높습니다.^^

 

제품 구성은 R21 스폿 용접기와 XT60 단자 배터리 케이스입니다.

R21 스폿 용접기의 겉면은 월넛 원목으로 직접 제작해서 샌딩작업을 거쳐 완성된 제품이고,

배터리 케이스의 경우 3D 프린터로 직접 제작한 제품입니다.

하나하나 수작업으로 정성이 들어간 제품이다 보니 만족도가 높게 느껴집니다.

 

 

 

R21 만 감상하시죠 ㅎ

 

0123456

 

배터리 케이스와 배터리입니다.

 

012

 

R21 스폿 용접기와 배터리 케이스를 결합한 모습니다.

이렇게 연결만 하면 바로 사용할 수 있습니다. 그리고 충전을 위해 휴대용 충전기를 별도로 구매했네요

검은색 동그라미 스폿 스위치 왼쪽으로 블루 LED가 보이네요 ㅎ

스폿 강도는 가변 저항을 0.2t 쪽으로 돌리면 강해지고 0.1t로 돌리면 약해집니다.

 

 

 

스폿 작업을 몇 번 했는데 0.1t 니켈 사용 시 스폿 용접기의 가변저항을 최하로 낮추고도 작업이 되더군요.

작업 중 50~60도 정도 0.2t 방향으로 돌렸는데 니켈에 구멍이 나길래 바로 최하로 낮춰서 작업했습니다. ㅎ

스폿 작업 시 불꽃이 날아다니고, 연기도 발생하는데 니켈이 중금속으로 분류되다 보니 가정집 방에서 작업하기보다는 환기가 잘되는 장소에서 작업해야 할 것 같습니다. 휴대가 가능하기 때문에 실외 이동이 자유로운 면이 있어서 좋은 것 같습니다.

◎ Networking : 네트워크 정보
 > connections : 활성화 상태의 네트워크 연결 정보를 나열합니다. (Windows XP, Windows 2003 Server 만 사용 가능)
  - 네트워크의 pslist와 비슷합니다. 오프셋은 기본적으로 _TCPT_OBJECT 가상 주소로 출력되지만 물리적인 주소를 얻고 싶다면 -P 명령어를 추가적으로 사용합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 connections
 # python vol.py -f image.vmem --profile=Win7SP1x64 connections -P

 

 > connscan : Pool tag scanning을 통하여 connection 구조체를 찾는 명령어입니다.(Windows XP, Windows 2003 Server 만 사용 가능)
  - 활성화 상태의 네트워크 연결 정보와 함께 이미 종료된 네트워크 연결 정보도 나열합니다. 그러나 몇몇 Field에서 부분적으로 덮어쓰기 된 것과 같은 오탐(False Positive)이 존재합니다.
  - psscan과 유사하며 풀 태그 스캐닝을 사용하여 _TCPT_OBJECT 구조체를 찾기 위해 사용됩니다. 이 명령어는 이미 종료되어버린 연결들로부터 아티팩트를 찾아낼 수 있고 게다가 활성화된 것들도 찾아낼 수 있습니다. 부분적으로 덮여 쓰인 필드를 발견할 수 있지만 전체적으로 신뢰할 수 있는 정보입니다. 따라서 오탐이 발견될 수 있지만 많은 정보를 찾을 수 있다는 장점이 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 connscan

 

 > sockets : TCP, UDP, RAW 등의 protocol에서 listening Socket 들을 찾아내는 명령어입니다. (Windows XP, Windows 2003 Server 만 사용 가능)
  - 기본적으로 출력은 _ADDRESS_OBJECT 가상 주소를 포함하고 있으며, -P switch를 이용하여 물리적 주소를 확인 가능합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 sockets
 # python vol.py -f image.vmem --profile=Win7SP1x64 sockets -P

 

 > sockscan : Pool tag scanning을 통하여 _ADDRESS_OBJECT 구조체를 찾는 명령어입니다. (Windows XP, Windows 2003 Server 만 사용 가능)
  - 이전의 socket으로부터 존재했던 데이터와 아티펙트들을 추출할 수 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 sockscan

 

 > netscan : Pool tag scanning을 통하여 활성화 상태의 네트워크 연결 정보를 보여줍니다. (Windows Vista, 7, Windows 2008 Server만 사용 가능)
  - TCP endpoints, TCP listeners, UDP endpoints, and UDP listeners를 찾아줍니다.
  - IPv4와 IPv6을 구별하며 Local과 Remote IP(가능하다면), Local 과 Remote 포트(가능하다면), 소켓이 bind 되거나 연결이 수립된 시간, 그리고 현재 상태(TCP 연결만 지원)를 보여줍니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 netscan

 

Volatility 볼라틸리티 2.1 Plugins - 윈도우#01

◎ Image Identification : 이미지 식별

Volatility 볼라틸리티 2.1 Plugins - 윈도우#02

◎ Processes and DLLs : 프로세스와 DLLs 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03

◎ Process Memory : 프로세스 메모리 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#04

◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05

◎ Networking : 네트워크 정보
Volatility 볼라틸리티 2.1 Plugins - 윈도우#06

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
Volatility 볼라틸리티 2.1 Plugins - 윈도우#07

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
Volatility 볼라틸리티 2.1 Plugins - 윈도우#08

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#09

◎ Miscellaneous : 기타 등등

어릴 때 집에 잉크를 찍어 쓰는 딥펜 하고 병 잉크가 있었던 기억이 있습니다.

잉크를 만지고 나면 손에 잉크가 묻는데, 물로 씻어도 잘 안 지워졌던 기억이 나네요.

싸구려 만년필은 많이 만져 봤지만 원목 수제 만년필은 처음으로 만져보네요.

바로 제나일(Zenyle) 원목 수제 만년필입니다.


포장부터 고급져 보입니다.

 

구성품은 한꺼번에 못 찍었지만, 부테로 가죽 펜케이스, 국제 표준규격 컨버터, 시필용 카트리지, 제품 보증서, 가죽 보증서, 지관입니다.

 

 

원통 케이스를 열어보면 Buttero 가죽으로 직접 제작한 펜 케이스가 들어있습니다.

  - Buttero는 이탈리아에서 3대째 운영중인 Walpier Tannery에서 전통적인 Vegetable 가공법(화학약품 대신 식물 추출 성분인 탄닌으로 가공)을 통해 생산되는 가죽입니다. 최상급의 프랑스 원피를 사용하여 밀도가 높고 표면이 부드럽습니다. 이탈리아 내에서도 최고의 가죽으로 손꼽히며 주요 명품의 소재로 사용됩니다. 

 

 

가죽 펜 케이스를 열어보니 제나일 만년필이 보입니다. ㅎ

 

 

제 손에 들어온 모델은 러셀 만년필 에보니(Russell Fountain Pen_Ebony)입니다.

 

 

고급스러운 블랙컬러와 어두운 갈색 결이 잘 어울어진 세련된 에보니로 만들어진 만년필입니다.

 

 

 

[제원]
Pen Type
Fountain Pen

[Size]
Total Length(with Cap) : 142.5mm   
Length(without Cap) : 116.0mm 
Diameter : 13mm 

[Nib Sizes]
만년필의 닙(Nib)은 필기 습관에 따라 선택이 가능합니다. Zenyle만년필은 표준적인 F(Fine) 굵기의 닙을 기본으로 제공하고 있으며, 다른 닙으로 교체를 원할 경우 옵션에서 선택 해 구매해야 합니다.

 

 


 > Finishes
수작업으로 형태가 잡히면 아래의 천연재료들로 표면을 마감합니다. 인체에 해로운 화학 물질을 배제하면서도 은은하고 부드러운 광택을 내게 해 줍니다.

  - Carnauba
야자수의 잎에서 추출한 왁스로서 브라질리 왁스, 야자 왁스 등으로 불립니다. 높은 광택과 도포면에 레이어를 형성하여 외부의 손상을 막아주는 성질이 뛰어나 왁스의 여왕으로 잘 알려져 있습니다.

  - Beeswax
흔히 밀랍으로 알려져 있으며 벌집에서 추출합니다. 수분의 침투를 막고 부드러운 광택을 내는데 탁월하여 고대 로마시대부터 중국, 우리나라까지 널리 사용되고 있습니다.

  - Shellac
인도에 서식하는 벌레의 분비물에서 추출한 수지로 오래전부터 가구 및 고급 악기의 마감 방법으로 사용되어왔습니다. 표면에 얇고 투명한 피막을 형성하여 나무의 결을 돋보이게 해 줍니다.

만년필 뚜껑은 자석으로 되어있어 앞/뒤로 촥 달라붙습니다.

만년필을 열어서 내부를 살펴봤습니다. 병잉크를 사용하기 위한 튜브가 들어있습니다.

 

 

잉크를 샘플로 같이 주기 때문에 병잉크가 없더라도 만년필을 사용할 수 있습니다.

 

 


만년필로 글씨를 써서 같이 올려야 되는데 악필이다 보니 글씨를 써볼 엄두를 못 내겠네요. 시간이 조금 더 지나면 만년필을 꺼내서 서명도하고 글씨를 쓸 날이 오겠죠. ㅎ

 > 시스템 복원지점 만들기

  - 시작메뉴에서 복원 지점 만들기를 선택합니다.

 

  - 시스템 속성의 시스템 보호 탭에서 만들기가 비활성되어 있다면 보호설정 대상 드라이브를 선택하고 구성을 선택합니다.

  - 구성에서 복원 설정 - 시스템 보호 사용을 선택합니다.

  - 시스템 속성의 시스템 보호 탭에서 만들기를 선택합니다.


  - 복원 지점에 대한 설명을 입력한 다음 만들기를 선택합니다.

  - 복원 지점이 만들어졌습니다.

+ Recent posts