<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7620918615785302711</id><updated>2012-02-17T11:38:21.135+09:00</updated><category term='Unix'/><category term='Windows XP'/><category term='Codeengn'/><category term='MacOSX'/><category term='promiscuous'/><category term='fireworks display'/><category term='Game'/><category term='vulnerability'/><category term='rsa768bit'/><category term='SIP'/><category term='Forensics'/><category term='hibernation image'/><category term='Windows'/><category term='assembly'/><category term='Digital Forensics'/><category term='defon'/><category term='volafunx'/><category term='Forensic'/><category term='IOS'/><category term='CPU'/><category term='PE Format'/><category term='python'/><category term='Windows Internal'/><category term='hwp'/><category term='Mac OS X'/><category term='memory forensics'/><category term='codegate2010'/><category term='sim reader'/><category term='raid'/><category term='multithread'/><category term='Time Machine'/><category term='programming'/><category term='antivir'/><category term='FreeBSD'/><category term='Registry'/><category term='rootkit'/><category term='Hook'/><category term='dc3'/><category term='windbg'/><category term='disk forensics'/><category term='volafox'/><category term='Google Chrome'/><category term='WallPaper'/><category term='device context'/><category term='Linux'/><category term='Fighter'/><category term='network'/><category term='psp'/><category term='Free'/><category term='defcon'/><category term='RCE'/><title type='text'>0xfeedbeef</title><subtitle type='html'>Mac OS X, BSD, Solaris Memory Forensics</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6638123731661962185</id><published>2012-02-13T22:00:00.001+09:00</published><updated>2012-02-14T15:04:14.541+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='disk forensics'/><title type='text'>rdisk0 vs disk0</title><content type='html'>&lt;p&gt;오늘 터미널에서 이것 저것 보던 중에 Mac OS X의 /dev 에는 rdisk0와 disk0 가 존재함을 알았다. 보통 리눅스 계열의 경우엔 sda나 hda 디바이스가 존재해서 해당 디바이스의 이미지를 dd를 이용해서 덤프할 수 있으나, Mac OS X에서는 이런 장치가 두 개가 존재하는 것이였다. 둘이 차이점이 뭔지 확인해보니 그 답은 Mac OS X Internal 책에 있었다.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;우선 /dev/rdisk0는 raw device로 character device이며, 데이터를 별도의 운영체제의 버퍼 캐시를 통하지 않고 raw 형태로 전송한다고 한다.  이는 버퍼 캐시의 Invalidating없이 디스크 파티션을 생성하거나, 파일 시스템을 생성, 이미 존재하는 파일 시스템의 복구를 수행할 수 있도록 해준다. 보통 리눅스 파일 시스템에 있는 디스크 장치는 맥에서 /dev/rdisk0라고 볼 수 있으며, 책에도 해당 장치에 I/O 요청 시에는 디스크의 블록 크기와 오프셋이 필요하다고 작성되어 있다.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;반대로 /dev/disk0의 경우엔 운영체제의 버퍼 캐시를 통해 데이터를 전송한다. 여기서 버퍼 캐시는 물리 장치의 데이터 청크의 위치 정보를 가지는 블록 넘버와 장치의 인덱스 정보를 가지고 있으며, 애플리케이션이 디스크의 데이터를 접근하여 사용하는 경우가 많은데, 이 때 운영체제는 disk0를 이용하여 캐시된 데이터를 유지하고 이를 애플리케이션에 제공하는 형태로 사용할 수 있도록 하였다.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;물론 raw device는 저수준의 데이터 접근이 가능하기 때문에, mmap()함수를 통해서도 동일한 역할을 수행할 순 있다고 한다.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;결론은 dd를 이용해서 맥에서 디스크 이미징을 할려면, /dev/rdisk0 를 입력으로 받아 처리해야 된다 :-)&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6638123731661962185?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6638123731661962185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2012/02/rdisk0-vs-disk0.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6638123731661962185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6638123731661962185'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2012/02/rdisk0-vs-disk0.html' title='rdisk0 vs disk0'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6205449831824045619</id><published>2012-01-31T21:17:00.000+09:00</published><updated>2012-02-01T00:05:44.433+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Digital Forensics'/><title type='text'>iOS Forensics : SMSSearchdb.sqlitedb</title><content type='html'>&lt;b&gt;&lt;i&gt;* 이 글은 iPad2 IOS5.0.1 버전을 기준으로 작성되었기 때문에 다른 버전에서는 그 내용이 다를 수 있습니다. 혹시 다른 버전에서 본 파일이 존재하지 않는다면 댓글로 알려주시면 감사하겠습니다 :-)&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;기존에 가지고 있던 아이패드2를 이번에 나온 ios5용 탈옥으로 핵(hack)하면서 포렌식 적으로 재미난 것이 무엇이 있을까 확인해보던 중 SMS와 관련된 재미있는 내용을 확인하였다. 아이패드의 기본 사용자 계정인 mobile의 홈 디렉터리를 기준으로 '~/Library/Spotlight/' 로 이동해보면 다음과 같이 두 디렉터리를 볼 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iPad:~/Library/Spotlight mobile$ ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;com.apple.MobileSMS/ &amp;nbsp;com.apple.SpotlightTopHits/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Spotlight는 보통 아이폰의 검색 기능을 위해 존재하는 데몬으로 연락처나, 문자메시지, 지원하는 몇몇 문서 포맷에 대해, 다양한 정보를 인덱싱하여 저장하고 있는 데이터베이스이다. 고유의 포맷을 가지고 있으며, 그 포맷이 알려져 있지 않은 상태이다. 보통은 하나의 디렉터리에 Index0, Index1 이런식으로 데몬의 고유의 관리 방식에 맞춰서 다 수의 파일을 만들어두는게 일반적으로 맥에서 보았던 모습인데, IOS의 경우엔&amp;nbsp;MobileSMS라는 디렉터리가 별도로 유지되고 있었다. 디렉터의 내용은 다음과 같다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iPad:~/Library/Spotlight/com.apple.MobileSMS mobile$ ls -al&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;total 96&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x 2 mobile mobile &amp;nbsp; 170 Jan 31 18:28 ./&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x 4 mobile mobile &amp;nbsp; 136 Oct 30 15:33 ../&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- 1 mobile mobile 69632 Jan 31 18:28 SMSSearchdb.sqlitedb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- 1 mobile mobile 24576 Jan 31 18:28 SMSSearchidx.spotlight&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- 1 mobile mobile &amp;nbsp; &amp;nbsp; 0 Jan 31 18:28 updates.SMSSearch.spotlight&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;디렉터리 내부에는 sqlite 포맷의 파일 하나와 스팟라이트 포맷의 파일이 두개 존재하였다. 실제로도 각 포맷은 확장자 명에 맞는 포맷 구조를 가지고 있었다.&lt;br /&gt;&lt;br /&gt;SMSSearchdb.sqlitedb 파일을 뷰어로 확인하면 다음과 같이 나타난다.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-i7mSzAJqiM4/Tyf34-NkAhI/AAAAAAAAAPE/5DGFpnlyIug/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="229" src="http://3.bp.blogspot.com/-i7mSzAJqiM4/Tyf34-NkAhI/AAAAAAAAAPE/5DGFpnlyIug/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Contents 테이블에는 고유 ID인 ROWID와 연락처 정보(iMessage의 경우엔 메일주소도 가능)와 각각의 메시지에 대한 고유값인 GUID를 가진 external id 가 존재하였다. 그리고 대화를 나눈 사용자와 대화를 나눈 내용이 무엇인지도 기록되어 있었다. 실제 데이터를 삭제 시엔 문자 메시지도 함께 삭제되지만, sqlite의 카빙 기법은 이미 많이 알려져 있기 때문에 카빙 기술을 통해 복구할 수 있을 것이다.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;보통 맥 환경의 spotlight는 이렇게 명시적인 sqlite포맷을 가지진 않는다. 보통 스마트폰에서 사람들이 많이 하는 문자열 검색 대상이 문자 메시지이다보니 별도로 sqlite 형태의 관리를 하는 것이 아닌가하는 생각이 든다.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;현재 아이폰에서는 이 파일이 존재하는지 확인하진 않았지만, 같은 IOS 계열이기 때문에 존재할 것이라 생각된다. IOS에서 수발신한 SMS의 경우엔 많은 논문에서 보통 sms.db 파일로 Library/SMS/ 에 위치해 있는 것으로 많이 알려져 있었기 때문에, 안티-포렌식을 위해 해당 파일 자체를 제거해버리는 상황이 발생할 수 있는데,&amp;nbsp;이런 경우에 파일 복구 단계를 진행할 필요 없이 해당 파일을 추출하여 SMS를 확인할 수 있기 때문에, 분석 속도를 높이는데 도움이 될 것이라 생각한다. :)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6205449831824045619?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6205449831824045619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2012/01/ipad-forensics-smssearchdbsqlitedb.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6205449831824045619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6205449831824045619'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2012/01/ipad-forensics-smssearchdbsqlitedb.html' title='iOS Forensics : SMSSearchdb.sqlitedb'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-i7mSzAJqiM4/Tyf34-NkAhI/AAAAAAAAAPE/5DGFpnlyIug/s72-c/Capture.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-430750505337743654</id><published>2011-12-19T20:26:00.001+09:00</published><updated>2011-12-19T20:40:07.796+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Digital Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>Volafox Project: volafox 0.7 alpha 1 release</title><content type='html'>&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;정말 오랜만에 볼라폭스 새버전이 릴리즈 되었습니다. 이번 릴리즈에는 SVN을 통해 개발된 다양한 기능이 추가되었습니다. 이 글에는 0.6에서 추가된 기능을 적어보려고 합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-kZ-11mfkYGg/Tu8hijxufSI/AAAAAAAAAOk/vBPLx6lN488/s1600/volafox.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-kZ-11mfkYGg/Tu8hijxufSI/AAAAAAAAAOk/vBPLx6lN488/s1600/volafox.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;1. 64bit Kernel Support&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;볼라폭스에서 64비트 커널 기반의 메모리 이미지 분석을 지원합니다. 스노우 레오파드까지만 해도 32비트 부팅이 기본으로 되어있었기 때문에 32비트 커널에 올라온 64비트 프로세스를 분석하지 않는 이상 특별히 64비트 분석 기능을 추가할 필요가 없었습니다만, 라이언부턴 CPU가 64비트를 지원할 경우, 64비트 커널 부팅이 기본으로 설정되어 있습니다. 이에 라이언 운영체제 지원을 위해 64비트 메모리 이미지 분석 기능을 추가하였습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;2. Mac OS X Lion support&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Mac OS X Lion에서 수집한 메모리 이미지 분석을 지원합니다. 이 기능은 32비트 64비트 상관없이 가능하며, 현재까지 나온 모든 라이언 운영체제(10.7.0 ~ 10.7.2)를 지원합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;3. Automated architecture, kernel version detection&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;기존엔 해당 메모리 이미지와 맞는 커널 이미지를 함께 입력으로 받아 분석을 진행하였습니다만, 물리 메모리에 특정 오프셋에 존재하는 구조체 정보를 통해 해당 정보를 수집할 수 있습니다. 그리하여 메모리 분석을 위해 입력해주는 인자가 (메모리 이미지 명, 분석할 정보)로 줄어들게 되었습니다.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/-UiSGBYLhwvY/Tu8fUkrvzQI/AAAAAAAAAOE/N5e3dkN6m5g/s1600-h/image%25255B3%25255D.png"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;img alt="image" border="0" height="332" src="http://lh4.ggpht.com/-V_3wMugJ5ag/Tu8fVkPyYTI/AAAAAAAAAOM/Sw0J8rOzZtE/image_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="528" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;4. Generating Symbol List Database&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;기존엔 심볼 정보를 Mac OS X의 커널 이미지인 mach_kernel에서 실행 시 추출해서 분석하였습니다. 볼라폭스 0.7에선 overlay data로 DB화하여 관리합니다. 거의 대부분의 커널 심볼 정보를 저장하고 있으며, 이를 통해 볼라폭스는 메모리 이미지만 입력으로 받아도 분석을 진행할 수 있습니다. 만약 심볼 정보를 가지지 않은 경우엔 커널 이미지를 추출하여 ‘overlay_generator.py’를 이용하여 overlay data를 생성할 수 있습니다. 현재 64비트 심볼 데이터베이스는 많이 구성되지 않은 상태입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;5. Network Information&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;이제 볼라폭스는 네트워크 정보를 분석합니다. 단 아직 완벽한 상태는 아닙니다.&amp;nbsp; 실제 전체 네트워크 상태보다 20%적은 정보를 보여줍니다. 하지만 실제 외부와 연결된 네트워크 정보는 모두 표현해 줍니다. 이 기능은 계속 테스트를 진행 중이기 때문에 실험적 기능이라 할 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/-xp3QYNvOgtY/Tu8fWiphhXI/AAAAAAAAAOU/UEsGTI6sCLM/s1600-h/image%25255B8%25255D.png"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;img alt="image" border="0" height="313" src="http://lh3.ggpht.com/-ChgguOLvyb4/Tu8fXXPeOEI/AAAAAAAAAOc/ZQ2lRGebxng/image_thumb%25255B4%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="518" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;6. MMR memory format to Linear memoty format&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Mac Memory Reader를 이용하여 생성한 메모리 이미지는 Mach-O 포맷을 가지고 있습니다. 볼라폭스에는 이를 Linear Format으로 바꿔주는 flatten.py 가 내장되어 있습니다. 단, 지금은 32비트 메모리 이미지만 정상적으로 변환됩니다. 이 도구는 Mac Memory Reader 개발자인 hajime Inoue 가 직접 개발하였습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;7. Windows Binary Version Release&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;py2exe로 생성한 volafox.exe 파일을 함께 배포합니다. 이에 윈도우에 아무것도 설치되어 있지 않더라도, 볼라폭스를 동작시킬 수 있습니다. 이는 사용에 어려움을 겪는 분들을 위해 추가한 것입니다. 단 바이너리엔 overlay를 생성하는 overlay_generator.py 의 기능이나, Mac Memory Reader에서 생성한 이미지를 Linear Format으로 바꿔주는 flatten.py 의 기능은 포함되어 있지 않습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;8. Process Virtual Memory Map&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Permission&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;프로세스 가상 메모리 맵에 권한 기능을 추가하였습니다. 이 것 뿐만 아니라 프로세스와 관련된 여러 정보를 뿌려줄 예정입니다.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-SRIWG413vDo/Tu8ijCjCDpI/AAAAAAAAAOs/s9TNH1O8h9A/s1600/memory+map.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/-SRIWG413vDo/Tu8ijCjCDpI/AAAAAAAAAOs/s9TNH1O8h9A/s400/memory+map.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;SVN을 통해 개발한 기간이 길다보니 여러모로 추가된 기능이 많습니다. 사실 alpha 딱지 띄어도 될 것 같긴 하지만, 아직 안정화 단계를 거치지 않았기 때문에 넣어두었습니다.&amp;nbsp; 이제 2012년이 다가오네요. 볼라폭스에서 앞으로 할 일은 크게 두 가지 입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;1. Open File Listing/Dump&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;프로세스가 오픈한 파일의 목록을 출력하고, 해당 파일의 메모리 영역만 덤프하는 기능을 구현할 계획입니다. 본 기능은 구조체도 어느정도 찾아놓았고 조만간 구현할 예정이였는데, 금일 메일로 같이하는 member가 자신이 1월 초부터 해당 작업을 진행하겠다고 하여, 그때부터 구현이 이루어질 것 같습니다. (전 이거 말고도 할게 많기에-_-;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;2. Inline Function Hooking Detection&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;이전에도 포스팅한 적이 있습니다만, 인라인 함수 후킹 탐지 기능을 추가할 계획입니다. 방법 다 찾고 구현만 하면 되는데, 차일피일 미루다가 여기까지 와버렸네요-_-; distorm library를 사용할 계획입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;3. Hibernation Image Forensics&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;이건 forensicinsight에서 진행하고 있습니다. 자세한 내용은 이전 포스팅을 참조하세요 :)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;이 두 기능만 완료되면 볼라폭스 1.0 으로 릴리즈할 생각을 하고 있습니다. 지금까진 더 이상 기능 추가할만한게 없거든요 :) 앞으로도 할게 많네요. 다들 즐거운 저녁 되시기 바랍니다.!!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-430750505337743654?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/430750505337743654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/12/volafox-project-volafox-07-alpha-1.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/430750505337743654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/430750505337743654'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/12/volafox-project-volafox-07-alpha-1.html' title='Volafox Project: volafox 0.7 alpha 1 release'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-kZ-11mfkYGg/Tu8hijxufSI/AAAAAAAAAOk/vBPLx6lN488/s72-c/volafox.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3117389816454635344</id><published>2011-11-10T23:03:00.001+09:00</published><updated>2011-11-10T23:06:34.948+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernation image'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>Mac Hibernation Image Analysis – Part I</title><content type='html'>처음 제가 Mac OS X 메모리 분석을 할 때만 해도 분석이 가능한 수집 방법은 선형 주소 방식의 메모리 이미지인 Firewire를 이용한 수집이나 VMWare Memory Image 뿐이였습니다.&lt;br /&gt;최근에 hajime Inoue의 Mac Memory Reader(MMR)의 컨버터를 volafox에 추가하면서 이젠 하드웨어 및 소프트웨어 방식의 메모리 수집 결과를 분석할 수 있게 되었습니다.&lt;br /&gt;하지만 제 발표자료를 보셨다거나 윈도우 메모리 수집 방법에 대해 조사를 해보신 분이라면 윈도우에선 하이버네이션 이미지를 이용한 분석방법이 존재한다는 사실을 아실겁니다. 윈도우에는 hiberfil.sys가 하이버네이션 이미지를 가지고 있으며, 이를 크래시덤프 형태로 변형해서 Windbg를 통해 분석이 가능 합니다.&lt;br /&gt;사실 volafox project를 처음 개발했을 때부터 하이버네이션 이미지에 대한 분석을 고려했었습니다만, 취업과 더불어 여러가지 일이 생기면서 계속 뒤로 미루고 있었습니다. 그런데 최근에 몇몇 세미나 인원들과 얘기하면서 아는 동생의 논문 주제에 대해 얘기하다가 ‘하이버네이션 이미지 컨버터’를 만들면 충분히 논문으로 쓸만하겠다는 생각이 들어서, 그 동생에게도 알려줄겸, 지금까지 된 상황에 대해 적어보려 합니다.&lt;br /&gt;일단 Mac OS X의 하이버네이션 이미지는 애플의 휴대용 장비인 맥북, 맥북프로, 맥북에어에 기본적으로 존재하며, ‘/private/var/vm/’에 sleepimage라는 파일로 되어 있습니다. 만약 해킨토시나 맥프로, 아이맥, 맥미니에서 하이버네이션 이미지를 수집하고 싶다면, pmset 명령을 이용하여 현재 메모리의 이미지를 생성할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;VMware-Lion:vm administrator$ ls -al&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;total 262144&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 4 root&amp;nbsp; wheel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 136 Nov&amp;nbsp; 5 23:09 .&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x&amp;nbsp; 29 root&amp;nbsp; wheel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 986 Sep 25 12:40 ..&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-------&amp;nbsp;&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp; 67108864 Nov&amp;nbsp; 5 22:34 swapfile0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-------&amp;nbsp;&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp; 67108864 Nov&amp;nbsp; 5 23:08 swapfile1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;VMware-Lion:vm administrator$ sudo pmset hibernatemode 3&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;VMware-Lion:vm administrator$ ls -al&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;total 4456448&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 5 root&amp;nbsp; wheel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 170 Nov&amp;nbsp; 5 23:09 .&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x&amp;nbsp; 29 root&amp;nbsp; wheel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 986 Sep 25 12:40 ..&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="color: red;"&gt;-rw------T&amp;nbsp;&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp; 2147483648 Nov&amp;nbsp; 5 23:09 sleepimage&lt;/span&gt;-rw-------&amp;nbsp;&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp;&amp;nbsp;&amp;nbsp; 67108864 Nov&amp;nbsp; 5 22:34 swapfile0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-------&amp;nbsp;&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp;&amp;nbsp;&amp;nbsp; 67108864 Nov&amp;nbsp; 5 23:08 swapfile1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pmset의 ‘hibernatemode’ 옵션을 주고 3을 설정하면 됩니다. 아래 표는 각 인자 값에 따른 메모리 이미지 처리를 설명하고 있습니다.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;hibernatemode = 0 (binary 0000) by default on supported desktops. The system will not back memory up to persistent storage. The system must wake from the contents of memory; the system will lose context on power loss. This is, historically, plain old sleep.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;hibernatemode = 3 (binary 0011) by default on supported portables. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from disk image.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;hibernatemode = 25 (binary 0001 1001) is only settable via pmset. The system will store a copy of memory to persistent storage (the disk), and will remove power to memory. The system will restore from disk image. If you want "hibernation" - slower sleeps, slower wakes, and better battery life, you should use this setting.&lt;/span&gt;&lt;/blockquote&gt;하이버네이션 구조체에 대한 정보는 커널 소스에서도 확인할 수 있습니다.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-Kh26njZsrlg/TrvZcyWruGI/AAAAAAAAAMM/gkjp4JTbSs0/s1600-h/image5.png"&gt;&lt;img alt="image" border="0" height="208" src="http://lh6.ggpht.com/-SCHj3I3xuTI/TrvZd-Ur3sI/AAAAAAAAAMU/slxXCohl0Xk/image_thumb3.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="446" /&gt;&lt;/a&gt;&lt;br /&gt;해당 소스는 ‘iokit/IOKit/IOHibernatePrivate.h’에 위치한 헤더 파일로 하이버네이션 이미지의 헤더 정보를 가지고 있습니다. 헤더 정보를 보면 aes.h를 인클루드 하고 있으며, aes 키에 대한 정보도 가지고 있습니다. 이는 하이버네이션 이미지를 암호화할 때 AES를 사용함을 유추할 수 있습니다.&lt;br /&gt;그럼 일단 Mac OS X Lion에서 추출한 sleepimage 파일의 최상위 바이트를 확인해보도록 하겠습니다.&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/-R357pzlDo-U/TrvZewtmQYI/AAAAAAAAAMY/iouMXOugwyI/s1600-h/image%25255B10%25255D.png"&gt;&lt;img alt="image" border="0" height="224" src="http://lh6.ggpht.com/-Fnryz4xkGk4/TrvZfoMU8yI/AAAAAAAAAMg/rOcifzzPPGc/image_thumb%25255B5%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="537" /&gt;&lt;/a&gt;&lt;br /&gt;이미지 맨 처음엔 IOHibernationImageHeader 구조체 형식의 데이터가 존재합니다. 시그너처인 0x7A7A7A7A를 통해 확인할 수 있습니다.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/-1Fh9AKafjks/TrvZgw9EZGI/AAAAAAAAAMs/-pSoKE2CkRk/s1600-h/image%25255B14%25255D.png"&gt;&lt;img alt="image" border="0" height="107" src="http://lh5.ggpht.com/-0mO3yOyJDVk/TrvZiilPWFI/AAAAAAAAAM0/YQtp9WdQSiY/image_thumb%25255B7%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="391" /&gt;&lt;/a&gt;&lt;br /&gt;근데 이 시그너처가 kIOHibernateHeaderInvalidSignature입니다. 이 Invalid의 의미는 제 추측으론 현재 하이버네이션 이미지가 이전에 시스템이 하이버네이션에 들어갈 때의 이미지이기 때문에 그 때 당시 하이버네이션 이미지를 Restore하는 과정에 해당 시그너처를 0x73696d65에서 0x7a7a7a7a형태로 변경하는 것이라 생각합니다. 이를 증명하려면 시스템을 하이버네이션 상태에 진입시키고 시스템에서 하드디스크를 분리하여 이미징 후 하이버네이션 파일을 추출해서 확인하면 좀더 확실해 질 것 같습니다. 아래 코드는 “iokit/Kernel/IOHibernateIO.cpp”의 IOHibernationSystemSleep()의 내용 중 하나입니다.&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/-yP7LpRhkJUY/TrvZjp-zkVI/AAAAAAAAAM8/glhZSajHbZA/s1600-h/image%25255B18%25255D.png"&gt;&lt;img alt="image" border="0" height="209" src="http://lh4.ggpht.com/-i4yVt52gUSM/TrvZkumq1XI/AAAAAAAAANE/3Mw7lTMHYdY/image_thumb%25255B9%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="468" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;그리고 추가적으로 스크롤을 하다보면, 가시적인 텍스트를 찾을 수가 없습니다. 이는 라이언이 기본적으로 하이버네이션 이미지를 AES로 암호화하기 때문인 것 같습니다. 아래 그림은 바이트 분포도를 확인한 결과입니다. 0x00과 0xFF를 제외하고 모든 값이 0.3~0.6사이의 퍼센트를 유지하고 있습니다.&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/-dTbr3VPNKRY/TrvZlsMzyKI/AAAAAAAAANM/ungcUaGUixM/s1600-h/image%25255B30%25255D.png"&gt;&lt;img alt="image" border="0" height="138" src="http://lh3.ggpht.com/-VYq9jQpLU10/TrvZmpPJGCI/AAAAAAAAANU/jLUUpP4dyXA/image_thumb%25255B15%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="444" /&gt;&lt;/a&gt;&lt;br /&gt;하이버네이션 이미지는 AES-128로 암호화를 수행하며 IV는 코드에 박혀있습니다. 아래는 ‘iokit/Kernel/IOHibernateInternal.h’에 정의된 키 사이즈입니다.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/-vzFe_hvASMY/TrvZnNEb29I/AAAAAAAAANc/dpQMI0UXYZc/s1600-h/image%25255B22%25255D.png"&gt;&lt;img alt="image" border="0" height="185" src="http://lh6.ggpht.com/-wQKm2NNG0CA/TrvZn_3Tj1I/AAAAAAAAANk/RoEbAmVkJP8/image_thumb%25255B11%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="398" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;다음은 ‘iokit/Kernel/IOHibernateIO.cpp’에 있는 hibernate_write_image 함수에 있는&amp;nbsp; IV 정보입니다.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/-ifNh-Dhgmc0/TrvZokw19dI/AAAAAAAAANs/qAsL956jmpM/s1600-h/image%25255B26%25255D.png"&gt;&lt;img alt="image" border="0" height="191" src="http://lh4.ggpht.com/-Cm9ShfeeuLU/TrvZqNnMXhI/AAAAAAAAAN0/VPQIAGVak78/image_thumb%25255B13%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="404" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;이로서 우리가 알 수 있는 사실은 세 가지 입니다.&lt;br /&gt;&lt;strong&gt;1. 하이버네이션에 대한 물리메모리 변환 과정은 IOKit에서 수행한다.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1-1. iokit/Kernel/IOHibernateIO.cpp, iokit/Kernel/IOHibernateInternal.h, iokit/Kernel/IOHibernateIO.cpp&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;2. IOKit에 Hibernation과 관련된 코드는 오픈소스화 되어 있기 때문에 충분히 선형 주소 방식의 메모리 이미지로 변환하는 코드를 작성할 수 있을 것 같다.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;3. 하이버네이션 이미지에 실제 메모리 영역은 암호화 되어 있기 때문에 이를 복호화하는 과정이 필요하다.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;3-1. 스노우레오파드 땐 많은 양의 명시적 텍스트가 존재하였음.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;3-2. 암호화는 AES-128이며 IV는 소스코드에 박혀있다.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;3-3. 키는 키체인에 존재하거나 사용자 패스워드를 기준으로 키를 생성하는 코드를 그때그때 실행할 수 있다. 이에 대한 규명과 키를 추출할 수 있는 방안이 필요하다.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;이 내용을 기반으로 Part 2에선 좀더 진행해보도록 하겠습니다.(물론 시간이 걸리겠지만…)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3117389816454635344?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3117389816454635344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/11/mac-hibernation-image-analysis-part-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3117389816454635344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3117389816454635344'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/11/mac-hibernation-image-analysis-part-i.html' title='Mac Hibernation Image Analysis – Part I'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-SCHj3I3xuTI/TrvZd-Ur3sI/AAAAAAAAAMU/slxXCohl0Xk/s72-c/image_thumb3.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8961500022634681364</id><published>2011-09-18T23:49:00.001+09:00</published><updated>2012-02-01T00:06:13.299+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>volafox Project: 개발 현황</title><content type='html'>오랜만에 포스팅합니다. 그간 회사 일과 다양한 외부 프로젝트를 준비 중이다보니 포스팅이 뜸하게 되었네요.&lt;br /&gt;현재 0.6버전 이 후에도 계속 개발되고 있으며 많은 점이 바뀌고 있습니다.&lt;br /&gt;대표적으로 변경된 점은 다음과 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. 네트워크 정보 추출 기능&lt;/strong&gt;&lt;br /&gt;현재 이 기능은 베타로 모든 데이터를 가져오진 못하고 있습니다. 하지만 네트워크 정보가 휘발성 정보이기 때문에, 침해사고 발생 시 유용하게 사용될 수 있을 것 같아서 일단 추가는 해 두었습니다.(아직 버그가 존재합니다.)&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-BtTfr9YPY64/TnYE-CKTENI/AAAAAAAAALw/I4ba1b3c_nw/s1600-h/image%25255B4%25255D.png"&gt;&lt;img alt="image" border="0" height="150" src="http://lh4.ggpht.com/-06LK-LIskrE/TnYE_psDJ9I/AAAAAAAAAL0/uYoqmGWNqsU/image_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom-color: initial; border-bottom-style: initial; border-bottom-width: 0px; border-left-color: initial; border-left-style: initial; border-left-width: 0px; border-right-color: initial; border-right-style: initial; border-right-width: 0px; border-top-color: initial; border-top-style: initial; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. 커널 심볼 정보의 DB화(overlays)&lt;/strong&gt;&lt;br /&gt;이 방법은 Chris Leats가 제게 보내준 것으로, 커널 이미지에서 추출한 심볼 정보를 미리 생성하여 보관하여 필요에 따라 overlay 데이터를 바로 끌어다 사용할 수 있게 해주는 기능이라 할 수 있습니다. 이로인해 분석 속도를 획기적으로 높일 수 있었습니다. pickle 라이브러리로 간단하게 구현할 수 있었습니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. 메모리 이미지 내에서 커널 버전 정보 추출&lt;/strong&gt;&lt;br /&gt;이 방법도 Chris Leats가 알려준 유용한 내용입니다.(Thx Chris Leats :) ) 가상 주소 0x2000에 존재하는 eyecatcher(‘Catfish’)를 이용하여 오프셋에 위치한 운영체제 버전 정보, 다윈 커널 버전 정보, KEXT 시작 주소 정보를 획득할 수 있습니다. 시그너처를 탐색하여 운영체제 버전 정보를 획득하면, 해당 메모리 이미지에 맞는 Overlay 데이터를 알려줄 수 있기 때문에, 분석하는 입장에서 맥 운영체제의 버전 정보를 별도로 얻을 필요가 없어지게 됩니다. 이러한 점은 맥 메모리 포렌식의 무결성을 높여줄 수 있는 요소가 되었습니다.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-DcwbeeB5LEE/TnYFA_uQlBI/AAAAAAAAAL4/XmIBLNEjkaA/s1600-h/image%25255B10%25255D.png"&gt;&lt;img alt="image" border="0" height="84" src="http://lh4.ggpht.com/-O-k6npP4sdk/TnYFBrQbCvI/AAAAAAAAAL8/-zws7FEkysk/image_thumb%25255B6%25255D.png?imgmax=800" style="background-image: none; border-bottom-color: initial; border-bottom-style: initial; border-bottom-width: 0px; border-left-color: initial; border-left-style: initial; border-left-width: 0px; border-right-color: initial; border-right-style: initial; border-right-width: 0px; border-top-color: initial; border-top-style: initial; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Mac Memory Reader를 이용하여 추출한 메모리 이미지 분석 기능&lt;/strong&gt;&lt;br /&gt;기존 volafox는 linear한 맥 메모리 만을 분석할 수 있었습니다. 이는 Firewire로 추출한 메모리 또는 vmware상의 맥에 대한 메모리 이미지 분석만을 할 수 있게되어 분석 범위에 한계를 가지게 되는 문제가 있었습니다.(맥북에어나 맥북은 firewire가 없음). 이번에 Mac Memory Reader에서 추출한 정보의 분석 기능이 추가됨에 따라 이제 아무런 문제 없이 모든 맥의 메모리 정보를 분석할 수 있습니다.&lt;br /&gt;&lt;br /&gt;이것 외에도 추가적인 여러 기능을 추가 중에 있습니다. 그리고 새로운 소식도 있습니다. 뉴욕에 거주 중인 Forensic Researcher 두 분(@hajimeinoue, @osxmem)이 volafox project에 함께하고 있습니다. 맥 쪽으로 연구를 많이 하는 친구들이기 때문에 여러모로 도움이 많이 될 듯 합니다. :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8961500022634681364?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8961500022634681364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/09/volafox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8961500022634681364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8961500022634681364'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/09/volafox.html' title='volafox Project: 개발 현황'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-06LK-LIskrE/TnYE_psDJ9I/AAAAAAAAAL0/uYoqmGWNqsU/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2639325745536395965</id><published>2011-08-08T22:49:00.006+09:00</published><updated>2012-02-01T00:05:16.589+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volafox'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>volafox project: Gathering network information in Mac OS X memory image</title><content type='html'>FreeBSD의 네트워크 정보 추출을 베이스로하여 Mac OS X의 네트워크를 구현하였는데 여러가지 차이점이 존재합니다. 애플도 BSD커널을 그대로 사용하진 않았네요.ㅎ&lt;br /&gt;우선 Mac OS X의 네트워크 정보는 커널 심볼 중 '_tcbinfo'와 '_udbinfo'에 존재합니다. 심볼 이름은 유사하지만, 큰 차이점은 두 심볼이 64비트 주소체계를 가지고 있기 때문에 volatility의 32비트 분석모듈로는 데이터 분석이 올바르게 되지 않습니다&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-MacBook-Pro:volafox_0.6_beta1_fixed1 n0fate$ nm /mach_kernel | grep tcbinfo&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ffffff800088af60 S _tcbinfo&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-MacBook-Pro:volafox_0.6_beta1_fixed1 n0fate$ nm /mach_kernel | grep udbinfo&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ffffff800088b5c0 S _udbinfo&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-MacBook-Pro:volafox_0.6_beta1_fixed1 n0fate$&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(사실 32비트 주소 변환 테이블에 돌려도 되긴합니다. 맥의 심볼 정보에선 64비트 주소체계더라도 PML4 형식에 맞춰 하위 48비트 주소를 이용하는데, 이 중 상위 16바이트는 사실상 없어도 크게 문제가 없는 듯 합니다. 아무래도 커널 자체가 32비트로 로딩되다보니, 32비트 페이지맵과 64비트 페이지맵 둘다 맵핑 가능하도록 구현된 것 같습니다.)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-o9r_gAX2Guw/Tj_tzzL4pKI/AAAAAAAAALk/7npJKkPrGPs/s1600/090624212018.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://3.bp.blogspot.com/-o9r_gAX2Guw/Tj_tzzL4pKI/AAAAAAAAALk/7npJKkPrGPs/s400/090624212018.jpeg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;amp;amp;lt;PML4의 페이지 맵핑 구조&amp;amp;amp;gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;여튼 이러한 점이 존재하여 공식적으론 PML4로 맵핑하여 분석해야합니다. volafox에는 프로세스 덤프 때문에 구현한 PML4 주소변환테이블 파싱모듈이 있기 때문에 이 부분은 쉽게 해결하였습니다.&lt;br /&gt;&lt;br /&gt;FreeBSD 메모리에서 네트워크 정보를 추출할 때 언급한적이 있지만, 네트워크 정보는 리스트 형태의 정보와 해시테이블형태로 관리되고 있습니다. BSD의 경우 inpcb 구조체 상의 리스트 정보를 조작하여, 네트워크 정보를 은닉할 수 있었지만, 해시 테이블을 제거할 경우 네트워크 세션자체가 단절되어버리기 때문에, 해시테이블을 이용하면 루트킷의 은닉 기법을 회피하여 정보를 획득할 수 있었습니다. 이는 맥에서도 BSD 컴포넌트를 통해 동일한 형태(?)로 접근가능하도록 되어 있습니다. 아래 그림은 맥 운영체제의 해시테이블의 구조입니다.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cNRWbFAty-c/Tj_q78janoI/AAAAAAAAALg/ZNxzWI3XehQ/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-08-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+10.55.16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/-cNRWbFAty-c/Tj_q78janoI/AAAAAAAAALg/ZNxzWI3XehQ/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-08-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+10.55.16.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;처음에 언급한 심볼인 '_tcbinfo','_udbinfo'는 실제로 inpcbinfo구조체로 되어 있으며, 해당 구조체 중 첫 번째 4바이트 포인터가 해시테이블을 가리키고 있습니다. 그리고 구조체의 8바이트 뒤에 위치한 hashmask가 해시 테이블의 갯수를 나타냅니다. 해시 테이블을 기본적으로 4바이트 크기를 가지고 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Geneva, Helvetica, Arial, Swiss, SunSans-Regular; font-size: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-family: Courier, 'Courier New', monospace; font-size: 12px;"&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L430" name="L430"&gt;430&lt;/a&gt; struct &lt;a href="http://fxr.watson.org/fxr/ident?v=xnu-1456.1.26;i=inpcbinfo"&gt;inpcbinfo&lt;/a&gt; {              &lt;b&gt;&lt;i&gt;/* XXX documentation, prefixes */&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L431" name="L431"&gt;431&lt;/a&gt;         struct  &lt;a href="http://fxr.watson.org/fxr/ident?v=xnu-1456.1.26;i=inpcbhead"&gt;inpcbhead&lt;/a&gt; *hashbase;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L432" name="L432"&gt;432&lt;/a&gt; #ifdef __APPLE__&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L433" name="L433"&gt;433&lt;/a&gt;         u_int32_t       hashsize; &lt;b&gt;&lt;i&gt;/* in elements */&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L434" name="L434"&gt;434&lt;/a&gt; #endif&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L435" name="L435"&gt;435&lt;/a&gt;         u_long  hashmask;       &lt;b&gt;&lt;i&gt;/* needs to be u_long as expected by hash functions */&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L436" name="L436"&gt;436&lt;/a&gt;         struct  inpcbporthead *porthashbase;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L437" name="L437"&gt;437&lt;/a&gt;         u_long  porthashmask;   &lt;b&gt;&lt;i&gt;/* needs to be u_long as expected by hash functions */&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L438" name="L438"&gt;438&lt;/a&gt;         struct  &lt;a href="http://fxr.watson.org/fxr/ident?v=xnu-1456.1.26;i=inpcbhead"&gt;inpcbhead&lt;/a&gt; *listhead;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L439" name="L439"&gt;439&lt;/a&gt;         u_short lastport;&lt;br /&gt;  &lt;a href="http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L440" name="L440"&gt;440&lt;/a&gt;         u_short lastlow;&lt;/pre&gt;&lt;pre style="font-family: Courier, 'Courier New', monospace; font-size: 12px;"&gt;&lt;/pre&gt;&lt;pre style="font-family: Courier, 'Courier New', monospace; font-size: 12px;"&gt;(reference: http://fxr.watson.org/fxr/source/bsd/netinet/in_pcb.h?v=xnu-1456.1.26#L426)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;두 번째 문제는 이 해시테이블을 통한 정보 추출에서 해시셋의 크기까지는 올바르게 나오는 것 같은데 해당 정보를 기반으로 데이터를 추출하면 실제 존재하는 세션 갯수보다 적은 수를 추출하는 문제가 발생합니다.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-MacBook-Pro:volafox_0.6_beta1_fixed1 n0fate$ python volafox.py -i mem.mem -s mach_kernel -o net_info&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Memory Image: mem.mem&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Kernel Image: mach_kernel&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Information: net_info&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-= NETWORK INFORMATION (hashbase) =-&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ipi_count: 11&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 0.0.0.0:22, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 172.16.43.135:53, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 127.0.0.1:54, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 172.16.43.135:22, Foreign Address: 172.16.43.1:49422, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 0.0.0.0:311, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 0.0.0.0:625, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 127.0.0.1:631, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[TCP] Local Address: 172.16.43.135:22, Foreign Address: 172.16.43.1:52918, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ipi_count: 35&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:53232, Foreign Address: 127.0.0.1:0, flag: 40088000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:55297, Foreign Address: 0.0.0.0:0, flag: 808300&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:59490, Foreign Address: 0.0.0.0:0, flag: 808300&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:62853, Foreign Address: 0.0.0.0:0, flag: 808300&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:60439, Foreign Address: 127.0.0.1:0, flag: 40088000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:65241, Foreign Address: 0.0.0.0:0, flag: 808300&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 127.0.0.1:60762, Foreign Address: 0.0.0.0:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 172.16.43.135:123, Foreign Address: 17.83.253.7:0, flag: 8000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:63852, Foreign Address: 0.0.0.0:0, flag: 808300&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[UDP] Local Address: 0.0.0.0:51326, Foreign Address: 0.0.0.0:0, flag: 808300&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;출력된 정보 중 ipi_count가 실제 세션의 갯수입니다. 이 갯수는 실제로 맥에서 netstat 명령으로 출력된 세션 정보와 동일합니다. 밤에 두시간 삽질을 해보긴 했는데 왜 실제보다 적은 데이터를 추출하는지에 대해서는 문제의 원인을 정확히 찾지 못하고 있습니다.&lt;br /&gt;좀더 확인해보고 정 안되겠다 싶으면 리스트 기반의 정보 추출을 병행하도록 구현하는 수 밖에 없을 것 같습니다(아직 이 방법으로도 올바르게 추출되는지는 확인못했습니다).&lt;br /&gt;&lt;br /&gt;아마 본 작업이 완료되면, volafox alpha2라는 이름으로 릴리즈 될 것 같습니다. 요즘들어 업데이트가 많이 느려졌네요 ㅎㅎ.&lt;br /&gt;&lt;br /&gt;다들 좋은 저녁되시기 바랍니다!&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2639325745536395965?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2639325745536395965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/08/volafox-project-gathering-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2639325745536395965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2639325745536395965'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/08/volafox-project-gathering-network.html' title='volafox project: Gathering network information in Mac OS X memory image'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-o9r_gAX2Guw/Tj_tzzL4pKI/AAAAAAAAALk/7npJKkPrGPs/s72-c/090624212018.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2714712275802247599</id><published>2011-07-24T20:30:00.004+09:00</published><updated>2011-07-24T21:29:49.703+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volafox'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Digital Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='volafunx'/><title type='text'>volafox project: distorm library</title><content type='html'>distorm library는 Intel &amp;amp; AMD 환경의 코드의 디스어셈블 기능을 제공하는 라이브러리로 상용과 프리웨어로 나뉩니다. volafox project에서 해당 내용을 다루는 이유는 이전 포스트에 설명했던 인라인 함수 후킹을 탐지하기 위한 방안인 각 시스템 콜 영역의 해시 값을 산출하여 비교하는 방법에 이용하기 위함입니다.&lt;br /&gt;코드의 시작 부분은 문제가 되지 않지만, 코드의 끝을 의미하는 RETN의 명령을 올바르게 해석하기 위해선 디스어셈블을 통해 RETN에 해당 하는 코드인 C3이 opcode인지 operand인지 확인하는 부분이 필요하기 때문입니다.&lt;br /&gt;이에 본 포스팅에서는 간단하게 distorm을 이용하여 특정 콜 넘버의 함수를 디스어셈블 하는 과정을 담도록 하겠습니다.&amp;nbsp;참고로 distorm library의 설치는 'setup.py install'을 통해 간단히 설치할 수 있습니다(맥과 윈도우에서 테스트 되었습니다).&lt;br /&gt;&lt;img alt="distorm1.png" border="0" height="123" src="http://lh4.ggpht.com/-2f4oYNhGyyA/Tiv9o_ChVII/AAAAAAAAALA/mD87uV27tf8/distorm1.png?imgmax=800" title="distorm1.png" width="400" /&gt;&lt;br /&gt;Mac에서 에디터로 작업하다보니 코드가 깔끔하게 붙지 않아서 그냥 이미지로 올립니다.&lt;br /&gt;&lt;br /&gt;위 함수의 인풋인자는 리스트 구조의 심볼 목록과 시스템 콜 넘버를 받습니다.&amp;nbsp;콜 넘버가 일치하면 해당 시스템 콜 테이블의 시스템 콜 함수의 주소 값을 가지는 'sysent[call_number].sy_call' 의 커널 가상 주소로부터 300바이트의 데이터를 &amp;nbsp;받아옵니다. 그리고 읽은 데이터를 32비트형태의 디스어셈블 코드로 디코딩 하여 리스트 l에 저장합니다. 여기서 Decode16Bits로 하면 16비트 instruction으로 해석하며 Decode64Bits로 하면 64비트 Instruction으로 해석합니다.&lt;br /&gt;Decode 함수의 첫번째 인자는 차 후 각 명령어에 대한 올바른 가상 주소를 표현하기 위한 Base Address를 지정합니다. 위의 예에선 'sysent[call_number].sy_call' 가 베이스 주소가 됩니다.&lt;br /&gt;l 리스트의 한 레코드의 각 블럭 정보는 다음과 같습니다.&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;[Base Address+Code Offset][sizeof(raw_code)][raw_code][Decoded Disassemble Instruction]&lt;/span&gt;&lt;/em&gt;&lt;/blockquote&gt;이런 정보를 잘 정리해서 뿌려주는게 위의 코드가 되겠습니다. 해석 종료는 '해석한 디스어셈블 명령'이 RET인지를 체크하여 결정합니다.&lt;br /&gt;위의 과정을 통해 2번째 시스템 콜(fork)을 해석한 화면은 아래와 같습니다.&lt;br /&gt;&lt;img alt="distorm2.png" border="0" height="283" src="http://lh6.ggpht.com/-krL1MvYWmAE/TiwB5dd8ETI/AAAAAAAAALI/ssWbkxRtO8M/distorm2.png?imgmax=800" title="distorm2.png" width="400" /&gt;&lt;br /&gt;코드가 정상적으로 동작하는 것을 확인할 수 있습니다.&lt;br /&gt;해당 모듈은 아직 volafox project에 추가하지 않았습니다. 현재 이것저것 다른 일을 수행하다보니 우선은 inline function hooking 탐지 모듈이 완벽하게 구현되면 업로드할 예정입니다. distorm library를 설치함으로 인해 예전 volafox project의 장점인 python만 설치하고 동작할 수 있는 간결성은 떨어졌지만, 현존하는 시스템 콜 함수 후킹 기법을 모두 탐지할 수 있기 때문에 루트킷 탐지에 더욱 효율성이 높아질 수 있을 것이라 생각합니다.&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2714712275802247599?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2714712275802247599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/07/volafox-project-distorm-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2714712275802247599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2714712275802247599'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/07/volafox-project-distorm-library.html' title='volafox project: distorm library'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-2f4oYNhGyyA/Tiv9o_ChVII/AAAAAAAAALA/mD87uV27tf8/s72-c/distorm1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2445834213236363471</id><published>2011-07-05T09:57:00.004+09:00</published><updated>2012-02-01T00:05:16.581+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volafox'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='volafunx'/><title type='text'>volafox project: inline function hooking detection</title><content type='html'>volafox 프로젝트로 만들어진 도구에서 시스템 콜을 조작하는 루트킷의 정보 변조 기법을 탐지하기 위해 업데이트를 하고 있습니다.&lt;br /&gt;사실 단순히 시스템 콜의 핸들러 주소를 변경하는 System call Hooking은 현재 해당 프로젝트에서도 어느정도 탐지해 낼 수 있습니다만, inline function hooking 기술의 경우엔 시스템 콜 함수의 포인터 주소를 변형하는 기술이 아닌 함수 자체에 앞의 x 바이트를 변조시키거나 함수 전체를 evil stuff code를 덮어버리는 형식으로 진행되는 것이라, 코드 자체에 대한 변조 여부를 탐지해야 합니다.&lt;br /&gt;해당 기술을 탐지하기 위해 volafox 프로젝트에 추가될 내용은 다음과 같습니다.&lt;br /&gt;&lt;blockquote&gt;아래부터는 FreeBSD 메모리 분석 도구인 volafunx를 기준으로 설명합니다. 본 기법을 BSD기반에 먼저 적용하고 효과가 있으면 맥용 도구에도 적용할 예정입니다.&lt;/blockquote&gt;syscall_info에 KLD 목록 출력 시 사용했던 -v옵션을 적용하여, 활성화 시 inline function hooking을 탐지하기 위해 커널 이미지에서 추출한 시스템 콜 핸들러 주소(커널 이미지 내의 심볼 정보)와 코드 베이스 주소(커널 이미지 헤더에 정의), 그리고 커널이 로드된 주소(일반적으로 0xC0000000)을 이용하여, 각 심볼에 맞는 코드 영역을 추출하여, 해시 값을 산출하여, 시스템 콜의 핸들러 함수의 해시 값과 비교하는 방법을 구현할 예정입니다.&lt;br /&gt;커널 이미지와 메모리 이미지 상의 시작 주소와 끝 주소는 다음과 같이 정의합니다.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;커널 이미지 상의 시작 주소: 시스템 콜 핸들러 주소 - 커널이 로드된 주소 -코드 베이스 주소&lt;/li&gt;&lt;li&gt;커널 이미지 상의 끝 주소: 읽은 코드 바이트가 &lt;s&gt;C3(&lt;/s&gt;retn&lt;s&gt;)&lt;/s&gt;인 경우, 코드의 끝으로 정의&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;메모리 이미지 상의 시작 주소: sysent 구조체의 핸들러 함수의 주소&lt;/li&gt;&lt;li&gt;메모리 이미지 상의 끝 주소: 커널 이미지 상의 끝 주소를 판단하는 방법과 동일&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;해당 정보를 이용하면 inline function hooking의 변조를 탐지할 수 있을 것으로 생각됩니다.(물론 좀더 확인할 필요는 있습니다.) 단지 이 방법은 성능이 엄청나게 떨어지는 문제가 있기 때문에 미리 커널에서 정보를 빼내 xml 형태로 구성하여 메모리 분석 도구 자체는 xml에서 정보를 읽어들여 분석하는 방법도 생각하고 있습니다.(사실 이 부분은 전부터 생각했던 문제인데, 자꾸 손을 안대고 있네요. 지금도 volafunx는 커널 이미지에서 심볼 가져오는게 엄청 느리지요. 저의 발적화로 인해 xD)&lt;br /&gt;본 기능에 대한 이론적인 베이스는 정리가 되었으니 구현만 하면 될 것 같습니다. 조만간 좀더 강력해진 도구를 보여드릴 수 있겠네요 :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2445834213236363471?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2445834213236363471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/07/volafox-project-inline-function-hooking.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2445834213236363471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2445834213236363471'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/07/volafox-project-inline-function-hooking.html' title='volafox project: inline function hooking detection'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5397968820610410744</id><published>2011-06-19T15:10:00.004+09:00</published><updated>2012-02-01T00:05:16.606+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volafox'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>volafox: TODO</title><content type='html'>아시는 분들은 아시겠지만 볼라폭스가 이번에 백트랙(BackTrack) &lt;a href="http://redmine.backtrack-linux.org:8080/issues/101"&gt;Repository&lt;/a&gt;에 추가되었습니다.&lt;br /&gt;아무래도 &lt;a href="http://computer.forensikblog.de/en/2011/06/mac_os_x_memory_analysis_with_volafox.html"&gt;외국 유명 포렌식 블로그&lt;/a&gt;에 추가된 영향이 큰 것 같습니다. :)&lt;br /&gt;기분이 좋긴하지만 부담도 상당하네요.&lt;br /&gt;최근에 아이패드를 구매하면서 마인드맵도 구매하고 첫번째로 한 작업이 volafox에서 지금까지 추가한 내용과 앞으로 할일을 정리하였습니다.&lt;br /&gt;&lt;br /&gt;&lt;img alt="스크린샷 2011 06 19 오후 3 06 44" border="0" height="347" src="http://lh4.ggpht.com/-eJW10PpnR9I/Tf2SzkIUcZI/AAAAAAAAAI8/elDdkrRvqyM/%25253F%25253F%25253F%25253F%25253F%25253F%25253F%25253F%25253F%25253F%2525202011-06-19%252520%25253F%25253F%25253F%25253F%2525203.06.44.png?imgmax=800" title="스크린샷 2011-06-19 오후 3.06.44.png" width="400" /&gt;&lt;br /&gt;우선은 volafunx에서 구현한 내용을 토대로 추가할 것만을 작성하였습니다. 앞으로 해당 내용을 기반으로 기능 추가가 이어질 예정입니다.&lt;br /&gt;추가적으로 각 기능을 저 혼자하기엔 직장도 있고해서 포렌식 전문가 한분이 함께 co-work을 하기로 하였습니다 실력자이시기에 큰 도움이 될 것 같습니다 :)&lt;br /&gt;아 축구 시작했네요. 저번 올림픽 축구는 경기가 상당히 지루하던데, 이번 경기는 재밌었으면 좋겠습니다. :)&lt;br /&gt;다들 즐거운 일요일 되시기 바랍니다!!&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5397968820610410744?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5397968820610410744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/06/volafox-todo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5397968820610410744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5397968820610410744'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/06/volafox-todo.html' title='volafox: TODO'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-eJW10PpnR9I/Tf2SzkIUcZI/AAAAAAAAAI8/elDdkrRvqyM/s72-c/%25253F%25253F%25253F%25253F%25253F%25253F%25253F%25253F%25253F%25253F%2525202011-06-19%252520%25253F%25253F%25253F%25253F%2525203.06.44.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8243914432483959954</id><published>2011-05-22T22:09:00.005+09:00</published><updated>2011-05-22T22:17:13.217+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='volafunx'/><title type='text'>volafunx 0.2 beta2 Release</title><content type='html'>뒤늦게 글을 올리네요. volafunx 0.2 베타2가 지난번에 릴리즈 되었습니다. 이번 버전의 특징은 다음과 같습니다.&lt;br /&gt;&lt;br /&gt;도구 링크: &lt;a href="http://code.google.com/p/volafox/downloads/detail?name=volafunx-0.2-beta2.zip"&gt;volafunx 0.2 beta2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* 프로세스 목록 추출: 기존의 리스트 기반 추출에서 해시 테이블 기반 추출 기능 추가&lt;br /&gt;* 프로세스 덤프를 프로세스 은닉 기능에 대응할 수 있는 해시 테이블 기반으로 수정&lt;br /&gt;* 네트워크 정보 추출: 리스트 기반 추출에서 해시 테이블 기반 추출 기능 추가&lt;br /&gt;* 네트워크 정보의 IP 출력 기능 추가&lt;br /&gt;&lt;br /&gt;기존 프로세스 및 네트워크 정보 추출 기능은 루트킷이 리스트를 제거하는 기법을 통해 우회가 가능했었는데요. 문제를 보완하기 위해 또다른 탐지 방법인 해시테이블을 통한 검색을 추가하였습니다.&lt;br /&gt;&lt;br /&gt;해시 테이블은 프로세스 및 네트워크 정보를 빠르게 수집하기 위해 캐시와 같이 섹터크기부터 클러스터 크기 정도의 영역에 각 프로세스 또는 네트워크 구조체의 커널 주소 영역을 int형 배열 형태로 정리해 둔 테이블입니다. 이에 커널 또는 콘솔 상의 몇몇 명령어들이 속도 향상을 목적으로 해당 명령어를 사용하는데요. volfunx 0.2 베타2에서도 이제 해당 정보를 추출하여 정보를 뽑아오도록 하였습니다.&lt;br /&gt;&lt;br /&gt;그럼 이 정보로 프로세스나 네트워크 정보의 완전 무결성을 보장할 수 있냐고 물으신다면, 절반은 'yes'라고 대답하겠습니다.&lt;br /&gt;&lt;br /&gt;왜 절반이냐면, 네트워크 정보는 보장할 수 있지만(시스템 콜 후킹을 하지 않았다는 전제하에..) 프로세스는 해당 기법을 우회하는 루트킷의 은닉 기법이 존재하기 때문입니다.&lt;br /&gt;&lt;br /&gt;본래 bsd(뭐 리눅스도 동일할 겁니다.)는 작업 관리를 task 단위로 수행합니다. 즉 프로세스 관리 구조체인 proc는 실제 구동 후에는 크게 상관이 없게 되는 것이죠. 이에 프로세스를 최초 로드할 때 proc 구조체를 생성하고 난 후에는 task 정보를 스케쥴링에 이용한다고 생각하면 됩니다.&lt;br /&gt;&lt;br /&gt;스레드 구조체로 관리할 수도 있다고 생각했는데, 이도 아닌 것으로 확인되었습니다. 적어도 bsd는 스레드에 대한 별도의 체인을 유지하고 있진 않으며, 각 proc 구조체에 있는 thread링크 체인은 해당 프로세스 내부의 스레드 체인만을 관리하고 있습니다. 커널 이미지 내의 thread0 또한 커널 프로세스의 스레드 시작 주소만을 저장하고 있기 때문에, 해당 정보를 이용해서는 모든 프로세스의 정보를 추출할 순 없게 되는 것이지요.&lt;br /&gt;&lt;br /&gt;결론적으로 프로세스 은닉을 완벽하게 탐지하기 위해서는 task 구조체의 정보를 추출해야 합니다. 이를 위해서는 커널 이미지의 task_queue를 추적하는 방안을 생각하고 있습니다. 커널 이미지는 다 수의 task_queue를 배열로 관리하기 때문에, 해당 내용을 좀더 분석하면 좋은 결과를 얻을 수 있을 것이라 생각합니다.&lt;br /&gt;&lt;br /&gt;네트워크 정보의 경우엔 네트워크 연결 및 전송을 해시테이블을 이용하여 수행하므로 루트킷에서 함부로 링크를 제거할 수 없습니다. 이에  현재로서는 별도의 업데이트의 필요성을 느끼지 않고 있습니다.&lt;br /&gt;&lt;br /&gt;이제 슬슬 해당 작업을 시작해야 하는데, 다른 일들이 있다보니 아직은 시작하지 못하고 있네요. 우선 구글링 결과로는 해당 기법이 나와있지 않으니, 도구화해서 잘 증명하면 괜찮은 탐지 기술이 될 것 같습니다.&lt;br /&gt;&lt;br /&gt;이로써 volafunx는 크게 2가지 일이 남았네요.&lt;br /&gt;&lt;br /&gt;1. task기반 프로세스 은닉 탐지 기술&lt;br /&gt;2. 프로세스 및 네트워크 정보 카빙 기술&lt;br /&gt;&lt;br /&gt;사실상 이 정도만 구현되면, 그 다음 링크된 파일 추출 기술 같은 것은 천천히 구현해도 될 것 같습니다. 생각해둔 아이디어는 많은데 시간이 없네요. cowork할 시점이 다가오는 것 같습니다. :)&lt;br /&gt;&lt;br /&gt;역시 일요일에 포스팅을 하니 좀더 여유있게 글을 쓸 수 있네요. 이제 다른 삽질을 하러 가봐야겠습니다. 좋은 저녁 되시길! :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8243914432483959954?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8243914432483959954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/05/volafunx-02-beta2-release.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8243914432483959954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8243914432483959954'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/05/volafunx-02-beta2-release.html' title='volafunx 0.2 beta2 Release'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8666281662937643157</id><published>2011-05-01T22:42:00.009+09:00</published><updated>2011-05-09T11:35:55.792+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rootkit'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>FreeBSD Rootkit Part1 - Understanding KLD &amp; Skeleton Code</title><content type='html'>FreeBSD는 현재 리눅스 2.6 커널과 마찬가지로, 단일 커널에 주요 기능을 부여하고, 3rd party 개발자가 추가로 원하는 기능이나 디바이스 드라이버를 손쉽게 추가하기 위해 동적 커널 링커를 제공한다. 동적 커널 링커를 연결함으로 시스템에 새로운 모듈을 추가하더라도 별도의 시스템 재부팅이 필요하지 않아 개발자 뿐만 아니라 서버 관리자에게 개발 편의성과 서버의 가용성을 높인다.&lt;br /&gt;&lt;br /&gt;동적 커널 링커는 리눅스와 BSD 그리고 Mac OS X에서 각각 다른 이름으로 불리지만, 기능이 거의 유사하기 때문에 커널의 메모리 영역을 접근할 수 있고 루트 권한으로 작동한다는 점을 이용하여, 악의적인 사용자들은 루트킷의 다양한 테크닉을 적용하기 위한 목적으로 사용되고 있다. 이에 지속적인 블로그 포스팅을 통해 루트킷 기법을 설명하고 이를 방어하기 위한 다양한 방법에 대해 생각해보고자 한다. 금일은 간단하게 KLD를 이해하고 뼈대 코드를 작성하는 시간을 가지도록 하겠다.&lt;br /&gt;&lt;br /&gt;KLD는 FreeBSD 3.x 시절에 LKM(Loadable Kernel Module)로 불리던 것으로 KLD로 변경되면서 현재와 같이 하나의 링커 파일에 다양한 모듈이 추가될 수 있다. 이는 BSD에서 로드된 동적 커널 링커의 목록인 kldstat를 이용하여 확인할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;pre class="bash" name="code"&gt;[n0fate@FreeBSD ~/rootkit/basic]$ kldstat -v&lt;br /&gt;Id Refs Address    Size     Name&lt;br /&gt;1    1 0xc0400000 bd97b4   kernel (/boot/kernel/kernel)&lt;br /&gt;Contains modules:&lt;br /&gt;Id Name&lt;br /&gt;94 ataraid&lt;br /&gt;364 if_lo&lt;br /&gt;351 elf32&lt;br /&gt;352 shell&lt;br /&gt;336 pseudofs&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;이러한 커널 링커의 특징으로 여러 모듈을 각각 로드할 필요 없이, 하나의 컴포넌트(링커 파일)로 생성하여 관리할 수 있어 관리의 효용성을 높일 수 있다. 이 외에도 LKM과 KLD의 차이점에 대한 내용은 FreeBSD 포럼에 올라온 &lt;a href="http://www.kr.freebsd.org/doc/KLD-Programming/"&gt;동적 커널 링커(KLD) 프로그래밍 튜토리얼&lt;/a&gt;을 통해 확인할 수 있다. 링크의 사이트에도 추가적인 skeleton code를 제공하고 기본 코드 작성을 위해 세세하게 코드를 설명하였기 때문에, 개발에 관심이 있다면 해당 문서를 탐독하는 것도 공부에 도움이 될 수 있다. 단 FreeBSD 4.0을 기반으로 작성하였기 때문에 약간 변경된 점이 있다는 것은 고려해야 할 것이다. &lt;br /&gt;&lt;br /&gt;이제 실제 FreeBSD의 코드를 확인해 보자. 모든 코드는 FreeBSD 7~8까지 호환될 것으로 생각한다. 실제 개발을 하면서 보고 싶다면, FreeBSD 설치 시 Developer버전으로 설치하는 것이 좋다.&lt;br /&gt;&lt;br /&gt;&lt;pre class="cpp" name="code"&gt;#include &amp;lt;sys param.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys module.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys kernel.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys systm.h&amp;gt;&lt;br /&gt;&lt;br /&gt;static int&lt;br /&gt;load(struct  module* module, int cmd, void *arg)&lt;br /&gt;{&lt;br /&gt; int error = 0;&lt;br /&gt;&lt;br /&gt; switch(cmd) {&lt;br /&gt; case MOD_LOAD:&lt;br /&gt;  uprintf("load\n");&lt;br /&gt;  break;&lt;br /&gt; &lt;br /&gt; case MOD_UNLOAD:&lt;br /&gt;  uprintf("unload\n");&lt;br /&gt;  break;&lt;br /&gt;&lt;br /&gt; default:&lt;br /&gt;  error = EOPNOTSUPP;&lt;br /&gt;  break;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return error;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static moduledata_t hello_mod = {&lt;br /&gt; "hello",&lt;br /&gt; load,&lt;br /&gt; NULL&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;DECLARE_MODULE(hello, hello_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;코드를 컴파일하기 위한 Makefile은 다음과 같다.&lt;br /&gt;&lt;br /&gt;&lt;pre class="cpp" name="code"&gt;SRCS = hello.c&lt;br /&gt;KMOD = hello&lt;br /&gt;&lt;br /&gt;.include &amp;lt;bsd.kmod.mk&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;빌드는 간단히 make를 통해 가능하며, kldload ./hello.ko 를 통해 모듈을 로드할 수 있다.&lt;br /&gt;&lt;pre class="shell" name="code"&gt;[n0fate@FreeBSD ~/rootkit/basic]$ make&lt;br /&gt;[n0fate@FreeBSD ~/rootkit/basic]$ sudo kldload ./hello.ko&lt;br /&gt;Password:&lt;br /&gt;load&lt;br /&gt;[n0fate@FreeBSD ~/rootkit/basic]$ kldstat -v&lt;br /&gt;Id Refs Address    Size     Name&lt;br /&gt; 1    3 0xc0400000 bd97b4   kernel (/boot/kernel/kernel)&lt;br /&gt; Contains modules:&lt;br /&gt;  Id Name&lt;br /&gt;  94 ataraid&lt;br /&gt;  364 if_lo&lt;br /&gt;  351 elf32&lt;br /&gt;  352 shell&lt;br /&gt;  336 pseudofs&lt;br /&gt;  365 if_tun&lt;br /&gt;  427 elink&lt;br /&gt;  363 if_gif&lt;br /&gt;  375 mld&lt;br /&gt;  374 igmp&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;  373 wlan_sta&lt;br /&gt;  337 g_dev&lt;br /&gt;  362 if_firewire&lt;br /&gt;  360 ether&lt;br /&gt;  440 x86bios&lt;br /&gt; 2    1 0xc1f97000 2000     hello.ko (./hello.ko)&lt;br /&gt; Contains modules:&lt;br /&gt;  Id Name&lt;br /&gt;  462 hello&lt;br /&gt;[n0fate@FreeBSD ~/rootkit/basic]$ &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;코드가 정상적으로 로드되었다.&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8666281662937643157?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8666281662937643157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/05/freebsd-rootkit-part1-understanding-kld.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8666281662937643157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8666281662937643157'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/05/freebsd-rootkit-part1-understanding-kld.html' title='FreeBSD Rootkit Part1 - Understanding KLD &amp; Skeleton Code'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5926123129427462130</id><published>2011-04-29T17:47:00.001+09:00</published><updated>2012-02-01T00:05:16.612+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volafox'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>volafox의 최근 근황</title><content type='html'>원래 메인 모듈은 volafox인데 BSD분석 모듈인 volafunx가 더 진행이 되고 있습니다.&lt;br /&gt;&lt;br /&gt;이 이유는 다른게 아니라, 프로세스 덤프 기능 때문입니다.&lt;br /&gt;&lt;br /&gt;BSD와 다르게 Mac OS X는 커널이 32비트이고 데이터 관리를 32비트로 하지만,&amp;nbsp;32비트와 64비트 프로세스가 동시에 로드될 수 있는 구조로 되어있습니다. 현재까지 파악한 바로는 PML4(Page Map Level 4)로 페이징하나 Page Directory Pointer Table로 페이징하나 기준 테이블의 위치는 다르지만, 동일한 주소를 가지도록 만들었기 때문인 것 같습니다.&lt;br /&gt;&lt;br /&gt;우선은 PML4인 Intel 64비트 운영체제를 기반으로 한 주소 변환 기능 구현을 완료하였기 때문에, 빠른 시일 내에 프로세스 덤프 기능이 추가될 것 같습니다.&lt;br /&gt;&lt;br /&gt;원래 글을 따로 쓰진 않았는데, volafunx에 비해 너무 천대 받는 것 같아서 글을 올리게 되었네요. :)&lt;br /&gt;&lt;br /&gt;다들 좋은 금요일 저녁 되시길!&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5926123129427462130?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5926123129427462130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/04/volafox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5926123129427462130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5926123129427462130'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/04/volafox.html' title='volafox의 최근 근황'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3965737032201116329</id><published>2011-04-29T17:34:00.004+09:00</published><updated>2011-04-29T19:55:26.389+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='volafunx'/><title type='text'>volafunx 0.2 beta1 Release!</title><content type='html'>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yU_uoWB1pcs/Tbp3-ZsmFmI/AAAAAAAAAI0/DP3vPhAUgh4/s1600/Logo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-yU_uoWB1pcs/Tbp3-ZsmFmI/AAAAAAAAAI0/DP3vPhAUgh4/s1600/Logo.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;&amp;lt;쓸 때마다 저작권 걱정하는 volafox의 아이콘&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;4월도 거의 끝나가네요 :)&lt;br /&gt;거의 안쓰시는 버림받은 도구인 volafox 0.2가 베타1 버전이 공개되었습니다.&lt;br /&gt;변화된 기능은 다음과 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="border-collapse: separate; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left" style="font-size: 13px;" valign="top"&gt;Description:&lt;/th&gt;&lt;td align="left" style="font-size: 13px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" valign="top"&gt;&lt;pre style="font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 80em; padding-left: 0.7em; white-space: pre-wrap;"&gt;* KLD 리스트 출력 시 발생한 문제 해결&lt;br /&gt; * 이젠 BSD linker 내부의 모듈 정보도 함께 확인할 수 있습니다.(-v 옵션)&lt;br /&gt; * volafunx는 이제 네트워크 일부 정보(포트)를 추출할 수 있습니다.&lt;/pre&gt;&lt;pre style="font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 80em; padding-left: 0.7em; white-space: pre-wrap;"&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;현재 inpcb 구조체에서 네트워크 정보를 추출 중인데, IP에 대한 정보는 존재하지 않는 것을 확인하였습니다. netstat는 아마 다른 구조체와 맵핑을 하는 것 같은데, 이 부분에 대해 좀 더 증명이 필요할 것 같습니다. 이 기술이 완료되면 바로 beta2로 넘어갈 예정입니다.&lt;br /&gt;네트워크 정보 추출 기능은 5월달 내로 예상하고 있으나, 이는 엄청나게 높은 확률로 변경될 수 있습니다.&lt;br /&gt;&lt;br /&gt;또한 저번주부터 BSD 루트킷의 은닉 기법들을 체크하여, 각 기능을 우회하여 올바른 정보를 수집할 수 있는지 테스트하고 있습니다.&lt;br /&gt;조만간 다양한 루트킷 기법을 정리하여, 각 기법을 어떤식으로 탐지할 수 있는지에 대한 블로깅을 하겠습니다.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/volafox/downloads/detail?name=volafunx-0.2-beta.zip&amp;amp;can=2&amp;amp;q="&gt;volafunx 0.2 beta1 Download Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3965737032201116329?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3965737032201116329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/04/volafunx-02-beta1-release.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3965737032201116329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3965737032201116329'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/04/volafunx-02-beta1-release.html' title='volafunx 0.2 beta1 Release!'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-yU_uoWB1pcs/Tbp3-ZsmFmI/AAAAAAAAAI0/DP3vPhAUgh4/s72-c/Logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-4026578159010797339</id><published>2011-03-20T23:36:00.000+09:00</published><updated>2011-03-20T23:36:07.942+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Free'/><title type='text'>지겹도록 잔 주말이였네요.</title><content type='html'>코드게이트 예선전의 피로를 이제서야 해소한 것 같습니다.&lt;br /&gt;&lt;br /&gt;아직 좀더 잠이 필요하긴하지만, 마냥 놀 수 있는 상태가 아니기 때문에, 지금은 이것저것하고 있는 중입니다.&lt;br /&gt;&lt;br /&gt;그래도 곧 자야겠지요 ㅎㅎ&lt;br /&gt;&lt;br /&gt;제가 냈던 코드게이트 문제 중 하나가 약간의 문제가 있었습니다.&lt;br /&gt;&lt;br /&gt;사실 그 문제에 몇몇 요소가 추가되야하는데, 그 부분이 잘 구현되지 않게되다보니, 앞단을 자르고 문제를 내게되어, 문제 풀이하는 분들이 본의아닌 삽질이 이루어지게 되었습니다.&lt;br /&gt;&lt;br /&gt;나름 괜찮은 요소여서 낼려고 했는데, 코드 불안정 + 시간적인 여유가 부족하여, 재미요소를 반감시키고 짜증 요소를 증가시켜서 해당 문제를 풀던 분들에게는 죄송하게 생각합니다. :|&lt;br /&gt;&lt;br /&gt;저것 때문에 48시간 내내 은근히 스트레스가 심했습니다.&lt;br /&gt;&lt;br /&gt;근데 신기한건 문제 푸는 중엔 불만이 있으셨던 분들이 대회 끝나고선 아무도 '이런 부분에 문제 있었다'라는 메시지를 메일이나 IRC 를 알 수 있음에도 말해주지 않은 점은 참으로 아쉬웠습니다.&lt;br /&gt;&lt;br /&gt;코드게이트 때도 24시간의 대회 모니터링을 해야합니다. 48시간의 절반밖에 안되지만, 장소가 편하진 않은만큼 피로감은 좀 더 느껴질 것 같습니다. 다들 재미있는 시간 보내었으면 좋겠고, 코드게이트 컨퍼런스가 잘 마무리 되었으면 합니다.&lt;br /&gt;&lt;br /&gt;다들 즐거운 주말 저녁 되시길!&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-4026578159010797339?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/4026578159010797339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/03/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4026578159010797339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4026578159010797339'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/03/blog-post.html' title='지겹도록 잔 주말이였네요.'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2815055844595424139</id><published>2011-03-18T12:09:00.001+09:00</published><updated>2011-03-18T12:09:58.879+09:00</updated><title type='text'>Redesign my blog!! :)</title><content type='html'>요즘 블로그에 대한 투자가 줄어든 이유는 회사와 코드게이트 때문이였습니다.&lt;br /&gt;&lt;br /&gt;회사 분위기 적응하는 것도 일이더군요...;; &lt;br /&gt;코드게이트도 은근히 압박으로 다가오다보니 다른걸 자꾸 않하게 되어 블로그도 미루게 되었습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;이에 새로운 디자인으로 블로그를 바꾸고, 3월부터 제대로 포스팅한번 해보자는 생각에 글까지 쓰게 되었습니다. 원래 블로그 타이틀인 'feedbeef'가 윈도우에선 잘 나오는데 이상하게 리눅스에선 올바르게 폰트가 적용되지 않아 이유를 파악하고 있습니다만, 수정하지 않을 가능성이 높습니다. ;p&lt;br /&gt;&lt;br /&gt;기존에 메모리 포렌식에 대한 주제를 잡고 계속 글을 올리려고 했는데, 그러다보니 올리는 글도 지극히 제한적이게 되는 문제가 있어서, 다양한 글을 쓰기로 하였습니다. 그렇기 때문에 뻘글이 지수가 상당히 높아질 수 있습니다. :-)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(제 소개 페이지도 간략하게 하나 만들까하고있고요) &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;여튼 벌써 점심시간을 10분이나 초과했네요.! 다들 점심 식사 맛있게 하시고, 여러 블로거들에게 도움이 되었으면 좋겠습니다.!&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2815055844595424139?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2815055844595424139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/03/redesign-my-blog-complete.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2815055844595424139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2815055844595424139'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/03/redesign-my-blog-complete.html' title='Redesign my blog!! :)'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3544972333672074090</id><published>2011-02-06T21:03:00.002+09:00</published><updated>2011-02-06T21:08:35.063+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><title type='text'>[Document] Memory forensics for FreeBSD</title><content type='html'>BSD환경은 기업의 서버에서 많이 사용됨에 따라 침해사고 조사 분석의 대상이 될 수 있습니다.&lt;br /&gt;본 문서는&amp;nbsp;제가 개발한 FreeBSD환경의 메모리 포렌식 도구인 volafunx에 대한 소개와 각 기능이 어떤식으로 구현되었는지에 대한 정보를 획득할 수 있습니다.&lt;br /&gt;&lt;br /&gt;제가 아는 지식을 기준으로 작성되어 있기 때문에 틀린 부분도 많을 것입니다. 많은 BSD 고수님들이 사랑의 태클(?)을 걸어주시면 문서의 퀄리티를 높이는데 큰 도움이 될 것 같습니다. ;)&lt;br /&gt;&lt;br /&gt;문서는 지속적인 업데이트를 수행할 예정이며, 차 후 통합 메모리 포렌식 가이드로 이어나갈 생각을 하고 있습니다.&lt;br /&gt;디지털 포렌식 기술을 이용하거나 연구하시는 분들에게 많은 도움이 되었으면 합니다. :)&lt;br /&gt;&lt;br /&gt;다운로드(Ver. 1):&amp;nbsp;&lt;a href="http://dl.dropbox.com/0/view/av1scna36wpksbh/shared/Memory%20forensics%20for%20FreeBSD.pdf"&gt;Memory Forensics for FreeBSD&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3544972333672074090?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3544972333672074090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/02/freebsd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3544972333672074090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3544972333672074090'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/02/freebsd.html' title='[Document] Memory forensics for FreeBSD'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5777998767515079065</id><published>2011-01-17T07:57:00.002+09:00</published><updated>2011-03-18T10:23:02.501+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows Memory Forensic Tool</title><content type='html'>본 포스팅은 스마트폰으로 작성하여 그 내용이 부실할수 있습니다. &lt;br /&gt;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ &lt;br /&gt;윈도우 메모리 포렌식툴은 지속적으로 발전하고있네요 오늘 아침에 대전가는길에 rss 포스팅을 보는 중에 sans에서 올라온 아티클에 자세한 내용이 있읍니다. &lt;br /&gt;&lt;br /&gt;http://computer-forensics.sans.org/blog/2010/11/08/digital-forensics-howto-memory-analysis-mandiant-memoryze/comment-page-1/#comment-113 &lt;br /&gt;&lt;br /&gt;사실 연구실 내부에서도 현재 사용하는 대부분의 윈도우 운영체제의 메모리를 분석하는 도구가 존재함에도 공개되지 않다보니 대부분의 리서처들이 모르시더군요. &lt;br /&gt;&lt;br /&gt;물론 기능비교가 필요하겠습니다만, 항상 이런걸보면 연구실을 알릴수있는 기회를 놓치는 것 같아 아쉬운 기분이듭니다.&lt;br /&gt;&lt;div style="clear: both; font-size: xx-small; text-align: center;"&gt;Published with Blogger-droid v1.6.5&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5777998767515079065?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5777998767515079065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2011/01/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5777998767515079065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5777998767515079065'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2011/01/blog-post.html' title='Windows Memory Forensic Tool'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7260581877592230203</id><published>2010-12-22T15:34:00.006+09:00</published><updated>2010-12-31T14:36:45.663+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='volafunx'/><title type='text'>volafunx - Volafox for FreeBSD</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;사실 예전 논문의 주제로 잡았던 &amp;nbsp;Mac OS X 는 개인 데스크톱에서 많이 사용되지만, 서버시장을 바라보았을 땐 그 수요가 높지 않습니다. 이에 기업에서 사용하는 서버 시장에 이 기술을 적용해볼 수 있지 않을까해서 생각을 해보니 &amp;nbsp;FreeBSD에 적용하면 그 사용 빈도가 더 높지 않을까란 생각이 들었습니다.&lt;br /&gt;&lt;br /&gt;이러한 생각으로 volafox 의 물리 메모리 분석 기술을 &amp;nbsp;OSX 의 컴포넌트 중 하나로 사용되는 &amp;nbsp;BSD 에 적용하였습니다. 아무래도 &amp;nbsp;Mac OS X의 데이터 추출도 대부분 &amp;nbsp;BSD 컴포넌트에서 데이터를 추출하다보니 좀더 빠르게 구현할 수 있었습니다.&lt;br /&gt;&lt;br /&gt;이름은 우선 &amp;nbsp;volafunx 로 정하였는데요, 이는 차 후 통합되는 과정에서 변경될 수 있습니다.&lt;br /&gt;&amp;nbsp;volafox 를 기반으로 작성하였지만, 물리 메모리 분석에 중요한 프로세스 덤프가 먼저 추가가 되어 있기 때문에, 현재까지는 &amp;nbsp;volafox 보다 사용하기는 더 좋다고 생각합니다. :)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;volafunx 를 구동하면 다음과 같은 화면을 확인하실 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$ python volafunx.py&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Memory analyzer for FreeBSD - n0fate&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Contact: rapfer@gmail.com&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;usage: python volafunx.py -i MEMORY_IMAGE -s KERNEL_IMAGE -[o INFORMATION][-m module id][-x pid]&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-= CAUTION =-&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;This program need to physical memory image, kernel image&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;It support to Intel x86 architecture&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Option:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-o Gathering information using symbol information:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-m Dump module using module id&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-x Dump process using pid&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;INFORMATION:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;proc_info&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; process list&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;syscall_info&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; system call list (hooking detection)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lkm_info&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; Loadable Kernel Module list&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;도구 다운로드: &lt;a href="http://code.google.com/p/volafox"&gt;Volafox Code Google Site&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;volafunx는 중요 기술만 구현하였기 때문에 운영체제 버전 정보와 같은 부가적인 정보를 제공하지는 않습니다. 정말 악성코드 및 루트킷을 탐지하여 덤프하는데 중점을 둔 도구라 할 수 있습니다.(사실은 시간이 없었습니다 :-/ )&lt;br /&gt;&lt;br /&gt;도구의 활용성을 보여드리기 위해 시스템에 &amp;nbsp;vi 에디터를 열고 키를 작성한 후 해당 프로세스 영역만을 덤프하여 분석하는 것을 테스트 해보겠습니다. 우선 프로세스 목록을 확인하여 &amp;nbsp;vi &amp;nbsp;프로세스를 확인하였습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$ python volafunx.py -i FreeBSD.vmem -s kernel -o proc_info&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Memory Image: FreeBSD.vmem&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Kernel Image: kernel&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Information: proc_info&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-= process list =-&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;list_entry_next&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;pid&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ppid&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;process name&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;username&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1946000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;kernel&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1945aa0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;initl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19452a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;g_event&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1945000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;3&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;g_upl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19b1550&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;4&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;g_down&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19b1000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;5&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;xpt_thrd&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1946d48&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;6&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;fdc0l&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1946aa0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;7&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;sctp_iterator&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1946550&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;pagedaemon&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19462a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;9&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vmdaemon&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1945d48&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;10&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;audit&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19457f8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;idlel&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1945550&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;12&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;intrl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19b12a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;13&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;yarrow&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19467f8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;14&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;usbel&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c10d48&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;15&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;pagezero&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c10aa0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;16&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;bufdaemon&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c107f8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;17&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;syncer&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c10550&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;18&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vnlru&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c102a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;19&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;softdepflush&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c6daa0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;20&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;flowcleaner&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c6d7f8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;448&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;devdl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19b1d48&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;563&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;syslogd&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c6e2a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;786&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;sshdl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19b1aa0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;793&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;sendmailer&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c6d550&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;797&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;sendmailer&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c6d000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;803&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;cronl&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c10000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;854&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1c6d2a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;855&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1ea5550&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;856&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1ea52a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;857&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1ea5000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;858&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1ea4d48&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;859&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1eeb2a8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;860&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;getty&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c19b17f8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;15214&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;login&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;c1ea4000&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;15229&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;15214&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;bash&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;c0d99b58&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;47686&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;15229&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vih&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;root&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;빨간 줄로 그어진 것이 &amp;nbsp;vi 의 프로세스입니다. 해당 프로세스 영역만을 메모리에서 덤프하겠습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$ python volafunx.py -i FreeBSD.vmem -s kernel -x 47686&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Memory Image: FreeBSD.vmem&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Kernel Image: kernel&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Dump PID: 47686&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] Dump Process ID: 47686&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] process name: vih&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] vmspace: c194a740&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] start: 1000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] end: bfc00000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] VAD CR3: c634f000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] PHYS CR3: 3cc5000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] END VAD DUMP LIST&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] VAD DUMP START&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-8048000-8092000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-8092000-8100000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-28092000-280c2000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-280c2000-280c4000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-280c4000-280d7000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-280d7000-28114000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-28114000-28117000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-28117000-28213000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-28213000-28219000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-28219000-2822f000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-28300000-28400000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;[-] [DUMP] Image Name: vih-bfbe0000-bfc00000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[+] VAD DUMP COMPLETE&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$ ls -al&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxrwxrwx &amp;nbsp;29 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp; 986 12 22 15:29 .&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwx------+ 10 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp; 340 12 22 14:08 ..&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r--@ &amp;nbsp;1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;6148 12 22 15:29 .DS_Store&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx@ &amp;nbsp;1 n0fate &amp;nbsp;staff &amp;nbsp;67108864 12 22 14:42 FreeBSD.vmem&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;2109 11 &amp;nbsp;1 21:14 addrspace.py&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxr-xr-x &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;2524 12 22 14:13 addrspace.pyc&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;5112 12 22 15:02 elf_an.py&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxr-xr-x &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;4311 12 22 15:18 elf_an.pyc&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp;11492703 11 &amp;nbsp;1 20:53 kernel&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp;11984864 12 21 16:26 lkm_kernel_dump&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp; 540 11 &amp;nbsp;1 20:53 setup.py&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; 2069036 11 &amp;nbsp;2 19:12 symbol.txt&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 16542 11 &amp;nbsp;2 15:29 syscall.txt&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp;122880 12 22 15:29 vih-28092000-280c2000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;8192 12 22 15:29 vih-280c2000-280c4000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 57344 12 22 15:29 vih-280c4000-280d7000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp;229376 12 22 15:29 vih-280d7000-28114000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 12288 12 22 15:29 vih-28114000-28117000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp;610304 12 22 15:29 vih-28117000-28213000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 24576 12 22 15:29 vih-28213000-28219000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 45056 12 22 15:29 vih-28219000-2822f000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp;204800 12 22 15:29 vih-28300000-28400000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp;253952 12 22 15:29 vih-8048000-8092000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; &amp;nbsp;8192 12 22 15:29 vih-8092000-8100000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 32768 12 22 15:29 vih-bfbe0000-bfc00000&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r-- &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 10602 12 22 15:05 volafunx-0.1.zip&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 16793 12 22 15:04 volafunx.py&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxrwxrwx &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 13846 11 &amp;nbsp;1 21:14 x86.py&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rwxr-xr-x &amp;nbsp; 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 12837 12 22 14:13 x86.pyc&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;덤프된 내용을 strings 로 확인해보겠습니다.&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$ strings vih-* | grep "secret key"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;secret key: welcome to BSD world ;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;secret key: welcome to BSD world ;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;secret key: welcome to BSD world ;)&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;n0fates-iMac:volafunx n0fate$&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;올바르게 키가 나오는 것을 확인할 수 있습니다. 이러한 프로세스 덤프는 &amp;nbsp;vi의 에디팅 흔적 뿐만 아니라, 사용자가 실행했던 명령어를 &amp;nbsp;bash 를 덤프하여 확인하는 등 다양한 증거를 수집할 수 있습니다. :)&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;추가적으로 현재 오픈한 파일에 대한 목록 추출 및 해당 데이터 덤프를 구현할 예정인데 얼마나 걸릴지 모르겠네요. 현재 두 도구를 혼자서 하고 있다보니 시간이 좀 걸립니다.&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;다들 유용하게 사용해주셨으면 감사하겠습니다. 혹시나 좋은 코멘트가 있으시다면 지체없이 글 남겨주시기 바랍니다.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7260581877592230203?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7260581877592230203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/12/volafox-for-freebsd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7260581877592230203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7260581877592230203'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/12/volafox-for-freebsd.html' title='volafunx - Volafox for FreeBSD'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7543021555065078087</id><published>2010-12-02T17:26:00.000+09:00</published><updated>2012-02-01T00:06:13.293+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Digital Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Time Machine'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>Time Machine Forensics [1]</title><content type='html'>Mac OS X 는 '&lt;a href="http://en.wikipedia.org/wiki/Time_Machine_(software)"&gt;Time Machine&lt;/a&gt;'이라고 불리는 디스크 백업 유틸리티를 내장하고 있다.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KYUsDAgl5oc/TPdNjwbMJgI/AAAAAAAAAHc/mJCxKEOy75U/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2010-12-02+4.39.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/TPdNjwbMJgI/AAAAAAAAAHc/mJCxKEOy75U/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2010-12-02+4.39.23+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;스노우 레오파드를 처음 설치했다면, 타임머신은 기본적으로 비 활성화 되어있다. 타임머신은 USB, Firewire나 AFP(Apple File-transfer Protocol)을 지원하는 무선 네트워크를 가진 장치(타임캡슐)를 백업 디스크로 선택할 수 있도록 구성되어 있다.&lt;br /&gt;&lt;br /&gt;포렌식 관점에서 타임머신의 구성을 확인하기 위해 하나의 USB 외장 디스크에 가상 머신을 생성하여 연결하였고, '백업 디스크로 지정'하여 총 6회 정도의 백업을 수행하였다.&amp;nbsp;백업 목적의 디스크는 처음에 디스크로 지정되면, 타임머신에서 사용할 수 있도록 디스크 이미지를 프로그램에 맞게 재 포맷을 수행한다.&lt;br /&gt;&lt;br /&gt;이미징한 디스크는 Mac에서 쉽게 접근할 수 있도록 구성되어 있다. 처음 포맷을 수행할 때 타임 머신 관리자는 파일 시스템을 HFS Plus로 포맷한다. 내부에는 맥 운영체제로 인해 생성되는 파일 시스템 이벤트관련 디렉터리(.fseventsd)와 인덱스를 위한 디렉터리(.Spotlight-V100)이 &lt;s&gt;존재하며, '.HFS+ Private Directory Data_'와 '___HFS+ Private Data' 디렉터리를 추가적으로 가지고&lt;/s&gt; 있다.&lt;br /&gt;------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:Time Machine Backups n0fate$ ls -al&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;total 16&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxrwxr-x &amp;nbsp;5 n0fate &amp;nbsp;staff &amp;nbsp; 408 Dec &amp;nbsp;2 16:58 .&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxrwxrwt@ 5 root &amp;nbsp; &amp;nbsp;admin &amp;nbsp; 170 Dec &amp;nbsp;2 16:57 ..&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r--@ 1 n0fate &amp;nbsp;staff &amp;nbsp;6148 Dec &amp;nbsp;2 16:58 .DS_Store&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwx------ &amp;nbsp;3 n0fate &amp;nbsp;staff &amp;nbsp; 102 Oct 23 18:47 .Spotlight-V100&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;d-wx-wx-wt &amp;nbsp;3 n0fate &amp;nbsp;staff &amp;nbsp; 102 Dec &amp;nbsp;2 16:57 .Trashes&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-rw-r--r--@ 1 n0fate &amp;nbsp;staff &amp;nbsp; &amp;nbsp; 0 Dec &amp;nbsp;2 16:57 .com.apple.timemachine.donotpresent&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwx------ &amp;nbsp;2 n0fate &amp;nbsp;staff &amp;nbsp; 102 Dec &amp;nbsp;2 16:58 .fseventsd&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x+ 3 n0fate &amp;nbsp;staff &amp;nbsp; 136 Dec &amp;nbsp;2 12:38 Backups.backupdb&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:Time Machine Backups n0fate$&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;우리가 원하는 실질적인 데이터는 'Backups.backupdb' 디렉터리에 존재할 것이니 해당 디렉터리에 직접 접근하면, 타임 머신을 연결한 시스템 이름의 디렉터리를 확인할 수 있다.&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:Backups.backupdb n0fate$ ls -al&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;total 7&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x+ 3 n0fate &amp;nbsp;staff &amp;nbsp;136 Dec &amp;nbsp;2 12:38 .&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxrwxr-x &amp;nbsp;5 n0fate &amp;nbsp;staff &amp;nbsp;408 Dec &amp;nbsp;2 16:58 ..&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 9 n0fate &amp;nbsp;staff &amp;nbsp;340 Dec &amp;nbsp;1 01:02 n0fate's MacBook Pro&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:Backups.backupdb n0fate$&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;디렉터리에 접근하면 백업한 시점을 디렉터리 이름으로 설정하여 독립적인 백업 디렉터리를 생성하고, &amp;nbsp;가장 최근에 백업한 디렉터리를 'Lastest'로 심볼릭 링크를 걸어 접근할 수 있도록 되어 있다.&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:n0fate's MacBook Pro n0fate$ ls -al&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;total 8&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 9 n0fate &amp;nbsp;staff &amp;nbsp;340 Dec &amp;nbsp;1 01:02 .&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x+ 3 n0fate &amp;nbsp;staff &amp;nbsp;136 Dec &amp;nbsp;2 12:38 ..&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Oct 23 20:02 2010-10-23-200209&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Nov &amp;nbsp;6 22:44 2010-11-06-224436&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Nov &amp;nbsp;7 13:52 2010-11-07-135232&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Nov &amp;nbsp;7 14:41 2010-11-07-144113&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Nov &amp;nbsp;7 14:58 2010-11-07-145853&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Nov 22 00:19 2010-11-22-001900&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;drwxr-xr-x@ 3 n0fate &amp;nbsp;staff &amp;nbsp;204 Dec &amp;nbsp;1 01:01 2010-12-01-010147&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lrwxr-xr-x &amp;nbsp;1 n0fate &amp;nbsp;staff &amp;nbsp; 17 Dec &amp;nbsp;1 01:01 Latest -&amp;gt; 2010-12-01-010147&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:n0fate's MacBook Pro n0fate$&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;그리고 내부로 접근하면 해당 시점에 Snow Leopard가 설치된 디스크를 이름으로 한 디렉터리가 나타나고 한 스텝 더 진행하면 타임 머신을 설정한 시스템의 루트 디렉터리와 동일한 정보를 지닌 파일이 나타난다.&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:2010-12-01-010147 n0fate$ ls&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SnowLeopardHDD&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:2010-12-01-010147 n0fate$ cd SnowLeopardHDD/&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:SnowLeopardHDD n0fate$ ls&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Applications&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Developer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;usr&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;사용 설명서와 정보&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;forensic-iMac:SnowLeopardHDD n0fate$&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;중요한 사실은 파일의 내용이 수정되지 않더라도 다음 타임 머신 백업 때 해당 파일을 다시 복사해서 보관하는 구조로 되어있다는 점이다. 이러한 사실은 타임 머신 백업 디스크에 한번이라도 백업을 수행했다거나, 한 시점의 디렉터리 구조가 살아 있다고 한다면, 주 시스템의 무결성을 해치지 않고서 논리적 관점에서 해당 디스크 정보를 획득한 것과 같은 효과를 얻을 수 있음을 의미한다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;타임머신은 한 번만 설정해두면, 자동으로 디스크의 변경 사항을 정해진 시간에 따라 백업을 수행하도록 되어있다. 이러한 특징을 이용하면, 현재 상태의 디스크에서 확인할 수 없는 삭제 파일에 대한 메타데이터 정보 및 파일의 내용을 타임 머신 디스크를 통해 확인할 수 있기 때문에, 삭제된 파일에 접근한다는 측면에서 포렌식 적으로 유용한 정보가 될 수 있다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;또 다른 관점에서, 만약 해당 시스템의 무결성을 고려하지 않고 논리적으로 데이터를 수집하고 싶다면, 별도의 스크립트를 사용할 필요 없이 외장 디스크만을 연결하여 디스크의 전체 내용을 논리적으로 수집하는 것도 생각해볼 수 있다. 이러한 수집을 콘솔에서 수행하기 위해서는 다음 명령어를 입력하면 된다.&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;"/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &amp;amp;"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;현재까지 확인한 부분은 이정도이다. 단 위에서 줄로 그은 몇몇 디렉터리가 윈도우의 Mac Drive 어플리케이션에서만 보이는 관계로 저 부분이 본래 존재하는지에 대한 것을 추가적으로 확인할 필요가 있다. 이러한 부분에 대해서는 좀더 삽질해보고 포스팅하도록 하겠다. :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7543021555065078087?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7543021555065078087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/12/time-machine-forensics-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7543021555065078087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7543021555065078087'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/12/time-machine-forensics-1.html' title='Time Machine Forensics [1]'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KYUsDAgl5oc/TPdNjwbMJgI/AAAAAAAAAHc/mJCxKEOy75U/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2010-12-02+4.39.23+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6891691967448505433</id><published>2010-12-02T08:34:00.004+09:00</published><updated>2011-03-18T12:21:15.121+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Digital Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='dc3'/><title type='text'>DFRC DC3 Challenge Grand Champion!</title><content type='html'>DC3 Chllenge 2010에 DFRC가 전체 순위(Overall) 1위로 우승하였네요. 참고로 이 대회는 미 국방성에서 주최하는 전세계를 대상으로하는 디지털 포렌식 대회로 이번년도에는 File Format Analysis, Steganography, Cryto, Reverse Engineering, Programming, Vulnerability Analysis, Packet Analysis등 다양한 분야에서 문제가 출제되었습니다.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KYUsDAgl5oc/TPbZxAOSrQI/AAAAAAAAAHU/YL0YL_IUak8/s1600/Screen+shot+2010-12-02+at+8.19.15+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="153" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/TPbZxAOSrQI/AAAAAAAAAHU/YL0YL_IUak8/s400/Screen+shot+2010-12-02+at+8.19.15+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;본의 아니게 말레이시아로 관광 다녀올 수도 있게 되었네요 ;) (물론 회사 사정에 따라 다르겠지만요.)&lt;br /&gt;&lt;br /&gt;사실 이번엔 500번 문제 대부분이 도구 구현이라, 문제가 왜이러나 싶었는데, 역시 그걸 반영이라도 하듯 전체적인 점수가 도구 구현까지 한 저희 팀과 2배 정도 차이가 나는게 보이네요.&amp;nbsp;개인적으론 내년 문제에는 도구 구현보다는 조금 더 분석 쪽에 치중한 문제가 나왔으면 하는 바램이 있습니다.&lt;br /&gt;&lt;br /&gt;참고로 LittleTree 팀도 국내 팀인데 저희가 모르는 팀입니다. 축하드려요 :)&lt;br /&gt;&lt;br /&gt;기한이 길었던 만큼 (2010년 초 ~ 2010년 10월 31일) 문제의 범위도 넓고, 문제의 수도 상당했는데, 여러 프로젝트가 겹치는 와중에도 다들 열심히 해주어서 고마울뿐입니다. 전 사실 밥상에 숟가락만 올렸기 때문에;&lt;br /&gt;&lt;br /&gt;공식 홈페이지를 통해 저희가 올린 풀이가 공개될지 모르겠지만, 최종 점수도 나왔으니, 이제 풀이를 하나하나 이곳에 올려 보도록 하겠습니다.&lt;br /&gt;&lt;br /&gt;Status:&amp;nbsp;&lt;a href="http://www.dc3.mil/challenge/2010/stats/winners.php"&gt;http://www.dc3.mil/challenge/2010/stats/winners.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6891691967448505433?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6891691967448505433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/12/dfrc-dod.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6891691967448505433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6891691967448505433'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/12/dfrc-dod.html' title='DFRC DC3 Challenge Grand Champion!'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KYUsDAgl5oc/TPbZxAOSrQI/AAAAAAAAAHU/YL0YL_IUak8/s72-c/Screen+shot+2010-12-02+at+8.19.15+AM.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2015896469177915167</id><published>2010-10-31T11:49:00.007+09:00</published><updated>2010-11-23T18:24:56.599+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volafox'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><title type='text'>volafox 0.5 Beta</title><content type='html'>Mac OS X의 물리 메모리 분석 도구인 'volafox'를 공개하였습니다.&lt;br /&gt;&lt;br /&gt;일단 구글 프로젝트로 생성하였고 그곳에 패키지와 슬라이드를 업로드하였으니 참조하시면 됩니다.&lt;br /&gt;&lt;br /&gt;사이트는&amp;nbsp;&lt;a href="http://code.google.com/p/volafox/"&gt;http://code.google.com/p/volafox/&lt;/a&gt; 여기가 되겠고요.&lt;br /&gt;&lt;br /&gt;코드가 정리 안된 상태로 올려서 많이 허접합니다. 깔끔하게 정리한번 해야할텐데 말이죠 :)&lt;br /&gt;&lt;br /&gt;지속적으로 업데이트할 계획이니 좋은 아이디어 있으면 코멘트 부탁드리겠습니다.&lt;br /&gt;&lt;br /&gt;추가적으로 예제 데이터도 생성 하였으니 확인해주세요~&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/TMzZmOgbekI/AAAAAAAAAGg/SEeQSqgRknU/s1600/Screen+shot+2010-10-31+at+11.50.40+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/TMzZmOgbekI/AAAAAAAAAGg/SEeQSqgRknU/s400/Screen+shot+2010-10-31+at+11.50.40+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;아이콘은 deviantart에 있는걸 임시로 쓰고 있는데 라이센스 걸리는거 아닐까 걱정되네요-_-;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2015896469177915167?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2015896469177915167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/10/volafox-05-beta.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2015896469177915167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2015896469177915167'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/10/volafox-05-beta.html' title='volafox 0.5 Beta'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/TMzZmOgbekI/AAAAAAAAAGg/SEeQSqgRknU/s72-c/Screen+shot+2010-10-31+at+11.50.40+AM.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6570079752396647036</id><published>2010-09-03T00:17:00.001+09:00</published><updated>2010-09-03T00:21:55.406+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PE Format'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows Authenticode PE Format</title><content type='html'>윈도우 운영체제는 PE파일의 무결성을 입증하기 위한 방법 중 하나로 PE파일 내부에 Authenticode를 삽입하는 방식을 제공한다.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;일반적으로 공식사이트에서 제공하는 장치 드라이버나 메이저 벤더에서 제공하는 소프트웨어의 디바이스 드라이버는 마이크로소프트의 디지털서명을 받아 자신들의 드라이버의 무결성을 증명하기도 하며, 윈도우 운영체제도 서명되지 않은 드라이버는 사용자에게 경고 메시지를 띄워서 시스템이 손상될 수 있음을 알려준다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.caldigit.com/img/Vista-64-HDPro.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://www.caldigit.com/img/Vista-64-HDPro.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;본 포스팅에서는 실질적으로&amp;nbsp;디지털 서명이 되어있는 하나의 파일을 이용하여&amp;nbsp;인증서의 존재 및 유효성을 검증하는 방법을 확인해보도록 하겠다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Windows XP환경의 다음 경로의 파일은 디지털 서명이 되어있다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;vmware bus="" device="" pci="" vmci=""&gt;&lt;/vmware&gt;&lt;/div&gt;&lt;div&gt;Path: C:\WINDOWS\system32\drivers\vmci.sys&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;서명 여부를 확인하는 가장 간단한 방법은 파일의 속성을 확인하는 방법이다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/TH-7VLHPTnI/AAAAAAAAAGA/a60Yb2u5on4/s1600/Screen+shot+2010-09-02+at+11.57.04+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/TH-7VLHPTnI/AAAAAAAAAGA/a60Yb2u5on4/s320/Screen+shot+2010-09-02+at+11.57.04+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;파일을 헥사에디터로 확인해보면 정해진 PE파일포맷 이후에 추가적으로 임의의 섹션이 붙은 것을 확인할 수 있으며, 인증서포맷 데이터임을 확인할 수 있다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_KYUsDAgl5oc/TH-8VnBT5_I/AAAAAAAAAGI/7X1eJIFP-mU/s1600/Screen+shot+2010-09-03+at+12.01.17+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/TH-8VnBT5_I/AAAAAAAAAGI/7X1eJIFP-mU/s400/Screen+shot+2010-09-03+at+12.01.17+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;디지털 서명테이블은 PE파일 상의 'DataDirectory' 내부의 'Certificate Table'가 가리키고 있으며, 문서에 나온 그림을 보면 다음과 같다.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBUQFjAA&amp;amp;url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F9%2Fc%2F5%2F9c5b2167-8017-4bae-9fde-d599bac8184a%2FAuthenticode_PE.docx&amp;amp;ei=0Ll_TKj7Co3KvQON2NCTBA&amp;amp;usg=AFQjCNEeZEkk7uzfqBajzMfXTsd37XJfhQ&amp;amp;sig2=4BWoYex_HAy3rTePmUF5Zw"&gt;Windows Authenticode Portable Executable Signature Format&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/TH-9I9_wRQI/AAAAAAAAAGQ/R3qJx5WbhII/s1600/Untitled1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/TH-9I9_wRQI/AAAAAAAAAGQ/R3qJx5WbhII/s640/Untitled1.png" width="516" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;세부적인 파일포맷은 해당 문서나 AuthentiCode로 구글 검색을 하면 포맷파싱 소스를 구할 수 있다.&lt;br /&gt;&lt;br /&gt;PE Explorer는 이 테이블의 인증서들을 파싱하여 정보를 손쉽게 볼 수 있도록 한다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_KYUsDAgl5oc/TH-9wuAMrdI/AAAAAAAAAGY/BPGGNRdO2oU/s1600/Screen+shot+2010-09-03+at+12.07.21+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://4.bp.blogspot.com/_KYUsDAgl5oc/TH-9wuAMrdI/AAAAAAAAAGY/BPGGNRdO2oU/s400/Screen+shot+2010-09-03+at+12.07.21+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;인증서의 유효성을 검증하기 위한 가장 편리한 방법은 WinVerifyTrust API를 이용하는 방법이다. 이 방법은 윈도우 운영체제의 인증서 유효성 검증과 동일한 흐름을 통해 인증서의 유효성을 증명할 수 있기 때문에, 일반적으로 프로그램에 코드 서명 검증 루틴을 넣고 싶을 때 이용할 수 있다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;아래는 Microsoft에서 제공하는 &lt;a href="http://msdn.microsoft.com/en-us/library/aa382384(VS.85).aspx"&gt;예제코드&lt;/a&gt;이다. 첫 번째 인자로 받은 PE파일의 유효성을 검증한다.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;pre style="font-family: Consolas, Courier, monospace; font-style: normal; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; word-break: break-all; word-wrap: break-word;"&gt;//-------------------------------------------------------------------&lt;br /&gt;// Copyright (c) Microsoft Corporation.  All rights reserved.&lt;br /&gt;// Example of verifying the embedded signature of a PE file by using &lt;br /&gt;// the WinVerifyTrust function.&lt;br /&gt;&lt;br /&gt;#define _UNICODE 1&lt;br /&gt;#define UNICODE 1&lt;br /&gt;&lt;br /&gt;#include &lt;tchar.h&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;windows.h&gt;&lt;br /&gt;#include &lt;softpub.h&gt;&lt;br /&gt;#include &lt;wincrypt.h&gt;&lt;br /&gt;#include &lt;wintrust.h&gt;&lt;br /&gt;&lt;br /&gt;// Link with the Wintrust.lib file.&lt;br /&gt;#pragma comment (lib, "wintrust")&lt;br /&gt;&lt;br /&gt;BOOL VerifyEmbeddedSignature(LPCWSTR pwszSourceFile)&lt;br /&gt;{&lt;br /&gt;    LONG lStatus;&lt;br /&gt;    DWORD dwLastError;&lt;br /&gt;&lt;br /&gt;    // Initialize the WINTRUST_FILE_INFO structure.&lt;br /&gt;&lt;br /&gt;    WINTRUST_FILE_INFO FileData;&lt;br /&gt;    memset(&amp;amp;FileData, 0, sizeof(FileData));&lt;br /&gt;    FileData.cbStruct = sizeof(WINTRUST_FILE_INFO);&lt;br /&gt;    FileData.pcwszFilePath = pwszSourceFile;&lt;br /&gt;    FileData.hFile = NULL;&lt;br /&gt;    FileData.pgKnownSubject = NULL;&lt;br /&gt;&lt;br /&gt;    /*&lt;br /&gt;    WVTPolicyGUID specifies the policy to apply on the file&lt;br /&gt;    WINTRUST_ACTION_GENERIC_VERIFY_V2 policy checks:&lt;br /&gt;    &lt;br /&gt;    1) The certificate used to sign the file chains up to a root &lt;br /&gt;    certificate located in the trusted root certificate store. This &lt;br /&gt;    implies that the identity of the publisher has been verified by &lt;br /&gt;    a certification authority.&lt;br /&gt;    &lt;br /&gt;    2) In cases where user interface is displayed (which this example&lt;br /&gt;    does not do), WinVerifyTrust will check for whether the  &lt;br /&gt;    end entity certificate is stored in the trusted publisher store,  &lt;br /&gt;    implying that the user trusts content from this publisher.&lt;br /&gt;    &lt;br /&gt;    3) The end entity certificate has sufficient permission to sign &lt;br /&gt;    code, as indicated by the presence of a code signing EKU or no &lt;br /&gt;    EKU.&lt;br /&gt;    */&lt;br /&gt;&lt;br /&gt;    GUID WVTPolicyGUID = WINTRUST_ACTION_GENERIC_VERIFY_V2;&lt;br /&gt;    WINTRUST_DATA WinTrustData;&lt;br /&gt;&lt;br /&gt;    // Initialize the WinVerifyTrust input data structure.&lt;br /&gt;&lt;br /&gt;    // Default all fields to 0.&lt;br /&gt;    memset(&amp;amp;WinTrustData, 0, sizeof(WinTrustData));&lt;br /&gt;&lt;br /&gt;    WinTrustData.cbStruct = sizeof(WinTrustData);&lt;br /&gt;    &lt;br /&gt;    // Use default code signing EKU.&lt;br /&gt;    WinTrustData.pPolicyCallbackData = NULL;&lt;br /&gt;&lt;br /&gt;    // No data to pass to SIP.&lt;br /&gt;    WinTrustData.pSIPClientData = NULL;&lt;br /&gt;&lt;br /&gt;    // Disable WVT UI.&lt;br /&gt;    WinTrustData.dwUIChoice = WTD_UI_NONE;&lt;br /&gt;&lt;br /&gt;    // No revocation checking.&lt;br /&gt;    WinTrustData.fdwRevocationChecks = WTD_REVOKE_NONE; &lt;br /&gt;&lt;br /&gt;    // Verify an embedded signature on a file.&lt;br /&gt;    WinTrustData.dwUnionChoice = WTD_CHOICE_FILE;&lt;br /&gt;&lt;br /&gt;    // Default verification.&lt;br /&gt;    WinTrustData.dwStateAction = 0;&lt;br /&gt;&lt;br /&gt;    // Not applicable for default verification of embedded signature.&lt;br /&gt;    WinTrustData.hWVTStateData = NULL;&lt;br /&gt;&lt;br /&gt;    // Not used.&lt;br /&gt;    WinTrustData.pwszURLReference = NULL;&lt;br /&gt;&lt;br /&gt;    // Default.&lt;br /&gt;    WinTrustData.dwProvFlags = WTD_SAFER_FLAG;&lt;br /&gt;&lt;br /&gt;    // This is not applicable if there is no UI because it changes &lt;br /&gt;    // the UI to accommodate running applications instead of &lt;br /&gt;    // installing applications.&lt;br /&gt;    WinTrustData.dwUIContext = 0;&lt;br /&gt;&lt;br /&gt;    // Set pFile.&lt;br /&gt;    WinTrustData.pFile = &amp;amp;FileData;&lt;br /&gt;&lt;br /&gt;    // WinVerifyTrust verifies signatures as specified by the GUID &lt;br /&gt;    // and Wintrust_Data.&lt;br /&gt;    lStatus = WinVerifyTrust(&lt;br /&gt;        NULL,&lt;br /&gt;        &amp;amp;WVTPolicyGUID,&lt;br /&gt;        &amp;amp;WinTrustData);&lt;br /&gt;&lt;br /&gt;    switch (lStatus) &lt;br /&gt;    {&lt;br /&gt;        case ERROR_SUCCESS:&lt;br /&gt;            /*&lt;br /&gt;            Signed file:&lt;br /&gt;                - Hash that represents the subject is trusted.&lt;br /&gt;&lt;br /&gt;                - Trusted publisher without any verification errors.&lt;br /&gt;&lt;br /&gt;                - UI was disabled in dwUIChoice. No publisher or &lt;br /&gt;                    time stamp chain errors.&lt;br /&gt;&lt;br /&gt;                - UI was enabled in dwUIChoice and the user clicked &lt;br /&gt;                    "Yes" when asked to install and run the signed &lt;br /&gt;                    subject.&lt;br /&gt;            */&lt;br /&gt;            wprintf_s(L"The file \"%s\" is signed and the signature "&lt;br /&gt;                L"was verified.\n",&lt;br /&gt;                pwszSourceFile);&lt;br /&gt;            break;&lt;br /&gt;        &lt;br /&gt;        case TRUST_E_NOSIGNATURE:&lt;br /&gt;            // The file was not signed or had a signature &lt;br /&gt;            // that was not valid.&lt;br /&gt;&lt;br /&gt;            // Get the reason for no signature.&lt;br /&gt;            dwLastError = GetLastError();&lt;br /&gt;            if (TRUST_E_NOSIGNATURE == dwLastError ||&lt;br /&gt;                    TRUST_E_SUBJECT_FORM_UNKNOWN == dwLastError ||&lt;br /&gt;                    TRUST_E_PROVIDER_UNKNOWN == dwLastError) &lt;br /&gt;            {&lt;br /&gt;                // The file was not signed.&lt;br /&gt;                wprintf_s(L"The file \"%s\" is not signed.\n",&lt;br /&gt;                    pwszSourceFile);&lt;br /&gt;            } &lt;br /&gt;            else &lt;br /&gt;            {&lt;br /&gt;                // The signature was not valid or there was an error &lt;br /&gt;                // opening the file.&lt;br /&gt;                wprintf_s(L"An unknown error occurred trying to "&lt;br /&gt;                    L"verify the signature of the \"%s\" file.\n",&lt;br /&gt;                    pwszSourceFile);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            break;&lt;br /&gt;&lt;br /&gt;        case TRUST_E_EXPLICIT_DISTRUST:&lt;br /&gt;            // The hash that represents the subject or the publisher &lt;br /&gt;            // is not allowed by the admin or user.&lt;br /&gt;            wprintf_s(L"The signature is present, but specifically "&lt;br /&gt;                L"disallowed.\n");&lt;br /&gt;            break;&lt;br /&gt;&lt;br /&gt;        case TRUST_E_SUBJECT_NOT_TRUSTED:&lt;br /&gt;            // The user clicked "No" when asked to install and run.&lt;br /&gt;            wprintf_s(L"The signature is present, but not "&lt;br /&gt;                L"trusted.\n");&lt;br /&gt;            break;&lt;br /&gt;&lt;br /&gt;        case CRYPT_E_SECURITY_SETTINGS:&lt;br /&gt;            /*&lt;br /&gt;            The hash that represents the subject or the publisher &lt;br /&gt;            was not explicitly trusted by the admin and the &lt;br /&gt;            admin policy has disabled user trust. No signature, &lt;br /&gt;            publisher or time stamp errors.&lt;br /&gt;            */&lt;br /&gt;            wprintf_s(L"CRYPT_E_SECURITY_SETTINGS - The hash "&lt;br /&gt;                L"representing the subject or the publisher wasn't "&lt;br /&gt;                L"explicitly trusted by the admin and admin policy "&lt;br /&gt;                L"has disabled user trust. No signature, publisher "&lt;br /&gt;                L"or timestamp errors.\n");&lt;br /&gt;            break;&lt;br /&gt;&lt;br /&gt;        default:&lt;br /&gt;            // The UI was disabled in dwUIChoice or the admin policy &lt;br /&gt;            // has disabled user trust. lStatus contains the &lt;br /&gt;            // publisher or time stamp chain error.&lt;br /&gt;            wprintf_s(L"Error is: 0x%x.\n",&lt;br /&gt;                lStatus);&lt;br /&gt;            break;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;{&lt;br /&gt;    if(argc &amp;gt; 1)&lt;br /&gt;    {&lt;br /&gt;        VerifyEmbeddedSignature(argv[1]);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/wintrust.h&gt;&lt;/wincrypt.h&gt;&lt;/softpub.h&gt;&lt;/windows.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/tchar.h&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;간단하지만 생각보다 찾기가 힘들었다. 현재 PE분석 모듈을 구성하고 있는데, 이 부분까지 고려해서 재 구성해봐야겠다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6570079752396647036?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6570079752396647036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/09/windows-authenticode-pe-format.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6570079752396647036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6570079752396647036'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/09/windows-authenticode-pe-format.html' title='Windows Authenticode PE Format'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/TH-7VLHPTnI/AAAAAAAAAGA/a60Yb2u5on4/s72-c/Screen+shot+2010-09-02+at+11.57.04+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2104347267325947124</id><published>2010-08-18T13:26:00.000+09:00</published><updated>2010-08-18T13:26:21.046+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Digital Forensics'/><title type='text'>2010 Workshop of Digital Forensics</title><content type='html'>올해도 여김없이 디지털포렌식워크샵을 고려대학교에서 개최합니다.&lt;br /&gt;&lt;br /&gt;올해는 작년보다 전시장이나 컨퍼런스 장소가 더 좋아져서 기대되는군요 :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_KYUsDAgl5oc/TGtgwgvzl-I/AAAAAAAAAFw/0EcYXGFTDZU/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="452" ox="true" src="http://4.bp.blogspot.com/_KYUsDAgl5oc/TGtgwgvzl-I/AAAAAAAAAFw/0EcYXGFTDZU/s640/1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/TGtgxrLmlGI/AAAAAAAAAF0/Jz3Epv6P12U/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="452" ox="true" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/TGtgxrLmlGI/AAAAAAAAAF0/Jz3Epv6P12U/s640/2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;주최 : 한국디지털포렌식학회, 한국정보보보학회&lt;br /&gt;주관 : 고려대학교 정보보호연구원 디지털포렌식연구센터&lt;br /&gt;후원 : 한국저작권위원회, 징코스테크놀러지, WildPackets 한국지사, 명정보기술, &lt;br /&gt;이스턴웨어, 포앤식스테크, 더존정보보호서비스, 나브콤, 인정보&lt;br /&gt;일시 : 2010년 8월 25일&lt;br /&gt;장소 : 고려대학교 하나스퀘어&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2104347267325947124?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2104347267325947124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/08/2010-workshop-of-digital-forensics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2104347267325947124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2104347267325947124'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/08/2010-workshop-of-digital-forensics.html' title='2010 Workshop of Digital Forensics'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KYUsDAgl5oc/TGtgwgvzl-I/AAAAAAAAAFw/0EcYXGFTDZU/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3434781198642627937</id><published>2010-07-01T10:52:00.002+09:00</published><updated>2010-07-01T10:54:23.524+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='hwp'/><title type='text'>한컴 hwp 포맷 공개</title><content type='html'>'한글과컴퓨터' 에서 hwp문서의 포맷을 완전 공개했네요.&lt;br /&gt;&lt;br /&gt;그간 한글은 doc지원하는데 타 에디터는 hwp 지원 안된다고 호환성 떨어진다고 욕도 많이 먹었는데,&lt;br /&gt;&lt;br /&gt;사실 한컴은 doc를 역분석해서 제작한 것으로 알고 있습니다. 노력의 산물이죠..&lt;br /&gt;&lt;br /&gt;여튼 한글2010 UI도 상당히 마음에 들던데, 포맷 공개까지 하고, 대단한 결정을 한 것 같습니다.&lt;br /&gt;&lt;br /&gt;포맷도 공개 되었으니 이제 MAC용 뷰어라도 좀 나오려나요 :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_KYUsDAgl5oc/TCv0m7a2n8I/AAAAAAAAAFo/3VITUp6EWjI/s1600/20100630112458131.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/TCv0m7a2n8I/AAAAAAAAAFo/3VITUp6EWjI/s640/20100630112458131.jpeg" width="387" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;자세한 스펙문서는 아래 주소를 참조하세요 :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hancom.co.kr/downLoad.downView.do?targetRow=1&amp;amp;seqno=3202&amp;amp;mcd_save=005"&gt;http://www.hancom.co.kr/downLoad.downView.do?targetRow=1&amp;amp;seqno=3202&amp;amp;mcd_save=005&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3434781198642627937?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3434781198642627937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/07/hwp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3434781198642627937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3434781198642627937'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/07/hwp.html' title='한컴 hwp 포맷 공개'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KYUsDAgl5oc/TCv0m7a2n8I/AAAAAAAAAFo/3VITUp6EWjI/s72-c/20100630112458131.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1985689947161574255</id><published>2010-06-14T12:23:00.002+09:00</published><updated>2010-06-14T12:25:30.137+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codeengn'/><category scheme='http://www.blogger.com/atom/ns#' term='RCE'/><title type='text'>2010 4th CodeEngn Reverse Engineering Conference</title><content type='html'>Address:&amp;nbsp;&lt;a href="http://codeengn.com/ce2010"&gt;http://codeengn.com/ce2010&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KYUsDAgl5oc/TBWguYHNw9I/AAAAAAAAAFg/70ervJCgR5c/s1600/2010_codeengn_poster14.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/TBWguYHNw9I/AAAAAAAAAFg/70ervJCgR5c/s640/2010_codeengn_poster14.jpg" width="451" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;코드엔진에서 주최하는 리버싱 관련 컨퍼런스가 올해에도 개최하네요&lt;br /&gt;&lt;br /&gt;작년에 상당히 재미있게 봐서 올해도 기대가 되는 컨퍼런스입니다.&lt;br /&gt;&lt;br /&gt;물론 학내 행사로 인해 못갈 확률이 상당히 높지만,&lt;br /&gt;&lt;br /&gt;리버싱에 관심은 있지만 실력이 떨어지시는 분들, 보안 종사자들과 인맥을 다지고 싶으신 분들은 꼭 접해보셨으면 합니다. :)&lt;br /&gt;&lt;br /&gt;Program&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;strong&gt;Speaker : 심준보 / passket /&amp;nbsp;&lt;a href="http://twitter.com/passket" style="color: #585858; text-decoration: none;" target="_blank"&gt;@passket&amp;nbsp;&lt;/a&gt;/&amp;nbsp;&lt;a href="http://passket.tistory.com/" style="color: #585858; text-decoration: none;" target="_blank"&gt;passket.tistory.com&amp;nbsp;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Title : Taint analysis for vulnerability discovery&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Content :&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;strong&gt;Speaker : 김은수 / hahah /&amp;nbsp;&lt;a href="http://twitter.com/hah4h" style="color: #585858; text-decoration: none;" target="_blank"&gt;@hah4h&amp;nbsp;&lt;/a&gt;/&amp;nbsp;&lt;a href="http://beist.org/" style="color: #585858; text-decoration: none;" target="_blank"&gt;beist.org&amp;nbsp;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Title : Defcon 18 CTF 문제풀이&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Content :&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;strong&gt;Speaker : 강병탁 / window31 /&amp;nbsp;&lt;a href="http://twitter.com/window31com" style="color: #585858; text-decoration: none;" target="_blank"&gt;@window31com&amp;nbsp;&lt;/a&gt;/&amp;nbsp;&lt;a href="http://window31.com/" style="color: #585858; text-decoration: none;" target="_blank"&gt;window31.com&amp;nbsp;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Title : Art of Keylogging - 키보드보안과 관계없는 키로거들&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Content :&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;strong&gt;Speaker : Max&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Title : Fighting against Botnet&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;Content : 사이버 전쟁의 대표적 공격 무기가 되어버린 봇넷은 네트워크가 점점 초고속화되고, 복잡해진 상황속에서 7.7 DDoS와 같은 DDoS 공격, 인터넷 계정이나 금융 정보등과 같은 개인 정보 유출 등이 봇넷을 통해 이루어지고 있는 상황이다. 이에 해당 주제 발표에서는 실제 사이버상에서 운영되고 있는 봇넷들을 분석해 보며, 그들의 추구하는 봇넷 비즈니스 모델을 찾아보려 한다. 또한, 봇넷의 설계, 운영, 관리, 대응에 관한 시연 그리고 봇넷들간의 전쟁에 대해 이야기하고자 한다.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: '맑은 고딕', Arial, sans-serif; font-size: 12px; line-height: 25px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;자세한 내용은 맨 위의 주소로 가시면 볼 수 있습니다. :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1985689947161574255?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1985689947161574255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/06/2010-4th-codeengn-reverse-engineering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1985689947161574255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1985689947161574255'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/06/2010-4th-codeengn-reverse-engineering.html' title='2010 4th CodeEngn Reverse Engineering Conference'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KYUsDAgl5oc/TBWguYHNw9I/AAAAAAAAAFg/70ervJCgR5c/s72-c/2010_codeengn_poster14.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7365268295719410710</id><published>2010-06-11T13:41:00.005+09:00</published><updated>2012-02-01T00:06:13.288+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MacOSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>Mac Forensics 최근 동향</title><content type='html'>3월 초 코드게이트를 하면서 &lt;a href="http://twitter.com/beist"&gt;@beist&lt;/a&gt;님과 &lt;a href="http://www.twitter.com/flee74"&gt;@flee74&lt;/a&gt;님의 맥북을 보고 지르게된 MacBook Pro!!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;물론 지름신도 있었지만, Mac OS라는 환경을 알아두면 나중에 많이 도움이 될 것 같아서 구매했었다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;그리고 지금은 나의 졸업 논문 또한 맥과 관련된 페이퍼를 생각하고 있을 정도로 나에게 또다른 재미를 안겨주고 있다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;정보를 찾다보면, Mac OS과 관련된 포렌식 이슈는 많진 않지만 간간히 올라오고 있는 것 같다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;외국에선 생각보다 많은 사람들이&amp;nbsp;&amp;nbsp;MacBook을 사용해서도 있고, 최근 아이폰과 아이패드 이슈와 맞물려서 자연스레 생긴 분위기인 것 같다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(참고로 beist님도 관점은 다르지만&amp;nbsp;&amp;nbsp;Mac OS의 보안 이슈에 대해 연구하는 것으로 알고 있다. 아님 뭐.. :p )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MAC OS X 시스템 조사 시 분석 부분에 대해서는 purdue university에서 올라온 페이퍼가 내용이 부족한 면이 없잖아 있지만 괜찮았다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www2.tech.purdue.edu/cit/Courses/cit556/readings/MacForensicsCraiger.pdf"&gt;MAC Forensics: HFS+ File System&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이 내용을 기준으로 몇몇 MAC의 포렌식 이슈에 대해 세미나를 한 적이 있어서 해당 문서도 첨부하였다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://forensic.korea.ac.kr/~webmaster/xe/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=3658&amp;amp;sid=9f0aee531a5bad759aa9b01e1b20248c"&gt;Mac의 보안 이슈 및 분석 방법 - Slide&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;지금까지 알아본 바에 의하면 MAC OS의 파일시스템 부분이나 카빙에 대해서는 어느정도 진행이 된 것 같다. 이는 HFS+ 자체 포맷이 오픈되어 있다고 봐도 무방할 정도이기 때문이다.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.apple.com/mac/library/technotes/tn/tn1150.html"&gt;HFS+ Volume Format - Apple&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;하지만 라이브시스템에서 수집 방법론이 정리된 페이퍼는 아직 못했다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;메모리 이슈와 관련되어서도 FireWire를 통한 수집이 2005년 CanSecWest에서 발표되었고, 그 후엔 딱히 새로운 방법이 연구된 것은 없는 것 같다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;메모리 분석의 경우 최근 블랙햇의 메모리 분석과 관련된 문서 정도인 것 같다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.blackhat.com/presentations/bh-dc-10/Suiche_Matthieu/Blackhat-DC-2010-Advanced-Mac-OS-X-Physical-Memory-Analysis-wp.pdf"&gt;Advanced Mac OS X Memory Forensics&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;그래도 악성코드 분석에 대해서는 어느정도 볼만한 자료가 있다. 그 중에 하나를 추천하자면, Startup Paper로 SANS의 문서를 추천한다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sans.org/reading_room/whitepapers/forensics/mac-os-malware-analysis_33178"&gt;MAC OS X Malware Analysis&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;google scholar를 통해 검색하면, 이 외에도 MAC OS X Rootkit이나 다른 다양한 Malware 이슈들을 검색할 수 있을 것이다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;지금은 졸리므로, 다음 번엔 좀 더 세부적으로 이슈들에 대해 하나씩 글을 써보려고 한다.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7365268295719410710?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7365268295719410710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/06/mac-forensic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7365268295719410710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7365268295719410710'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/06/mac-forensic.html' title='Mac Forensics 최근 동향'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7149249430323530907</id><published>2010-06-03T00:10:00.010+09:00</published><updated>2010-06-07T14:33:32.603+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='codegate2010'/><title type='text'>CodeGate 2010 CTF Final Challenge 3</title><content type='html'>Problem: You must recover files from a raw data.&lt;br /&gt;Analyze to make the best use of physical memory dump for the suspicious files.&lt;br /&gt;Summary: Memory Forensics &amp;amp; File Carving&lt;br /&gt;Answer: IL0v3Cr4cker&lt;br /&gt;&lt;br /&gt;이 문제는 Memory분석을 통해 암호화된 파일의 패스워드를 푸는 문제이다.&lt;br /&gt;제한된 본선 시간을 생각했을 때 단순히 메모리를 Strings로 풀어서 하는 것은 불가능하다.&lt;br /&gt;우선 문제에는 두 파일이 있다.&lt;br /&gt;&lt;br /&gt;-rwxrwxrwx 1 n0fate staff 21840348 Apr 6 22:21 7EF57D98E9542B87E729D396B5A3308A&lt;br /&gt;-rwxrwxrwx 1 n0fate staff 3219124224 Apr 6 22:29 CDA826F2C93C56646863FFECAEA58EC8&lt;br /&gt;&lt;br /&gt;파일용량 상&amp;nbsp;7EF57D98E9542B87E729D396B5A3308A는 비할당영역의 데이터로보이며,&lt;br /&gt;CDA826F2C93C56646863FFECAEA58EC8는 메모리 이미지로 판단된다.&lt;br /&gt;&lt;br /&gt;우선 7EF57D98E9542B87E729D396B5A3308A를 카빙하여 데이터를 확인하였다.&lt;br /&gt;&lt;br /&gt;n0fate:Forensics1300 n0fate$ foremost 7EF57D98E9542B87E729D396B5A3308A&lt;br /&gt;foremost: /usr/local/etc: No such file or directory&lt;br /&gt;Processing: 7EF57D98E9542B87E729D396B5A3308A&lt;br /&gt;|*|&lt;br /&gt;n0fate:output n0fate$ cat audit.txt&lt;br /&gt;Foremost version 1.5.4 by Jesse Kornblum, Kris Kendall, and Nick Mikus&lt;br /&gt;Audit File&lt;br /&gt;Foremost started at Wed Jun 2 23:29:39 2010&lt;br /&gt;Invocation: foremost 7EF57D98E9542B87E729D396B5A3308A&lt;br /&gt;Output directory: /Users/n0fate/CodeGate2010_Final/Forensics1300/output&lt;br /&gt;Configuration file: /usr/local/etc&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;File: 7EF57D98E9542B87E729D396B5A3308A&lt;br /&gt;Start: Wed Jun 2 23:29:39 2010&lt;br /&gt;Length: Unknown&lt;br /&gt;Num Name (bs=512) Size File Offset Comment&lt;br /&gt;0: 00000059.jpg 23 KB 30332&lt;br /&gt;1: 00000107.jpg 31 KB 54908&lt;br /&gt;2: 00000171.jpg 27 KB 87676&lt;br /&gt;3: 00000227.jpg 20 KB 116348&lt;br /&gt;4: 00000275.jpg 41 KB 140924&lt;br /&gt;5: 00000363.jpg 18 KB 185980&lt;br /&gt;6: 00000403.jpg 22 KB 206460&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;290: 00005803.pdf 374 KB 2971260 (PDF is Linearized)&lt;br /&gt;291: 00006555.pdf 366 KB 3356284 (PDF is Linearized)&lt;br /&gt;292: 00007291.pdf 149 KB 3733116&lt;br /&gt;293: 00007595.pdf 859 KB 3888764&lt;br /&gt;Finish: Wed Jun 2 23:29:42 2010&lt;br /&gt;294 FILES EXTRACTED&lt;br /&gt;jpg:= 53&lt;br /&gt;bmp:= 1&lt;br /&gt;ole:= 10&lt;br /&gt;zip:= 15&lt;br /&gt;rar:= 9&lt;br /&gt;exe:= 5&lt;br /&gt;png:= 193&lt;br /&gt;mpg:= 2&lt;br /&gt;pdf:= 6&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;Foremost finished at Wed Jun 2 23:29:42 2010&lt;br /&gt;n0fate:output n0fate$&lt;br /&gt;&lt;br /&gt;상당히 많은 파일이 나왔다. 실제로 하나하나 확인해서 의심가는 파일을 판단할 수도 있지만, 메모리를 이용하라는 문제의 특성 상 패스워드 유추하는 문제가 나올 가능성이 가장 높다. (사실 포렌식 관련 연구를 하지 않았다면 이런 판단은 상당히 하기 힘들 수 있다.) 그래서 메모리 분석 도구를 이용하여 의심가는 파일들을 축소시켜보았다. 도구로는 Volatility를 이용하였다.&lt;br /&gt;&lt;br /&gt;Site: &lt;a href="https://www.volatilesystems.com/default/volatility"&gt;https://www.volatilesystems.com/default/volatility&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;n0fate:Forensics1300 n0fate$ cp /Users/n0fate/Downloads/Volatility-1.3_Beta.tar.gz .&lt;br /&gt;n0fate:Forensics1300 n0fate$ tar xvzf Volatility-1.3_Beta.tar.gz&lt;br /&gt;x Volatility-1.3_Beta&lt;br /&gt;n0fate:Forensics1300 n0fate$ mv CDA826F2C93C56646863FFECAEA58EC8 Volatility-1.3_Beta&lt;br /&gt;n0fate:Forensics1300 n0fate$ cd Volatility-1.3_Beta&lt;br /&gt;n0fate$ python volatility pslist -f CDA826F2C93C56646863FFECAEA58EC8&lt;br /&gt;/Users/n0fate/CodeGate2010_Final/Forensics1300/Volatility-1.3_Beta/forensics/win32/crashdump.py:31:&lt;br /&gt;DeprecationWarning: the sha module is deprecated; use the hashlib module instead&lt;br /&gt;import sha&lt;br /&gt;&lt;br /&gt;Name Pid PPid Thds Hnds Time&lt;br /&gt;System 4 0 87 1262 Thu Jan 01 00:00:00 1970&lt;br /&gt;smss.exe 1124 4 3 19 Tue Apr 06 11:26:25 2010&lt;br /&gt;csrss.exe 1200 1124 13 803 Tue Apr 06 11:26:30 2010&lt;br /&gt;winlogon.exe 1240 1124 24 542 Tue Apr 06 11:26:35 2010&lt;br /&gt;services.exe 1284 1240 15 328 Tue Apr 06 11:26:35 2010&lt;br /&gt;lsass.exe 1296 1240 22 404 Tue Apr 06 11:26:35 2010&lt;br /&gt;ati2evxx.exe 1504 1284 4 92 Tue Apr 06 11:26:36 2010&lt;br /&gt;svchost.exe 1520 1284 21 222 Tue Apr 06 11:26:36 2010&lt;br /&gt;svchost.exe 1580 1284 11 346 Tue Apr 06 11:26:37 2010&lt;br /&gt;svchost.exe 408 1284 76 1516 Tue Apr 06 11:26:37 2010&lt;br /&gt;svchost.exe 460 1284 5 108 Tue Apr 06 11:26:38 2010&lt;br /&gt;ati2evxx.exe 504 1240 5 108 Tue Apr 06 11:26:38 2010&lt;br /&gt;svchost.exe 760 1284 6 85 Tue Apr 06 11:26:38 2010&lt;br /&gt;svchost.exe 1184 1284 12 174 Tue Apr 06 11:26:38 2010&lt;br /&gt;spoolsv.exe 1668 1284 11 127 Tue Apr 06 11:26:39 2010&lt;br /&gt;sched.exe 1708 1284 8 160 Tue Apr 06 11:26:39 2010&lt;br /&gt;explorer.exe 2032 1936 18 681 Tue Apr 06 11:26:40 2010&lt;br /&gt;atiptaxx.exe 828 2032 2 104 Tue Apr 06 11:26:44 2010&lt;br /&gt;vmware-tray.exe 848 2032 3 41 Tue Apr 06 11:26:44 2010&lt;br /&gt;avgnt.exe 868 2032 5 95 Tue Apr 06 11:26:44 2010&lt;br /&gt;ctfmon.exe 920 2032 1 247 Tue Apr 06 11:26:45 2010&lt;br /&gt;DTLite.exe 932 2032 2 93 Tue Apr 06 11:26:45 2010&lt;br /&gt;wcescomm.exe 952 2032 2 127 Tue Apr 06 11:26:45 2010&lt;br /&gt;RocketDock.exe 1036 2032 4 228 Tue Apr 06 11:26:45 2010&lt;br /&gt;rapimgr.exe 1640 1520 3 127 Tue Apr 06 11:26:47 2010&lt;br /&gt;Launchy.exe 1736 2032 2 187 Tue Apr 06 11:26:47 2010&lt;br /&gt;Dropbox.exe 1744 2032 14 381 Tue Apr 06 11:26:47 2010&lt;br /&gt;avguard.exe 412 1284 27 102 Tue Apr 06 11:27:02 2010&lt;br /&gt;hasplms.exe 1884 1284 7 92 Tue Apr 06 11:27:06 2010&lt;br /&gt;jqs.exe 1020 1284 5 161 Tue Apr 06 11:27:11 2010&lt;br /&gt;ntrNTService.ex 1368 1284 1 24 Tue Apr 06 11:27:13 2010&lt;br /&gt;AutoPatcher.exe 1376 1368 0 -1 Tue Apr 06 11:27:13 2010&lt;br /&gt;vmnat.exe 968 1284 3 59 Tue Apr 06 11:27:14 2010&lt;br /&gt;vmnetdhcp.exe 724 1284 2 38 Tue Apr 06 11:27:15 2010&lt;br /&gt;vmware-authd.ex 2556 1284 7 212 Tue Apr 06 11:27:30 2010&lt;br /&gt;alg.exe 3028 1284 5 104 Tue Apr 06 11:27:48 2010&lt;br /&gt;Neturo.exe 3060 1368 1 55 Tue Apr 06 11:27:49 2010&lt;br /&gt;NateOnMain.exe 2972 2904 23 418 Tue Apr 06 11:28:01 2010&lt;br /&gt;firefox.exe 3280 2032 26 371 Tue Apr 06 11:30:00 2010&lt;br /&gt;iexplore.exe 2308 2032 10 349 Tue Apr 06 11:30:06 2010&lt;br /&gt;iexplore.exe 2616 2308 17 590 Tue Apr 06 11:30:08 2010&lt;br /&gt;opera.exe 1068 2032 12 301 Tue Apr 06 11:30:22 2010&lt;br /&gt;eclipse.exe 4004 1036 24 570 Tue Apr 06 11:30:28 2010&lt;br /&gt;procexp.exe 4016 1036 4 292 Tue Apr 06 11:30:28 2010&lt;br /&gt;OpenCapture.exe 856 1036 3 173 Tue Apr 06 11:30:32 2010&lt;br /&gt;PEiD.exe 2272 1036 1 47 Tue Apr 06 11:30:34 2010&lt;br /&gt;filezilla.exe 244 1036 3 133 Tue Apr 06 11:30:35 2010&lt;br /&gt;ResHacker.exe 1868 1036 1 55 Tue Apr 06 11:30:38 2010&lt;br /&gt;TweetDeck.exe 2052 2032 9 383 Tue Apr 06 11:31:54 2010&lt;br /&gt;EnCase.exe 2176 2032 2 144 Tue Apr 06 11:31:56 2010&lt;br /&gt;OUTLOOK.EXE 2160 2032 17 2105 Tue Apr 06 11:32:08 2010&lt;br /&gt;vmware.exe 2192 2032 11 420 Tue Apr 06 11:32:15 2010&lt;br /&gt;vmware-vmx.exe 216 2192 7 417 Tue Apr 06 11:32:40 2010&lt;br /&gt;vmware-vmx.exe 3252 2192 7 388 Tue Apr 06 11:32:42 2010&lt;br /&gt;vmware-vmx.exe 3432 2192 8 414 Tue Apr 06 11:32:43 2010&lt;br /&gt;vmware-vmx.exe 4072 2192 7 407 Tue Apr 06 11:32:44 2010&lt;br /&gt;cmd.exe 1772 2032 1 36 Tue Apr 06 11:36:44 2010&lt;br /&gt;conime.exe 2960 1772 1 51 Tue Apr 06 11:36:47 2010&lt;br /&gt;notepad++.exe 3548 2032 0 -1 Tue Apr 06 11:38:16 2010&lt;br /&gt;notepad++.exe 3140 2032 1 66 Tue Apr 06 11:38:51 2010&lt;br /&gt;Deploy.exe 2592 3020 2 68 Tue Apr 06 11:40:50 2010&lt;br /&gt;WinRAR.exe 3556 2032 6 169 Tue Apr 06 11:41:47 2010&lt;br /&gt;win32dd.exe 2964 1772 1 22 Tue Apr 06 11:42:23 2010&lt;br /&gt;cmd.exe 840 2592 1 34 Tue Apr 06 11:42:30 2010&lt;br /&gt;devenv.com 3616 840 1 21 Tue Apr 06 11:42:32 2010&lt;br /&gt;devenv.exe 2108 3616 1 351 Tue Apr 06 11:42:32 2010&lt;br /&gt;&lt;br /&gt;n0fate:Volatility-1.3_Beta n0fate$&lt;br /&gt;&lt;br /&gt;메모리를 DD로 덤프한 흔적부터 다양한 프로세스목록을 확인할 수 있었다. 재밌는건 foremost로 덤프한 파일 중 패스워드를 저장하는 파일에서 메모리의 프로세스목록에 나온 것과 일치하는 것은 WinRAR만 존재한다는 점이다.&lt;br /&gt;이점을 확인하고 우선 RAR파일 중 암호화된 파일만 걸러내었다.&lt;br /&gt;&lt;br /&gt;n0fate:rar n0fate$ unrar x 00039387.rar&lt;br /&gt;UNRAR 3.93 freeware Copyright (c) 1993-2010 Alexander Roshal&lt;br /&gt;Extracting from 00039387.rar&lt;br /&gt;Enter password (will not be echoed) for win32.hlp:&lt;br /&gt;Extracting win32.hlp 98%&lt;br /&gt;Encrypted file: CRC failed in win32.hlp (password incorrect ?)&lt;br /&gt;Total errors: 1&lt;br /&gt;&lt;br /&gt;rar파일 중 유일하게 암호가 걸린 파일이다. 메모리 파일에서 패스워드를 알아내기 위해 WinRAR.exe프로세스의 메모리 영역만을 뽑아내었다. 이는 프로세스 구조체에 등록된 페이지테이블엔트리 주소를 통해 알아낼 수 있다. 물론 Volatility에서 이 기능을 지원하기 때문에 쉽게 메모리 영역을 추출해낼 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;n0fate:Volatility-1.3_Beta n0fate$ python volatility vaddump -f CDA826F2C93C56646863FFECAEA58EC8 -p 3556 -d WINRAR&lt;br /&gt;/Users/n0fate/CodeGate2010_Final/Forensics1300/Volatility-1.3_Beta/forensics/win32/crashdump.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib moduleinstead&lt;br /&gt;import sha&lt;br /&gt;************************************************************************&lt;br /&gt;Pid: 3556&lt;br /&gt;n0fate:Volatility-1.3_Beta n0fate$ cd WINRAR/n0fate:WINRAR n0fate$ lsWinRAR.exe.93acaa8.00010000-00010fff.dmpWinRAR.exe.93acaa8.00020000-00020fff.dmpWinRAR.exe.93acaa8.00030000-0012ffff.dmpWinRAR.exe.93acaa8.00130000-00132fff.dmpWinRAR.exe.93acaa8.00140000-00141fff.dmpWinRAR.exe.93acaa8.00150000-0024ffff.dmpWinRAR.exe.93acaa8.00250000-0025ffff.dmpWinRAR.exe.93acaa8.00260000-0026ffff.dmpWinRAR.exe.93acaa8.00270000-00285fff.dmpWinRAR.exe.93acaa8.00290000-002d0fff.dmpWinRAR.exe.93acaa8.002e0000-00320fff.dmpWinRAR.exe.93acaa8.00330000-00335fff.dmpWinRAR.exe.93acaa8.00340000-00380fff.dmpWinRAR.exe.93acaa8.00390000-0039ffff.dmpWinRAR.exe.93acaa8.003a0000-003a2fff.dmpWinRAR.exe.93acaa8.003b0000-&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;7d1d6fff.dmpWinRAR.exe.93acaa8.7e410000-7e4a0fff.dmpWinRAR.exe.93acaa8.7f6f0000-7f7effff.dmpWinRAR.exe.93acaa8.7ffa0000-7ffd2fff.dmpWinRAR.exe.93acaa8.7ffd8000-7ffd8fff.dmpWinRAR.exe.93acaa8.7ffda000-7ffdafff.dmpWinRAR.exe.93acaa8.7ffdb000-7ffdbfff.dmpWinRAR.exe.93acaa8.7ffdc000-7ffdcfff.dmpWinRAR.exe.93acaa8.7ffdd000-7ffddfff.dmpWinRAR.exe.93acaa8.7ffde000-7ffdefff.dmpWinRAR.exe.93acaa8.7ffdf000-7ffdffff.dmp&lt;br /&gt;n0fate:WINRAR n0fate$&lt;br /&gt;n0fate:WINRAR n0fate$ strings * &amp;gt; string/result.txt&lt;br /&gt;strings: can't map file: string (Invalid argument)&lt;br /&gt;n0fate:WINRAR n0fate$ cd string/n0fate:string&lt;br /&gt;n0fate$ ls -al&lt;br /&gt;total 1992&lt;br /&gt;drwxr-xr-x 3 n0fate staff 102 Jun 3 00:00 .&lt;br /&gt;drwxr-xr-x 151 n0fate staff 5134 Jun 2 23:59 ..&lt;br /&gt;-rw-r--r-- 1 n0fate staff 1018496 Jun 3 00:00&amp;nbsp;result.txt&lt;br /&gt;n0fate:string n0fate$&lt;br /&gt;&lt;br /&gt;결과파일을 winrar cracking도구의 사전 파일로 넣거나, 1메가기 때문에 직접 확인해도 된다. 실제로 문자열 중에 'M4J3ST0UCH'가 패스워드로 사용되었다.&lt;br /&gt;&lt;br /&gt;n0fate:rar n0fate$ unrar x 00039387.rar&lt;br /&gt;UNRAR 3.93 freeware Copyright (c) 1993-2010 Alexander Roshal&lt;br /&gt;Extracting from 00039387.rar&lt;br /&gt;Enter password (will not be echoed) for win32.hlp:&lt;br /&gt;Extracting win32.hlp OK All OKn0fate:rar n0fate$ file win32.hlp&lt;br /&gt;win32.hlp: PNG image data, 688 x 292, 8-bit/color RGB, non-interlacedn0fate:rar&lt;br /&gt;n0fate$ mv win32.hlp win32.png&lt;br /&gt;n0fate:rar n0fate$&lt;br /&gt;&lt;br /&gt;이미지 파일은 아래와 같다.&lt;br /&gt;&lt;img alt="Screen shot 2010-06-03 at 12.05.41 AM.png" height="72" src="http://farm5.static.flickr.com/4005/4662994725_b576510330.jpg" width="457" /&gt;&lt;br /&gt;이 문제는 실제로 메모리 포렌식 기술을 알아야 풀 수 있는 문제이다. 물론 sutegoma2팀의 경우 직접 3.2기가의 메모리를 strings한 대략 500메가의 데이터를 눈으로 봐서 푸는 경이로운 능력을 보여줬지만 말이다 :p&lt;br /&gt;&lt;br /&gt;예전 암호화를 지원하는 프로그램들은 프로세스가 종료되도 메모리에 암호화에 사용된 패스워드가 남는 경우가 많지만, 최근의 도구들은 프로세스 종료 후에 없애거나 또는 애초에 암호화 후 바로 없애버리고 있다. WinRaR의 경우 프로세스가 종료되지 않는 이상 패스워드가 남기 때문에, 이런 지식을 가지고 있다면, 포렌식 조사 시 암호화된 파일의 해독 시간을 많이 감소시킬 수 있다.&lt;br /&gt;&lt;br /&gt;- 문제에 사용된 파일은 메일로 요청 시 보내드리도록 하겠습니다. 메일을 보내실 분들은 블로그 상단의 'Contact Me'를 눌러주시기 바랍니다.&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7149249430323530907?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7149249430323530907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/06/codegate-2010-ctf-challenge-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7149249430323530907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7149249430323530907'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/06/codegate-2010-ctf-challenge-3.html' title='CodeGate 2010 CTF Final Challenge 3'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4005/4662994725_b576510330_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5516812903994783577</id><published>2010-05-29T21:48:00.001+09:00</published><updated>2010-05-29T21:48:14.941+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rsa768bit'/><category scheme='http://www.blogger.com/atom/ns#' term='defcon'/><title type='text'>Defcon 18 - Crypto 400</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Type: Crypto&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Point: 400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Question: crackme&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Summary: RSA 768 bits crack&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Answer:&amp;nbsp;how long until 1024 falls by the wayside?&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;이 문제는 RSA 1월 초에 발표된 깨진 768비트 키를이용하는 공격이다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;이에 대한 Paper는 아래에 올려두었다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://pds20.egloos.com/pds/201005/25/74/006.pdf" player="0" style="background: url(http://md.egloos.com/img/eg/icon_file.gif) no-repeat left; list-style: none; padding: 0 0 0 15px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;006.pdf&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;우선 문제의 파일은 아래와 같다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://pds20.egloos.com/pds/201005/25/74/c400_95bcb7c5807a366d.gz" player="0" style="background: url(http://md.egloos.com/img/eg/icon_file.gif) no-repeat left; list-style: none; padding: 0 0 0 15px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;c400_95bcb7c5807a366d.gz&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;아래와 같은 방법으로 풀 수 있었다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:Desktop n0fate$ mkdir c400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:Desktop n0fate$ cp defcon18/c400_95bcb7c5807a366d.gz c400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:Desktop n0fate$ cd c400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$ tar xvzf c400_95bcb7c5807a366d.gz&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;x blob.dat&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;x pubkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$ file *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;blob.dat: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;c400_95bcb7c5807a366d.gz: gzip compressed data, was "c400_95bcb7c5807a366d", from Unix, last modified: Sun May 23 12:17:36 2010&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;pubkey.pem: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ASCII text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$ cat pubkey.pem&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;-----BEGIN RSA PUBLIC KEY-----&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;MGgCYQDK2YRVfJfgOUMaImrXJ/DG1D7z1BhGnxs3UEmyKYQ+6fg7H5dzisJ09fYf&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;QB8h8ZE+S2S7MbVaONOYwN/tALE5LwiJcRxEs1nnl2xhf8xzTwbj6VwmR2CRtS9G&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;LnlBPbUCAwEAAQ==&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;-----END RSA PUBLIC KEY-----&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$ xxd blob.dat&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000000: 8d33 84e4 1159 8ef3 0d52 db86 eaf8 1af0 &amp;nbsp;.3...Y...R......&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000010: 0028 a37d 9e6f 79b0 4ba3 feb6 64df 9441 &amp;nbsp;.(.}.oy.K...d..A&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000020: 9bc0 bf3a af54 babd c3a7 2087 3d0a a428 &amp;nbsp;...:.T.... .=..(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000030: bc28 3a5c 3ee7 228e b089 b6b4 7434 133f &amp;nbsp;.(:\&amp;gt;.".....t4.?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000040: b8f1 c870 889f 8f68 1ca1 c8e0 5de4 ee4f &amp;nbsp;...p...h....]..O&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000050: f915 6040 1cb3 2c77 619a c210 1ab7 da09 &amp;nbsp;..`@..,wa.......&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;openssl enc -d -base64 -in pubkey.pem -out pubkey.decoded&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;xxd pubkey.decoded&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000000: 3068 0261 00ca d984 557c 97e0 3943 1a22 &amp;nbsp;0h.a....U|..9C."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000010: 6ad7 27f0 c6d4 3ef3 d418 469f 1b37 5049 &amp;nbsp;j.'...&amp;gt;...F..7PI&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000020: b229 843e e9f8 3b1f 9773 8ac2 74f5 f61f &amp;nbsp;.).&amp;gt;..;..s..t...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000030: 401f 21f1 913e 4b64 bb31 b55a 38d3 98c0 &amp;nbsp;@.!..&amp;gt;Kd.1.Z8...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000040: dfed 00b1 392f 0889 711c 44b3 59e7 976c &amp;nbsp;....9/..q.D.Y..l&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000050: 617f cc73 4f06 e3e9 5c26 4760 91b5 2f46 &amp;nbsp;a..sO...\&amp;amp;G`../F&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;0000060: 2e79 413d b502 0301 0001 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .yA=......&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;우선 인증서 구조 포맷을 기준으로 modulus 부분을 끄집어 내었다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;00ca d984 557c 97e0 3943 1a22&amp;nbsp;6ad7 27f0 c6d4 3ef3 d418 469f 1b37 5049&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;b229 843e e9f8 3b1f 9773 8ac2 74f5 f61f&amp;nbsp;401f 21f1 913e 4b64 bb31 b55a 38d3 98c0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;dfed 00b1 392f 0889 711c 44b3 59e7 976c&amp;nbsp;617f cc73 4f06 e3e9 5c26 4760 91b5 2f46&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;2e79 413d b502&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;이 부분은 코드게이트 2010에 chal7과 타겟만 다를 뿐 실제로는 키가 같기 때문에, 동일한 풀이가 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Codegate 2010 PreQual write-up:&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.box.net/shared/4ep3jtncoi"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;http://www.box.net/shared/4ep3jtncoi&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;768비트에서 이전 코드게이트의 풀이에 이용된 코드를 컴파일 하여 손쉽게 개인키를 생성할 수 있었다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://pds19.egloos.com/pds/201005/25/74/create_private.c" player="0" style="background: url(http://md.egloos.com/img/eg/icon_file.gif) no-repeat left; list-style: none; padding: 0 0 0 15px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;create_private.c&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://pds18.egloos.com/pds/201005/25/74/e_os.h" player="0" style="background: url(http://md.egloos.com/img/eg/icon_file.gif) no-repeat left; list-style: none; padding: 0 0 0 15px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;e_os.h&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Codegate Chal7의 코드가 올라온 페이지:&amp;nbsp;http://blog.stalkr.net/2010/03/codegate-decrypting-https-ssl-rsa-768.html&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;( thx to StalkR :) )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$ gcc -lssl -o create_private create_private.c&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$ ls&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;blob.dat &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;create_private.c &amp;nbsp;pubkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;create_private &amp;nbsp;e_os.h &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pubkey.decoded&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;./create_private&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;ls&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;blob.dat &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;create_private.c &amp;nbsp;private.pem &amp;nbsp; &amp;nbsp; pubkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;create_private &amp;nbsp;e_os.h &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pubkey.decoded&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;cat private.pem&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;-----BEGIN RSA PRIVATE KEY-----&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;MIIBywIBAAJhAMrZhFV8l+A5Qxoiatcn8MbUPvPUGEafGzdQSbIphD7p+Dsfl3OK&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;wnT19h9AHyHxkT5LZLsxtVo405jA3+0AsTkvCIlxHESzWeeXbGF/zHNPBuPpXCZH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;YJG1L0YueUE9tQIDAQABAmB0DeSHYEQoNbqtXhmQRTqdFtt5dtP4u5i/mcDAHL6b&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;nBK4CMgGg9HjRsFseawWKHTyjKYQwbl+Xh/66VclzgxrAxw+GIsXGHp5OzIsxABM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;Vo52ybJYVC6iotbs1GL/9AECMQDuvm3SPOfpnA4iSf7MRBjDSvdOQYv6cUw3kYKE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;FKsY8y/X4JMGKkmwMCJcyEX5mrUCMQDZgux7RA4oadJTXlH5G6zD6266BC4Qbm+H&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;XD0X5T22X//W5OmjYITOYPg9dU3X9wECMQCnEe/8Xc7U9fYWHL4H5+eEUuO5ibkR&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;K1Pw1w0ErQoGzbe/VFLOz6z9dNG3KBd/0rkCMQCXWi353DJJ1tDe6Bv8TlCah+Gl&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;mLEBCAedVgbA8OhPVl+tBd65q7jd7sXt5glDxQECMGPaTUJkasmL/oHWpol6MdKQ&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;dntcO36IGfmwHw6H2TJLFpeozkoCUIj7+MWl4ZXaag==&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;-----END RSA PRIVATE KEY-----&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;생성된 키를 통한 복호화&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;openssl rsautl -decrypt -in blob.dat -inkey private.pem -out result.dat&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&amp;nbsp;cat result.dat&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;how long until 1024 falls by the wayside?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;n0fate:c400 n0fate$&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;사실 크립토400문제를 잔뜩 기대하고 있었는데,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;이미 널리 알려진 문제이고 코드게이트에서 이미 나왔던 문제가 똑같이 나와서 많이 씁쓸했다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana;"&gt;내년에는 주최측에서도 이런 부분에 대해 더 검증이 필요할 것 이라 생각한다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5516812903994783577?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5516812903994783577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/05/type-crypto-point-400-question-crackme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5516812903994783577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5516812903994783577'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/05/type-crypto-point-400-question-crackme.html' title='Defcon 18 - Crypto 400'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-632310131669953155</id><published>2010-05-29T20:37:00.001+09:00</published><updated>2010-05-29T21:49:03.490+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='defcon'/><title type='text'>Defcon 18 Forensics 400</title><content type='html'>defcon 18 의 포렌식 400번 문제는 USB 라이브 리눅스 이미지 분석 문제이다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ file f400_9c1559dd4d155c99.tar.gz&lt;br /&gt;&lt;br /&gt;f400_9c1559dd4d155c99.tar.gz: gzip compressed data, from Unix, last modified: Tue Jun 2 09:53:23 2009&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ tar xvzf f400_9c1559dd4d155c99.tar.gz&lt;br /&gt;&lt;br /&gt;x ./MicroVault.dd&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ file MicroVault.dd&lt;br /&gt;&lt;br /&gt;MicroVault.dd: x86 boot sector, code offset 0x58, OEM-ID "MSDOS5.0", sectors/cluster 32, root entries 512, Media descriptor 0xf8, sectors/FAT 248, heads 255, sectors 2030592 (volumes &amp;gt; 32 MB) , serial number 0x44786c73, unlabeled, FAT (16 bit)&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;문제의 이미지는 단일 파티션이 아닌 전체 물리디스크를 이미지한 것으로 확인할 수 있었다. 우선 백업본을 하나 만들어서 qemu를 이용하여 장치를 구동시켰다.&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ cp MicroVault.dd MicroVault_Copy.dd&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ md5 MicroVault*&lt;br /&gt;&lt;br /&gt;MD5 (MicroVault.dd) = 4a9d000a20ca281f8624ab6b6abbad91&lt;br /&gt;&lt;br /&gt;MD5 (MicroVault_Copy.dd) = 4a9d000a20ca281f8624ab6b6abbad91&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ qemu -L /opt/local/share/qemu/ -hda MicroVault_Copy.dd&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;루트 사용을 위해 부팅과정에서 싱글모드로 진입할 수 있도록 부팅인자에 1을 넣었다.&lt;br /&gt;&lt;br /&gt;이미지 부팅과정에서 나타나는 정보가 러시아어로 써있는 것을 보아 그쪽에서 제작된 것 같았다.&lt;br /&gt;&lt;br /&gt;&lt;img alt="defon 18 f400" class="f400" height="102" src="http://farm5.static.flickr.com/4049/4649248029_c6c77936dd.jpg" width="480" /&gt;&lt;br /&gt;&lt;br /&gt;라이브 유저의 홈 디렉터리는 noCigar란 파일 하나만 존재했으며, 이 파일의 내용은 이건 너가 찾아야할 파일이 아니라는 말 뿐이였다. 그래서 파일시스템 이미지 자체를 분석하는 쪽으로 방향을 바꾸었다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ mkdir evif400&lt;br /&gt;&lt;br /&gt;n0fate:Desktop n0fate$ autopsy -d ~/Desktop/evif400/&lt;br /&gt;&lt;br /&gt;============================================================================&lt;br /&gt;&lt;br /&gt;Autopsy Forensic Browser&lt;br /&gt;&lt;br /&gt;http://www.sleuthkit.org/autopsy/&lt;br /&gt;&lt;br /&gt;ver 2.21&lt;br /&gt;&lt;br /&gt;============================================================================&lt;br /&gt;&lt;br /&gt;Evidence Locker: /Users/n0fate/Desktop/evif400&lt;br /&gt;&lt;br /&gt;Start Time: Sat May 29 19:30:55 2010&lt;br /&gt;&lt;br /&gt;Remote Host: localhost&lt;br /&gt;&lt;br /&gt;Local Port: 9999&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Open an HTML browser on the remote host and paste this URL in it:&lt;br /&gt;&lt;br /&gt;http://localhost:9999/autopsy&lt;br /&gt;&lt;br /&gt;Keep this process running and use &amp;lt;ctrl-c&amp;gt; to exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="Screen shot 2010-05-29 at 7.32.45 PM.png" height="263" src="http://farm5.static.flickr.com/4038/4649248647_5305bc8ef3.jpg" width="480" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LiveOS 폴더로 가면 overlay-QUALS09-4478-6C73이라는 0.8기가의 파일을 볼 수 있으며, 이 파일은 실제론 LVM Snapshot 파일로 명시되어 있다.&lt;br /&gt;&lt;br /&gt;&lt;img alt="Screen shot 2010-05-29 at 7.34.26 PM.png" height="228" src="http://farm5.static.flickr.com/4033/4649866766_30bfba1700.jpg" width="480" /&gt;&lt;br /&gt;&lt;br /&gt;보통은 LVM 스냅샷을 통해 볼륨의 현재 상태를 백업해 두고, 문제 발생 시 복구하는 용도로 많이 이용되지만, 이 문제의 경우 단일 스냅샷으로 시스템까지 운영되므로, 부팅 전 후 시점에 스냅샷을 생성/사용 하는 것으로 판단된다.&lt;br /&gt;&lt;br /&gt;문제가 빈칸을 채우라 였으므로, "___"(blank)로 검색을 해보았다.&lt;br /&gt;&lt;br /&gt;&lt;img alt="Screen shot 2010-05-29 at 7.54.17 PM.png" height="148" src="http://farm5.static.flickr.com/4044/4649866586_d60caba4b5.jpg" width="480" /&gt;&lt;br /&gt;&lt;br /&gt;스트링 검색으로 정답을 바로 확인할 수 있었다.&lt;br /&gt;&lt;br /&gt;문제에 답이 있는 문제(?)였지만, 실제론 LVM 스냅샷 파일은 특정 시점의 논리볼륨의 상태를 그대로 보관하기 때문에, USB를 이용한 Bootable Live OS에 많이 사용되는 것 같다. 이 문제 또한 USB내에 스냅샷 이미지를 저장한다는 점을 알리기 위한 문제정도의 의미가 있는 것 같다.&lt;br /&gt;&lt;br /&gt;이대로 끝나면 섭섭하니 LVM에 대한 몇가지 문서를 링크걸어둔다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;Document: &lt;a href="http://en.wikipedia.org/wiki/Logical_volume_management"&gt;Logical Volume Management - Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Document: &lt;a href="http://www.cs.ubc.ca/grads/resources/thesis/Nov06/Bhavana.pdf" title="Disk Performance of Copy-onWrite Snapshot Logical Volumes"&gt;Disk Performance of Copy-onWrite Snapshot Logical Volumes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blog: &lt;a href="http://forensic-proof.com/76" title="Forensic-Proof"&gt;Logical Volume Manager - KOR&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-632310131669953155?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/632310131669953155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/05/defcon-18-forensics-400.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/632310131669953155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/632310131669953155'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/05/defcon-18-forensics-400.html' title='Defcon 18 Forensics 400'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4049/4649248029_c6c77936dd_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3514337860826855477</id><published>2010-05-29T13:04:00.009+09:00</published><updated>2010-05-29T21:49:24.286+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='defon'/><category scheme='http://www.blogger.com/atom/ns#' term='raid'/><title type='text'>RAID system forensics</title><content type='html'>이번 DefCon에서 Forensic 400에는 LVM Snapshot, Forensic 500에는 RAID시스템이 출제되었다.&lt;br /&gt;&lt;br /&gt;(문제 풀이에 대해서는 proneer님이 올린 글에 잘 나와있으니 참조하기 바란다.)&lt;br /&gt;LVM -&amp;nbsp;&lt;a href="http://forensic-proof.com/92"&gt;Defcon 18 CTF Forensic 400 Writeup(Written by proneer)&lt;/a&gt;&lt;br /&gt;RAID -&amp;nbsp;&lt;a href="http://forensic-proof.com/93"&gt;Defcon 18 CTF Forensic 500 Writeup(Written by proneer)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;리눅스의 dmraid와 같은 도구를 이용하여 많은 해커들이 풀었지만, 국내뿐만 아니라 해외에서도 인케이스와 같이 유명한 디지털 포렌식 도구들은 윈도우 환경을 기준으로 개발되고 있다. 그래서 실제로 분석관들이 사용할 만한 도구들이 어떤 것이 있는지 확인해보았다. RAID를 구성시켜주는 도구는 윈도우 환경에서 크게 4가지가 있다.&lt;br /&gt;&lt;br /&gt;RAID Reconstructor, WinHex(Specialist License), Encase, SMART&lt;br /&gt;각 도구들에 대한 세부적인 설명은 아래의 문서를 참조하기 바란다.&lt;br /&gt;&lt;br /&gt;Document:&amp;nbsp;&lt;a href="http://www.thetrainingco.com/pdf/Wednesday/RAID%20Rebuilding%20-%20Dickerman.pdf"&gt;RAID Rebuilding&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;proneer님의 글에 나와있듯이 WinHex와 Encase는 이미지를 연결하고 분석까지 한번에 해주는 도구이지만, Strip Size와 디스크 순서를 분석해주는 기능이 없다. 이는 보통 장치 컨트롤러를 통해 어느정도 정보를 획득할 수 있긴 하지만, Strip Size의 경우 RAID를 구성하는 사람 마음대로 설정이 가능하기 때문에, 조사하는 입장에서는 이 크기에 대한 분석이 필요하다. 그래서&amp;nbsp;defcon 18의 문제 이미지에&amp;nbsp;이러한 기능을 제공하는 RAID Reconstructor를 이용하여, 본 도구의 효용성에 대해 확인해보았다.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/TACKUrCQYLI/AAAAAAAAAEY/T59AwP6raHc/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/TACKUrCQYLI/AAAAAAAAAEY/T59AwP6raHc/s320/1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;도구는 레이드에 대한 지식이 적은 사람도 쉽게 사용할 수 있도록 설계되어 있다. 하나의 다이얼로그 창에 총 4개의 스텝으로 구성된 화면이 보이게 된다.&lt;br /&gt;각 스텝의 역할은 다음과 같다.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;레이드의 타입을 선택하고 레이드 구성을 위한 기본적인 설정을 해준다.&lt;/li&gt;&lt;li&gt;분석을 통해 올바른 스트립 크기와 물리디스크의 순서를 결정한다.&lt;/li&gt;&lt;li&gt;결과를 &amp;nbsp;Runtime사 도구로 해석할 수 있는 포맷이나, 단일 이미지 또는 물리디스크에 byte to byte로 데이터를 작성한다.&lt;/li&gt;&lt;li&gt;runtime의 도구를 이용하여 추가적인 분석을 수행한다.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;첫 번째 스텝에서 물리드라이브 설정은 라이브 상태에서 이미지를 수집할 수 있도록 현재 물리디스크를 마운트하거나, 이미 이미징된 파일을 입력으로 받는다. 필자가 사용한 예제는 defcon 18 forensics 500에서 나온 RAID-0 Stripe System이미지를 기준으로 테스트하였다. 레이드 타입을 RAID-0으로 선택하고, &amp;nbsp;두 이미지를 설정한 후 'Open drives'를 통해 오픈하였다.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KYUsDAgl5oc/TACLr1rASYI/AAAAAAAAAEg/s1q6pyiA1ic/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/TACLr1rASYI/AAAAAAAAAEg/s1q6pyiA1ic/s320/2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;오픈하게 되면 총 RAID의 크기가 나타나고 스텝2의 'Analyze'버튼이 활성화 된다. 이 상태에서 Step2의 버튼을 누르면, RAID 구성에 필요한 변수 설정이 나타나게 된다.&lt;br /&gt;&lt;br /&gt;이 순서는 총 3가지 변수를 알아내기 위해 사용되며, 드라이브 순서는 엔트로피를 통해 판단하는 것으로 확인된다. ( 엔트로피를 기준으로 판단한 이유에 대해서는 조사가 필요하다. )&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/TACMMrtoCvI/AAAAAAAAAEo/J4AW7Goqkc0/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/TACMMrtoCvI/AAAAAAAAAEo/J4AW7Goqkc0/s320/3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;예제의 이미지를 수행했을 땐 시작섹터의 오프셋과, 드라이브의 순서는 올바르게 되었지만, 블록 사이즈가 실제와 다르게 나타났다. (이 것 때문에, 이미지가 잘못된게 아니냐고 오해를 할 정도였다.)&lt;br /&gt;첫 테스트부터 이러한 결과를 보여서 약간 아쉽다.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KYUsDAgl5oc/TACMpyVMmkI/AAAAAAAAAEw/Z1p2tAlFrUk/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/TACMpyVMmkI/AAAAAAAAAEw/Z1p2tAlFrUk/s320/4.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;이 과정을 마치고 나면 이미지를 하나로 통합하거나, CD Size인 650mb에 맞게 분할 하거나 압축하여 저장할 수 있고, 또는 Attach한 물리디스크에 데이터를 그대로 덮어씌워 백업본을 생성할 수도 있다.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_KYUsDAgl5oc/TACNac6ffbI/AAAAAAAAAE4/UC4ngmVfYUc/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/TACNac6ffbI/AAAAAAAAAE4/UC4ngmVfYUc/s320/5.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;추가적으로 RAID-5의 구성을 위해 이 도구는 Entropy Test 이외에 XOR Test도 지원한다. 이는 Parity Bit를 체크하기 위한 것으로 데이터의 유효성을 검증하는 것으로 생각된다.(실제 이미지가 없어서 테스트는 못해봤다.)&lt;br /&gt;&lt;br /&gt;본 도구는 전문 분석도구의 기능을 갖추진 못했지만, 다른 RAID분석 도구와 다르게 RAID 구성을 위한 여러 변수들을 자동으로 설정해주는 기능이 있기 때문에, Encase나 WinHex와 함께 사용한다면, 최고의 효율성을 보장받을 수 있을 것이라 생각한다. 단지 예제 이미지에 테스트했을 때 Strip Size에 대해 올바른 결과를 보여주지 못한 점이 아쉽다. (물론 이 부분은 추가적인 테스트가 필요한 부분이라 생각한다.)&lt;br /&gt;&lt;br /&gt;추가적으로 몇몇 RAID 재구성 관련 사이트와 문서를 첨부한다.&lt;br /&gt;Site:&amp;nbsp;&lt;a href="http://www.pyflag.net/"&gt;Forensic and Log Analysis GUI&lt;/a&gt;&lt;br /&gt;Document:&amp;nbsp;&lt;a href="http://www.blogger.com/RAID%20Recovery:%20Recover%20your%20PORN%20by%20Sight%20and%20Sound"&gt;RAID Recovery: Recover your PORN by Sight and Sound (Defcon17)&lt;/a&gt; : 레이드에 대한 기본적인 내용과 데이터 복구에 대한 내용&lt;br /&gt;Document:&amp;nbsp;&lt;a href="http://pyflag.sourceforge.net/Presentations/Raid_Reconstruction.pdf"&gt;RAID Reconstruction and Hooking&lt;/a&gt; : 레이드 재구성과 관련된 문서.&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3514337860826855477?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3514337860826855477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2010/05/raid-system-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3514337860826855477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3514337860826855477'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2010/05/raid-system-analysis.html' title='RAID system forensics'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/TACKUrCQYLI/AAAAAAAAAEY/T59AwP6raHc/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1565787900448537029</id><published>2009-11-13T21:24:00.002+09:00</published><updated>2009-11-13T21:26:58.492+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='Registry'/><title type='text'>NTUSER.DAT만을 통하여 사용자의 그룹정보를 알아내기</title><content type='html'>Windows Registry를 완벽하게 분석하기 위해서는 필요한 파일은 아래와 같다.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Security &lt;/li&gt;&lt;li&gt;default&lt;/li&gt;&lt;li&gt;SAM &lt;/li&gt;&lt;li&gt;Software &lt;/li&gt;&lt;li&gt;System &lt;/li&gt;&lt;li&gt;NTUSER.DAT &lt;/li&gt;&lt;/ul&gt;문제는 수집 시 서버의 정보를 노출하기 꺼려하는 기업들은 조사관이 원하는 계정의 레지스트리 정보만(NTUSER.DAT)을 건네준다. 이 상황에서 사용자의 그룹정보를 확인하려면 어떻게해야할까?&lt;br /&gt;연구실의 레지스트리 분석도구(RegAn)을 통해 NTUSER.DAT를 올려서 확인하였다.&lt;br /&gt;위치: “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy\GroupMembership”&lt;br /&gt;&lt;a href="http://pds17.egloos.com/pds/200910/28/74/d0043874_4ae7f44c173e5.jpg"&gt;&lt;img alt="1" border="0" height="185" src="http://pds15.egloos.com/pds/200910/28/74/d0043874_4ae7f44c53cb4.jpg" style="border-width: 0px; display: inline;" title="1" width="603" /&gt;&lt;/a&gt;&lt;br /&gt;아 래는 저 SID 중 잘 알려진 SID에 대한 정보이다.&lt;br /&gt;SID란?&lt;br /&gt;&lt;blockquote&gt;A security identifier (SID) is a unique value of variable length that is used to identify a security principal or security group in Windows operating systems. Well-known SIDs are a group of SIDs that identify generic users or generic groups. Their values remain constant across all operating systems. &lt;br /&gt;This information is useful for troubleshooting issues involving security. It is also useful for potential display problems that may be seen in the ACL editor. A SID may be displayed in the ACL editor instead of the user or group name.&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://support.microsoft.com/kb/243330" target="_blank"&gt;Well-known Security identifier&lt;/a&gt;&lt;br /&gt;쉽게 볼려면 콘솔(Console)에서 “gpresult”명령으로도 확인할 수 있다.&lt;br /&gt;&lt;a href="http://pds17.egloos.com/pds/200910/28/74/d0043874_4ae7f44c75f90.jpg"&gt;&lt;img alt="2" border="0" height="164" src="http://pds16.egloos.com/pds/200910/28/74/d0043874_4ae7f44c9346b.jpg" style="border-width: 0px; display: inline;" title="2" width="448" /&gt;&lt;/a&gt;&lt;br /&gt;매칭 결과&lt;br /&gt;&lt;table border="1" cellpadding="2" cellspacing="0" style="width: 593px;"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;SID&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;Name&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;Description&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-5-21-Domain Name-513&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;None&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;An identifier authority.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-1-1-0&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;Everyone&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;A group that includes all users, even anonymous users and guests. Membership is controlled by the operating system.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-1-5-32-544&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;BUILTIN\Administrators&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;A built-in group. After the initial installation of the operating system, the only member of the group is the Administrator account. When a computer joins a domain, the Domain Admins group is added to the Administrators group. When a server becomes a domain controller, the Enterprise Admins group also is added to the Administrators group.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-1-5-32-545&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;BUILTIN\Users&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;A built-in group. After the initial installation of the operating system, the only member is the Authenticated Users group. When a computer joins a domain, the Domain Users group is added to the Users group on the computer.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-1-5-4&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;NT AUTHORITY\INTERACTIVE&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;A group that includes all users that have logged on interactively. Membership is controlled by the operating system.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-1-5-11&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;NT AUTHORITY\Authenticated Users&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;A group that includes all users whose identities were authenticated when they logged on. Membership is controlled by the operating system.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="158"&gt;S-1-2-0&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="108"&gt;LOCAL&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="325"&gt;An identifier authority.&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;실제로 필자가 조사했던 건의 경우에도 고객사에서 NTUSER.DAT만 제공하였고 악성행위를 한 계정이 guest임에 Administrator그룹임을 판단할 필요성이 있었는데. 이런 방법을 통해 쉽게 확인할 수 있었다 :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1565787900448537029?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1565787900448537029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/11/ntuserdat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1565787900448537029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1565787900448537029'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/11/ntuserdat.html' title='NTUSER.DAT만을 통하여 사용자의 그룹정보를 알아내기'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5570373714953937847</id><published>2009-10-16T00:53:00.003+09:00</published><updated>2009-10-16T00:59:35.720+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='promiscuous'/><title type='text'>Promiscuous Mode?</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/StdG04K0EQI/AAAAAAAAAEI/KzCVkUVfkIQ/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 261px;" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/StdG04K0EQI/AAAAAAAAAEI/KzCVkUVfkIQ/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5392856953044340994" /&gt;&lt;/a&gt;&lt;br /&gt;리눅스시스템을 이용하여 방화벽을 구성해본 사용자라면 이 promiscuous mode에 대해 잘 알고 있을 것이다.&lt;br /&gt;&lt;br /&gt;위키에서는 다음과 같이 설명하고 있다.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In computing, promiscuous mode or promisc mode is a configuration of a network card that makes the card pass all traffic it receives to the central processing unit rather than just frames addressed to it — a feature normally used for packet sniffing.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;즉 이 모드로 설정된 카드는 모든 트래픽을 중간에서 받아서 원래 주소로 보내줄 수 있다.&lt;br /&gt;&lt;br /&gt;이 기법은 패킷 스니핑 기술에 많이 사용되며, arpspoofing에도 사용되기 때문에, 침해시스템에서 꼭 조사가 필요한 부분이다.&lt;br /&gt;&lt;br /&gt;하지만 윈도우의 경우 "ipconfig /all"을 해도 이 내용이 나타나지 않는다.&lt;br /&gt;&lt;br /&gt;이 문제 때문인지, 다른 이유 때문인지 마이크로소프트에서는 promqry라는 도구를 무료로 제공해 각 장치들이 모드설정 여부를 확인할 수 있게 해준다.&lt;br /&gt;&lt;br /&gt;특히 이 도구는 다른 시스템의 네트워크 카드가 이 모드를 사용하는지도 탐지할 수 있기 때문에 포렌식 수사 시 유용하게 사용할 수 있을 것이다.&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5570373714953937847?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5570373714953937847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/10/promiscuous-mode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5570373714953937847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5570373714953937847'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/10/promiscuous-mode.html' title='Promiscuous Mode?'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/StdG04K0EQI/AAAAAAAAAEI/KzCVkUVfkIQ/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1087101775383881904</id><published>2009-04-13T02:02:00.000+09:00</published><updated>2009-04-13T02:03:06.581+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithread'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>multithread program(linux based)</title><content type='html'>#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;pthread.h&gt;&lt;br /&gt;#include &lt;unistd.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;void *output(void *data);&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt;  pthread_t thread[2];&lt;br /&gt;  char Word[]={'o', 'x'};&lt;br /&gt;&lt;br /&gt;  printf("begin :)\n");&lt;br /&gt;&lt;br /&gt;  if(0 &gt; pthread_create(&amp;thread[0], NULL, output, (void*)&amp;Word[0])) {&lt;br /&gt;    perror("thread create error :");&lt;br /&gt;    exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt;  if(0 &gt; pthread_create(&amp;thread[1], NULL, output, (void*)&amp;Word[1])) {&lt;br /&gt;    perror("thread create error :");&lt;br /&gt;    exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt;  if( 0 != pthread_join(thread[0], NULL) ){&lt;br /&gt;    perror("pthread_join() error");&lt;br /&gt;    exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt;  if( 0 != pthread_join(thread[1], NULL) ){&lt;br /&gt;    perror("pthread_join() error");&lt;br /&gt;    exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void *output(void *data) {&lt;br /&gt;  int i=0;&lt;br /&gt;  for(i=0; i&lt;100; i++){&lt;br /&gt;    sleep(0);&lt;br /&gt;    putc(*((char *)data), stdout);&lt;br /&gt;  }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1087101775383881904?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1087101775383881904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/04/multithread-programlinux-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1087101775383881904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1087101775383881904'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/04/multithread-programlinux-based.html' title='multithread program(linux based)'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8012345598028197237</id><published>2009-04-13T02:00:00.002+09:00</published><updated>2009-04-13T02:03:28.521+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithread'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>multithread program(windows based)</title><content type='html'>// ThreadTest.cpp : Defines the entry point for the console application.&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;#include "stdafx.h"&lt;br /&gt;#include &lt;windows.h&gt;&lt;br /&gt;#include &lt;process.h&gt;&lt;br /&gt;&lt;br /&gt;unsigned int WINAPI output(void *arg);&lt;br /&gt;&lt;br /&gt;int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;{&lt;br /&gt;  HANDLE hThread[2];&lt;br /&gt;  CHAR Word[2]={'o','x'};&lt;br /&gt;&lt;br /&gt;  puts("begin :)");&lt;br /&gt;&lt;br /&gt;  if( 0 == (hThread[0] = (HANDLE)_beginthreadex(NULL, 0, output, (void *)&amp;Word[0], 0, NULL) ) ) {&lt;br /&gt;    puts("_beginthreadex() error");&lt;br /&gt;    exit(1);&lt;br /&gt;  }&lt;br /&gt;  if( 0 == (hThread[1] = (HANDLE)_beginthreadex(NULL, 0, output, (void *)&amp;Word[1], 0, NULL) ) ) {&lt;br /&gt;    puts("_beginthreadex() error");&lt;br /&gt;    exit(1);&lt;br /&gt;  }&lt;br /&gt;  if(WAIT_FAILED == WaitForSingleObject(hThread[0], INFINITE)) {&lt;br /&gt;    puts("Thread wait error");&lt;br /&gt;    exit(1);&lt;br /&gt;  }&lt;br /&gt;  if(WAIT_FAILED == WaitForSingleObject(hThread[1], INFINITE)) {&lt;br /&gt;    puts("Thread wait error");&lt;br /&gt;    exit(1);&lt;br /&gt;  }&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;unsigned int WINAPI output(void *arg) {&lt;br /&gt;  int i=0;&lt;br /&gt;  for(i=0; i&lt;100; i++){&lt;br /&gt;    Sleep(100);&lt;br /&gt;    putc(*((char *)arg), stdout);&lt;br /&gt;  }&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8012345598028197237?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8012345598028197237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/04/multithread-programwindows-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8012345598028197237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8012345598028197237'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/04/multithread-programwindows-based.html' title='multithread program(windows based)'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6555880041128474248</id><published>2009-04-13T00:47:00.003+09:00</published><updated>2009-04-13T01:22:57.825+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><title type='text'>티더 vs 지탄</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-b72c2c578399b9bc" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v20.nonxt3.googlevideo.com/videoplayback?id%3Db72c2c578399b9bc%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4B2A15724A701EA561F9A22BC29DE15EF369A94D.212D4A5720E45D01EC70ECDE202F1C9C4659E46%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Db72c2c578399b9bc%26offsetms%3D5000%26itag%3Dw160%26sigh%3DXnW9HZb4k4H6BycUhNYFjfK5iRY&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v20.nonxt3.googlevideo.com/videoplayback?id%3Db72c2c578399b9bc%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4B2A15724A701EA561F9A22BC29DE15EF369A94D.212D4A5720E45D01EC70ECDE202F1C9C4659E46%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Db72c2c578399b9bc%26offsetms%3D5000%26itag%3Dw160%26sigh%3DXnW9HZb4k4H6BycUhNYFjfK5iRY&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6555880041128474248?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=b72c2c578399b9bc&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6555880041128474248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/04/vs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6555880041128474248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6555880041128474248'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/04/vs.html' title='티더 vs 지탄'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8680771413818055847</id><published>2009-04-12T23:10:00.001+09:00</published><updated>2009-04-12T23:13:14.451+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='device context'/><title type='text'>DC 얻기</title><content type='html'>DC를 얻는 3가지 방법&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kin.naver.com/detail/detail.php?d1id=1&amp;amp;dir_id=10104&amp;amp;eid=imE0Jz5y6cY6qpAhjbT8yRSQa5X1ogck&amp;amp;qb=cHRocmVhZF9jcmVhdGU=&amp;amp;enc=utf8&amp;amp;pid=fPczbloi5UNssb29RLdsss--498629&amp;amp;sid=SeHeismt4UkAAHhIqaQ"&gt;http://kin.naver.com/detail/detail.php?d1id=1&amp;amp;dir_id=10104&amp;amp;eid=imE0Jz5y6cY6qpAhjbT8yRSQa5X1ogck&amp;amp;qb=cHRocmVhZF9jcmVhdGU=&amp;amp;enc=utf8&amp;amp;pid=fPczbloi5UNssb29RLdsss--498629&amp;amp;sid=SeHeismt4UkAAHhIqaQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8680771413818055847?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8680771413818055847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/04/dc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8680771413818055847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8680771413818055847'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/04/dc.html' title='DC 얻기'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7745786143063175447</id><published>2009-03-30T00:13:00.005+09:00</published><updated>2009-04-12T18:56:52.436+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sim reader'/><title type='text'>SIM Reader</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/Sc-QX0HYE9I/AAAAAAAAAD0/fQBw-BoeCwE/s1600-h/2674943279_4290b76aba.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 296px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5318628423748817874" border="0" alt="" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/Sc-QX0HYE9I/AAAAAAAAAD0/fQBw-BoeCwE/s400/2674943279_4290b76aba.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;SIM Card의 데이터를 쉽게 뽑아낼 수 있도록 도와주는 도구.&lt;br /&gt;&lt;br /&gt;제작방법까지 친절하게 나와 있는 점이 인상적이다.&lt;br /&gt;&lt;br /&gt;이런 문서를 볼 때마다 전자공학분야를 공부해보고 싶다는 생각이 든다는..;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ladyada.net/make/simreader/index.html"&gt;http://ladyada.net/make/simreader/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7745786143063175447?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7745786143063175447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/03/httpladyada.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7745786143063175447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7745786143063175447'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/03/httpladyada.html' title='SIM Reader'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/Sc-QX0HYE9I/AAAAAAAAAD0/fQBw-BoeCwE/s72-c/2674943279_4290b76aba.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-9095394365825375329</id><published>2009-03-27T00:44:00.001+09:00</published><updated>2009-03-27T00:47:35.557+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='antivir'/><title type='text'>Antivir Premium 1-year licence</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KYUsDAgl5oc/ScujkJcrXcI/AAAAAAAAADs/ty0qkjAfOBg/s1600-h/Avira-AntiVir-Premium.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 235px; height: 300px;" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/ScujkJcrXcI/AAAAAAAAADs/ty0qkjAfOBg/s400/Avira-AntiVir-Premium.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5317523626447822274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;https://license.avira.com/de/promotion-a8ydzq3fgnsu051rwq81&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-9095394365825375329?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/9095394365825375329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/03/antivir-premium-1-year-licence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/9095394365825375329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/9095394365825375329'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/03/antivir-premium-1-year-licence.html' title='Antivir Premium 1-year licence'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/ScujkJcrXcI/AAAAAAAAADs/ty0qkjAfOBg/s72-c/Avira-AntiVir-Premium.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-4219852289945132559</id><published>2009-03-17T02:33:00.003+09:00</published><updated>2009-03-17T15:51:29.720+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SIP'/><title type='text'>sip crack</title><content type='html'>&lt;p&gt;준비물 : sipcrack, sipdump(sipcrack과 같이 설치됨), john, fragrouter, wireshark, arpspoof&lt;/p&gt;&lt;p&gt;sudo apt-get install sipcrack, john, fragrouter, wireshark, arpspoof&lt;/p&gt;&lt;p&gt;john --incremental=digits --stdout=6 &gt;  6number.txt&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;arpspoof -i eth0 -t [phone ip] [gateway ip]&lt;/p&gt;&lt;p&gt;&amp;amp;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;fragrouter -B1 // ip forwarding&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;이상태로 wireshark가동후 eth0 packet capture -&gt; phone으로 아무번호나 통화후, 통화연결음 들리면 캡쳐종료&lt;/p&gt;&lt;p&gt;캡쳐한 내용을 LGCrack.pcap으로 저장&lt;/p&gt;   sipdump -p LGCrack.pcap key.dump&lt;br /&gt;&lt;br /&gt;&lt;p&gt;sipcrack -w 6number.txt key.dump&lt;/p&gt;&lt;p&gt;이 명령어를 치고나면 해당 인증서버(Client) ip주소와 password가 나오게 됩니다.&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;&lt;p&gt;이젠 블랙잭에 070폰 정보를 입력합니다.&lt;/p&gt;&lt;p&gt;12325800 입력&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Number : 는 사용하는 070번호 입력&lt;br /&gt;&lt;br /&gt;ID : 070 번호준 앞자리 0을 뺀 번호를 입력 합니다.  &lt;br /&gt;&lt;br /&gt;Display name : 070번호 입력&lt;br /&gt;&lt;br /&gt;Password : 알아낸 6자리 패스워드&lt;br /&gt; &lt;br /&gt;adress : sip덤프에 나와 있는 Client ip어드레스를 입력&lt;br /&gt;&lt;br /&gt;domain name : lgdacom.net&lt;br /&gt;&lt;br /&gt;이렇게 셋팅하면 완료입니다. 근데 받는건 잘 안되네요-_- 더 만져봐야 알 것 같습니다. :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-4219852289945132559?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/4219852289945132559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/03/sip-crack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4219852289945132559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4219852289945132559'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/03/sip-crack.html' title='sip crack'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1473272489592206795</id><published>2009-02-14T12:03:00.002+09:00</published><updated>2009-04-25T13:56:32.135+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='psp'/><title type='text'>PSP Error Code</title><content type='html'>8002는 커널오류다&lt;br /&gt; 8001은 표준 libc(그리고 잘못 수는 POSIX errno.h 상수에 대응한다)오류다.&lt;br /&gt;* CA000005 = keys.bin오류&lt;br /&gt; 해결법: keys.bin 파일은 psx 게임을 하기 위해 필요하다, psx게임에 대해 keys.bin 파일을 당신의 eboot.pbp과 같은 폴더에 넣어라&lt;br /&gt;* 80220180 = 포맷오류&lt;br /&gt;* 80100D00 = 그채널이 더해질수없다 (원문은 The Channel could not be added 뭐라해석해야할지 ㅠㅠ)&lt;br /&gt; 해결법:memorystick을 재포맷해라...&lt;br /&gt;* 80410D09 = 접속을 잘못하였을경우 생기는오류&lt;br /&gt; 해결법: PSP은 WAP wifi 안정적이지 않는다, WEP과 재접속하는 것으로 바꾸어 보아라&lt;br /&gt;* UKN9000001 = 업데이트오류(깨진데이터가있을경우)&lt;br /&gt;* 80110305 = 읽어오기 오류.메모리스틱을 읽을수없을경우생김.&lt;br /&gt; 해결법: savedata 폴더의 백업하고 , 당신의 memorystick을 재포맷한다&lt;br /&gt;* 80010013 = device / media 를 찾을수없을경우 나오는 오류&lt;br /&gt;* 80410402 = 서버와의 통신은 실패했다(DNS 오류)&lt;br /&gt;* 8001B002 = 알려지지않음 알고 있으면 나에게알려줘&lt;br /&gt;* 80020001 or 800244C = 커널오류&lt;br /&gt;* 80020001 = 일반적인 커널오류 (불이행)&lt;br /&gt;&lt;br /&gt;* 800200D9 = 메모리 할당오류&lt;br /&gt;* 80020130 = 파일 읽기 오류&lt;br /&gt;* 80020148 =지원되지 않은 PRX 타입 또는 umd오류&lt;br /&gt; 해결법:  (umd오류: 리커버리모드에서 no-umd 모드로 바꿉니다)&lt;br /&gt;              (prx오류: 현재는 오류가 먹히지 않습니다 과거 1.5 버전 일때 생기던오류)&lt;br /&gt;* 8008271D = 내부오류(플래시메모리1이 오류가 날때)&lt;br /&gt; 해결법: 이것역시 과거에 생기던 오류입니다 ^^ 현재는 생기지 않죠&lt;br /&gt;* 80110482 = 무선랜연결 실패?(젠장...원문 occurs when test of wlan infrastructure connection fails)&lt;br /&gt;*FFFFFED3 = 알려지지않음 (디스크립 오류로 예상) 알고있으면 나에게 알려줘&lt;br /&gt;* 80410001 or 80410D16 = 네트워크오류&lt;br /&gt;* 80410D07 =잘못된 무선 라우터(무선랜에 사용 자세한건 네이버사전)에 접속하면 생기는 오류 &lt;br /&gt; 해결법:psp 설정을 매뉴얼로 바꾸고, 모든 ip,dns,subnet 마스크와 디폴트의 라우터 정보를 초기화한다.&lt;br /&gt;* ffffffff = PSP 업데이트실패&lt;br /&gt;* 80410A0B = 내부오류 (WLAN 모듈 불이행)&lt;br /&gt;* 80410410 = access point에 접속이 불가능할때 (서버연결 실패)&lt;br /&gt; 해결법: 걍 30초동안 무선랜 껏다가 다시킵니다 ㅋㅋ&lt;br /&gt;* 80010087 = 게임을 시작할수 없습니다 (UMD 읽기 오류) &lt;br /&gt;* 0x0 = 오류아님&lt;br /&gt;* 0x80010013 = (장치또는 미디어를 찾을수없을경우)&lt;br /&gt;* 0x80020001 = 그냥오류 -_-&lt;br /&gt;* 0x80020002 = 잘못된 실행 (원문 not implemented)&lt;br /&gt;* 0x80020032 = 잘못된 제외코드 (젠장 해석기 돌린것도아닌데 ㅠㅠ 어색하네 원문 illegal exception code)&lt;br /&gt;* 0x80020033 = 예외 처리기를 사용하지 않음&lt;br /&gt;* 0x80020034 = 예외 처리기가 이미 사용중&lt;br /&gt;* 0x80020035 = 시스템 호출 테이블 사용하지 않음&lt;br /&gt;* 0x80020036 = 시스템 호출 테이블을 이미 사용&lt;br /&gt;* 0x80020037 = 잘못된 시스템 호출 테이블&lt;br /&gt;* 0x80020038 = 잘못되버린 주된 시스템 호출 넘버 ( 병맛해석 아래 원문참조 )&lt;br /&gt;* 0x80020039 = 주된 시스템 호출 넘버가 이미 사용중&lt;br /&gt;* 0x80020064 = 인터럽트 처리기를/스레드에서 호출&lt;br /&gt;* 0x80020065 = 잘못된 INTRCODE &lt;br /&gt;* 0x80020066 = CPU가 이미 인터럽트 사용을 하지 않음 &lt;br /&gt;* 0x80020067 = 처리기가 이미 존재하다&lt;br /&gt;* 0x80020068 = 처리기를 찾을 수 없습니다.&lt;br /&gt;* 0x80020069 = 잘못된 인터럽트 수준&lt;br /&gt;* 0x8002006a = 잘못된 주소&lt;br /&gt;* 0x8002006b = 잘못된 인터럽트 처리기 Paramsize Option  ( 병맛해석 아래 원문참조 )&lt;br /&gt;* 0x8002006c = 잘못된 stackad dress &lt;br /&gt;* 0x8002006d = 이미 stackad dress 가 사용중&lt;br /&gt;* 0x80020096 = 여유 하드 Timer 찾을된 수 없음&lt;br /&gt;* 0x80020097 = 잘못된 타이머 ID&lt;br /&gt;* 0x80020098 = 잘못된 원본&lt;br /&gt;* 0x80020099 = 잘못된 pre-scale&lt;br /&gt;* 0x8002009a = 하드 타이머 사용중&lt;br /&gt;* 0x8002009b = 하드 타이머 설정 되지 않음 &lt;br /&gt;* 0x8002009c = 하드 타이머가 사용 되지 않음 &lt;br /&gt;* 0x800200a0 = 이미 사용되는 단위 번호&lt;br /&gt;* 0x800200a1 = 단위 번호를가사용 되지 않음&lt;br /&gt;* 0x800200a2 = rom 디렉터리를 찾을 수 없습니다&lt;br /&gt;* 0x800200c8 = id type 이미 사용중&lt;br /&gt;* 0x800200c9 = id type이 없습니다.&lt;br /&gt;* 0x800200ca = 알려지지않음&lt;br /&gt;* 0x800200cb = 알 수 없는 UID  &lt;br /&gt;* 0x800200cc = 일치하지 않는 UID Type &lt;br /&gt;* 0x800200cd = ID 찾을수 없습니다.&lt;br /&gt;* 0x800200ce = 해석 불능 아래 원문참조&lt;br /&gt;* 0x800200cf = UID 이미 보유중&lt;br /&gt;* x800200d0 = UID 보유자가 아닙니다 &lt;br /&gt;* 0x800200d1 = 잘못된 사용 권한&lt;br /&gt;* 0x800200d2 = 잘못된 인수&lt;br /&gt;* 0x800200d3 = 잘못된 주소&lt;br /&gt;* 0x800200d4 = 메모리 영역은 범위를 벗어났습니다.&lt;br /&gt;* 0x800200d5 = 메모리 영역은 겹치기&lt;br /&gt;* 0x800200d6 = 잘못된 파티션 ID&lt;br /&gt;* 0x800200d7 = 파티션 사용&lt;br /&gt;* 0x800200d8 = 잘못된 메모리 블록 할당 Type&lt;br /&gt;* 0x800200d9 = 메모리 블록을 할당하지 못했습니다.&lt;br /&gt;* 0x800200da = 다시 이 메모리 블록 크기를 inhibited&lt;br /&gt;* 0x800200db = 다시 이 메모리 블록 크기를 못했습니다.&lt;br /&gt;* 0x800200dc = 힙 블록 할당하지 못했습니다.&lt;br /&gt;* 0x800200dd = 힙 할당하지 못했습니다.&lt;br /&gt;* 0x800200de = 잘못된 청크 ID&lt;br /&gt;* 0x800200df = findchunk 이름이 없습니다&lt;br /&gt;* 0x800200e0 = 무료 청크 있을&lt;br /&gt;* 0x8002012c = 모듈 연결 오류&lt;br /&gt;* 0x8002012d = 잘못된 개체 format(notPX/PFX)&lt;br /&gt;* 0x8002012e = 찾을된 수 없음 모듈&lt;br /&gt;* 0x8002012f = 모듈 파일이 찾을된 수 없음&lt;br /&gt;* 0x80020130 = 모듈 파일 읽기 오류&lt;br /&gt;* 0x80020131 = 메모리 사용&lt;br /&gt;* 0x80020132 = 파티션 불일치&lt;br /&gt;* 0x80020133 = 이미 모듈이 시작됨&lt;br /&gt;* 0x80020134 = 아직 모듈이 시작 되지 않음&lt;br /&gt;* 0x80020135 = 이미 모듈이 중지되었습니다&lt;br /&gt;* 0x80020136 = 모듈 중지할 수 없습니다&lt;br /&gt;* 0x80020137 = 아직 모듈을 중지할수없습니다.&lt;br /&gt;* 0x80020138 = 모듈 제거할 수 없습니다&lt;br /&gt;* 0x80020139 = 단독 로드&lt;br /&gt;* 0x8002013a = 라이브러리 아직 연결되지 않았습니다&lt;br /&gt;* 0x8002013b = 라이브러리를 이미 존재&lt;br /&gt;* 0x8002013c = 라이브러리를 찾을 수 없습니다.&lt;br /&gt;* 0x8002013d = 잘못된 라이브러리 보유자&lt;br /&gt;* 0x8002013e = 라이브러리 이미 사용중입니다&lt;br /&gt;* 0x8002013f = 모듈이 이미 중지됨&lt;br /&gt;* 0x80020140 = 잘못된 오프셋된 값&lt;br /&gt;* 0x80020141 = 잘못된 위치를 코드&lt;br /&gt;* 0x80020142 = 잘못된 액세스 코드&lt;br /&gt;* 0x80020143 = 모듈 관리자 사용&lt;br /&gt;* 0x80020144 = 잘못된 플래그를&lt;br /&gt;* 0x80020145 = 모듈 목록을 가져올 수 없습니다&lt;br /&gt;* 0x80020146 = 로드 모듈 장치 금지&lt;br /&gt;* 0x80020147 = 로드 Exec 장치 금지&lt;br /&gt;* 0x80020148 = 지원되지 않는 PRX Type &lt;br /&gt;* 0x80020149 = 잘못된 권한을 호출&lt;br /&gt;* 0x8002014a = 모듈 정보를 가져올 수 없습니다&lt;br /&gt;* 0x8002014b = 잘못된 로드 Exec 버퍼&lt;br /&gt;* 0x8002014c = 잘못된 로드 Exec 파일 이름&lt;br /&gt;* 0x8002014d = 방법이 없는 종료 호출을 다시&lt;br /&gt;* 0x80020190 = 메모리없음&lt;br /&gt;* 0x80020191 = 잘못된 매개변수&lt;br /&gt;* 0x80020192 = 잘못된 스레드 항목을 주소&lt;br /&gt;* 0x80020193 = 잘못된 우선 순위 값&lt;br /&gt;* 0x80020194 = 잘못된 스택 크기&lt;br /&gt;* 0x80020195 = 잘못된 모드&lt;br /&gt;* 0x80020196 = 잘못된 마스크&lt;br /&gt;* 0x80020197 = 잘못된 스레드 ID&lt;br /&gt;* 0x80020198 = 스레드가 찾을된 수 없음&lt;br /&gt;* 0x80020199 = 세마포 를 찾을된 수 없음&lt;br /&gt;* 0x8002019a = 이벤트 플러그를 찾을된 수 없음 &lt;br /&gt;* 0x8002019b = 메세지 상자를 찾을된 수 없음 &lt;br /&gt;* 0x8002019c = V 풀 찾을된 수 없음&lt;br /&gt;* 0x8002019d = F 풀 찾을된 수 없음&lt;br /&gt;* 0x8002019e = 해석불가 원문참조&lt;br /&gt;* 0x8002019f = 알람을 찾을된 수 없음  &lt;br /&gt;* 0x800201a0 = 스레드 이벤트 처리기를 찾을된 수 없음 &lt;br /&gt;* 0x800201a1 = 찾을 수 없음 콜백 &lt;br /&gt;* 0x800201a2 = 스레드가 이미 유휴&lt;br /&gt;* 0x800201a3 = 스레드가 이미 일시&lt;br /&gt;* 0x800201a4 = 스레드가 유휴있지 않습니다&lt;br /&gt;* 0x800201a5 = 스레드를 일시&lt;br /&gt;* 0x800201a6 = 스레드가 정지되어있지않습니다&lt;br /&gt;* 0x800201a7 = 해석불가 원문참조&lt;br /&gt;* 0x800201a8 = WAIT 시간 제한&lt;br /&gt;* 0x800201a9 = WAIT 취소&lt;br /&gt;* 0x800201aa = 릴리스된 WAIT 상태&lt;br /&gt;* N0x800201ab = 콜백에 의해 릴리스된 WAIT 상태&lt;br /&gt;* 0x800201ac = 스레드가 종료됨&lt;br /&gt;* 0x800201ad = 세마포를 카운터 0 &lt;br /&gt;* 0x800201ae = 세마포를 카운터 오버플로&lt;br /&gt;* 0x800201af = 이벤트 플래그를 조건을 발생할 수 없습니다&lt;br /&gt;* 0x800201b0= 이벤트플래그를 여러 스레드 사용중에는 대기를 받아들일 수 없습니다&lt;br /&gt;* 0x800201b1 = 잘못된 이벤트 플래그를 대기 패턴&lt;br /&gt;* 0x800201b2 = 메시지 박스에 아무 메세지 없음 &lt;br /&gt;* 0x800201b3 = 메시지 pipe  꽉찼습니다.&lt;br /&gt;* 0x800201b4 = 메시지 pipe 비어&lt;br /&gt;* 0x800201b5 = 삭제된 대기 개체&lt;br /&gt;* 0x800201b6 = 잘못된 메모리 블록&lt;br /&gt;* 0x800201b7 = 잘못된 메모리 크기&lt;br /&gt;* 0x800201b8 = 잘못된 제거 패드 주소&lt;br /&gt;* 0x800201b9 = 제거 패드 사용&lt;br /&gt;* 0x800201ba = 제거 패드가 사용중이지 않음&lt;br /&gt;* 0x800201bb = 잘못된 형식&lt;br /&gt;* 0x800201bc = 잘못된 크기&lt;br /&gt;* 0x800201bd = 잘못된 개수&lt;br /&gt;* 0x800201be = 찾을 수 없음 v 타이머&lt;br /&gt;* 0x800201bf = 잘못된 v 타이머 ID&lt;br /&gt;* 0x800201c0 = 잘못된 KTLS ID &lt;br /&gt;* 0x800201c1 = KTLS 꽉 찼습니다.&lt;br /&gt;* 0x800201c2 = KTLS 중입니다&lt;br /&gt;* 0x80020258 = 잘못된 이러한 우선 순위&lt;br /&gt;* 0x80020259 = 장치 이름이 타당하다?! 원문참조&lt;br /&gt;* 0x8002025a = 알 수 없는 장치 이름&lt;br /&gt;* 0x8002025b = PM 정보가 이미 등록된&lt;br /&gt;* 0x8002025c = PM 정보가 등록되어 있지 않습니다&lt;br /&gt;* 0x8002025d = 주요 상태가 유효한 가치가 있다&lt;br /&gt;* 0x8002025e = 요청이 잘못되었습니다.&lt;br /&gt;* 0x8002025f = 요청을 알 수 없습니다.&lt;br /&gt;* 0x80020260 = 단위 번호가 잘못되었습니다.&lt;br /&gt;* 0x80020261 = 요청을 취소할 수 없습니다&lt;br /&gt;* 0x80020262 = PM 정보가 잘못된 &lt;br /&gt;* 0x80020263 = 인수가 잘못되었습니다.&lt;br /&gt;* 0x80020264 = 이미 전원 상태가 목표치입니다 ?! 원문참조&lt;br /&gt;* 0x80020265 = 시스템 전원 상태를 변경하지 못했습니다&lt;br /&gt;* 0x80020266 = 장치 전원 상태를 변경할 수 없습니다&lt;br /&gt;* 0x80020267 = 장치 그런 powerstate 지원하지 않습니다&lt;br /&gt;* 0x800202bc = DMAC 요청 실패&lt;br /&gt;* 0x800202bd = DMA 작업이 적거나 또는 동등하다 ?! 원문참조&lt;br /&gt;* 0x800202be = 작업이 이미 대기&lt;br /&gt;* 0x800202bf = 가동이 벌써 끝내게 되거나, queueud하다&lt;br /&gt;* 0x800202c0 = 작업이 이미 진행 해서 전송중입니다 &lt;br /&gt;* 0x800202c1 = 작업을 아직 할당하지 않은&lt;br /&gt;* 0x800202c2 = syn-협력 시간 초과&lt;br /&gt;* 0x800202c3 = dma 작업을 구조 isalready 해제된&lt;br /&gt;* 0x800202c4 = dma 작업이 사용됩니다&lt;br /&gt;* 0x800202c5 = dma 작업이 빈&lt;br /&gt;* 0x800202c6 = DMA 작업이 중단되다&lt;br /&gt;* 0x800202c7 = DMA 작업이 오류&lt;br /&gt;* 0x800202c8 = 실제 DMA 채널 이미 예약되다&lt;br /&gt;* 0x800202c9 = 실제 DMA 채널 dmac 관리자에 의해 관리됩니다&lt;br /&gt;* 0x800202ca = 링크목록에서 주소가 있는 권한 &lt;br /&gt;* 0x800202cb = 링크 목록 버퍼 충분하지 않습니다&lt;br /&gt;* 0x800202cc = 작업을 실제 DMA 채널 할당되지 않은.&lt;br /&gt;* 0x800202cd = 작업은 하위 작업을 하지못했습니다.&lt;br /&gt;* 0x800202ce = 양도 가능한 데이터  사이즈가 너무많다&lt;br /&gt;* 0x800202cf = 인수가 잘못되었습니다.&lt;br /&gt;* 0x80020320 = 너무 많은 파일을 열&lt;br /&gt;* 0x80020321 = 이러한 장치가 없습니다.&lt;br /&gt;* 0x80020322 = Cross-장치 연결&lt;br /&gt;* 0x80020323 = 잘못된 파일 설명자&lt;br /&gt;* 0x80020324 = 잘못된 인수가 있습니다.&lt;br /&gt;* 0x80020325 = 지원되지 않는 작업&lt;br /&gt;* 0x80020326 = 별칭 이미 사용&lt;br /&gt;* 0x80020327 = 탑재할 수 없습니다&lt;br /&gt;* 0x80020328 = 드라이버 삭제&lt;br /&gt;* 0x80020329 = Asyn-협력 중입니다&lt;br /&gt;* 0x8002032a = asyn-협력 없습니다&lt;br /&gt;* 0x8002032b = 장치에 이미 등록되어있음&lt;br /&gt;* 0x8002032c = 현재 작업 디렉터리 작업할수없음&lt;br /&gt;* 0x8002032d = 파일 이름을 너무 길다&lt;br /&gt;* 0x800203e8 = 그런 어떤 장치가 아니라도 또는 어떤 주소라도 DECI3&lt;br /&gt;* 0x800203e9 = DECI3  I/Oerror&lt;br /&gt;* 0x800203ea =  DECI3 충분한 중심이 아니라&lt;br /&gt;* 0x800203eb = STDIO가 열리지않았습니다.&lt;br /&gt;* 0x8002044c = 매개 변수가 캐시 정렬이 아닙니다.&lt;br /&gt;* 0x8002044d = 커널 오류 코드의 마지막. 이 이름을 사용 하지않습니다&lt;br /&gt;* 8002014E = 이미 사용중인 msipl을 설치하는 동안 확인되지 않은 이 오류는 아마 확인되지않았다.?! 원문참조&lt;br /&gt;DADADA = CFW 오류. OFW가 잘못되었음!&lt;br /&gt;&lt;br /&gt;===============================================원문===========================================&lt;br /&gt;Found it. Thought it was useful. SO posted it.&lt;br /&gt;First 4 digits indicate the functional area that reported an error :&lt;br /&gt;8002 is the kernel&lt;br /&gt;8001 is the standard libc (and the error numbers correspond to the POSIX errno.h constants).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* CA000005 = keys.bin&lt;br /&gt;FIX: a keys.bin file is required in order to play psx games, put the keys.bin file in the same folder as your eboot.pbp for the game&lt;br /&gt;* 80220180 = Format failed&lt;br /&gt;* 80100D00 = The Channel could not be added&lt;br /&gt;FIX: Reformat the memorystick...&lt;br /&gt;* 80410D09 = A connection error has occured.&lt;br /&gt;FIX: The PSP doesn't support WAP wifi security, try switching to WEP and reconnecting&lt;br /&gt;* UKN9000001 = The update cannot be started. The data is corrupted.&lt;br /&gt;* 80110305 = Load failed.The Memory Stick* could not be accessed.&lt;br /&gt;FIX: Backup savedata folder and reformat your memory stick&lt;br /&gt;* 80010013 = device / media not found&lt;br /&gt;* 80410402 = communication with the server failed, DNS error&lt;br /&gt;* 8001B002 = unknown Please tell me if u do find it&lt;br /&gt;* 80020001 or 800244C = kernel errors&lt;br /&gt;* 80020001 = generic kernel error (default)&lt;br /&gt;* 800200D9 = failed to allocate the memory block&lt;br /&gt;* 80020130 = file read error&lt;br /&gt;* 80020148 = PRX type unsupported or fault of umd&lt;br /&gt;FIX (For fault of UMD): You can correct it by putting an no-UMD option in recovery menu or simply by putting one UMD &lt;br /&gt;Explanation (For PRX): This error comes up when you try to use emulators, homebrew, etc. on a psp with version 1.52 and higher.&lt;br /&gt;* 8008271D = An internal error has occurred (flash1 is corrupted)&lt;br /&gt;Explanation: after restoring default settings, upon upgrading from DAX's 2.71SE to DAX's 3.02OE... your network settings will give that error.&lt;br /&gt;* 80110482 = occurs when test of wlan infrastructure connection fails&lt;br /&gt;* FFFFFED3 = unknown (might be decryption error) Please tell me if u do find it&lt;br /&gt;* 80410001 or 80410D16 = network errors&lt;br /&gt;* 80410D07 = This error comes up when errors occur connecting to a wireless router&lt;br /&gt;FIX: Change psp settings to manual and enter in all of the ip,dns,subnet mask, and default router info&lt;br /&gt;* ffffffff = PSP update failed&lt;br /&gt;* 80410A0B = Internal Error (WLAN module failure) this was founded out by DARK_SYLAR&lt;br /&gt;* 80410410 = Cannot connect to the given access point(Connection to the Server Failed.)&lt;br /&gt;FIX: Unplug your modem and router (if you got one) for 30 seconds to a minute. Plug in your modem, wait 30 seconds to a minute, then plug in router.&lt;br /&gt;* 80010087 = The game could not be started (Error in reading UMD)&lt;br /&gt;* 0x0 = no error&lt;br /&gt;* 0x80010013 = (device / media not found)&lt;br /&gt;* 0x80020001 = error&lt;br /&gt;* 0x80020002 = not implemented&lt;br /&gt;* 0x80020032 = illegal exception code&lt;br /&gt;* 0x80020033 = exception handler not use&lt;br /&gt;* 0x80020034 = exception handler already used&lt;br /&gt;* 0x80020035 = system call table not use&lt;br /&gt;* 0x80020036 = system call table already used&lt;br /&gt;* 0x80020037 = illegal system call table&lt;br /&gt;* 0x80020038 = illegal Primary Syscall number&lt;br /&gt;* 0x80020039 = Primary Syscall number already in use&lt;br /&gt;* 0x80020064 = call from interrupt handler/thread&lt;br /&gt;* 0x80020065 = illegal INTRCODE&lt;br /&gt;* 0x80020066 = CPU already interrupt disable&lt;br /&gt;* 0x80020067 = Handler already exist&lt;br /&gt;* 0x80020068 = Handler not found&lt;br /&gt;* 0x80020069 = illegal interrupt level&lt;br /&gt;* 0x8002006a = illegal address&lt;br /&gt;* 0x8002006b = illegal IntrHandler Option Paramsize&lt;br /&gt;* 0x8002006c = illegal stackad dress&lt;br /&gt;* 0x8002006d = already stackad dress set&lt;br /&gt;* 0x80020096 = not found free Hard Timer&lt;br /&gt;* 0x80020097 = illegal timer ID&lt;br /&gt;* 0x80020098 = illegal source&lt;br /&gt;* 0x80020099 = illegal pre-scale&lt;br /&gt;* 0x8002009a = Hard Timer in use&lt;br /&gt;* 0x8002009b = Hard Timer not setup&lt;br /&gt;* 0x8002009c = Hard Timer not in use&lt;br /&gt;* 0x800200a0 = unit number already used&lt;br /&gt;* 0x800200a1 = unit number not used&lt;br /&gt;* 0x800200a2 = rom directory not found&lt;br /&gt;* 0x800200c8 = id type already exist&lt;br /&gt;* 0x800200c9 = id type not exist&lt;br /&gt;* 0x800200ca = {not available} Please tell me if u do find it&lt;br /&gt;* 0x800200cb = unknown UID &lt;br /&gt;* 0x800200cc = unmatched UID type&lt;br /&gt;* 0x800200cd = id not exist&lt;br /&gt;* 0x800200ce = not found UID fun action&lt;br /&gt;* 0x800200cf = UID already holder&lt;br /&gt;* x800200d0 = UID not holder&lt;br /&gt;* 0x800200d1 = illegal permission&lt;br /&gt;* 0x800200d2 = illegal argument&lt;br /&gt;* 0x800200d3 = illegal address&lt;br /&gt;* 0x800200d4 = the memory area is out of range&lt;br /&gt;* 0x800200d5 = the memory area is overlap&lt;br /&gt;* 0x800200d6 = illegal partition id&lt;br /&gt;* 0x800200d7 = partition in use&lt;br /&gt;* 0x800200d8 = illegal memory block allocation type&lt;br /&gt;* 0x800200d9 = failed to allocate memory block&lt;br /&gt;* 0x800200da = inhibited to re size this memory block&lt;br /&gt;* 0x800200db = failed to re size this memory block&lt;br /&gt;* 0x800200dc = failed to allocate heap block&lt;br /&gt;* 0x800200dd = failed to allocate heap&lt;br /&gt;* 0x800200de = illegal chunk id&lt;br /&gt;* 0x800200df = cannot findchunk name&lt;br /&gt;* 0x800200e0 = there is no free chunk&lt;br /&gt;* 0x8002012c = module link error&lt;br /&gt;* 0x8002012d = illegal object format(notPX/PFX)&lt;br /&gt;* 0x8002012e = not found Module&lt;br /&gt;* 0x8002012f = not found Module file&lt;br /&gt;* 0x80020130 = Module file read error&lt;br /&gt;* 0x80020131 = memory in use&lt;br /&gt;* 0x80020132 = partition mismatch&lt;br /&gt;* 0x80020133 = module already started&lt;br /&gt;* 0x80020134 = module not started yet&lt;br /&gt;* 0x80020135 = module already stopped&lt;br /&gt;* 0x80020136 = module cannot stop&lt;br /&gt;* 0x80020137 = module not stopped yet&lt;br /&gt;* 0x80020138 = module cannot remove&lt;br /&gt;* 0x80020139 = exclusive load&lt;br /&gt;* 0x8002013a = Library is not linked yet&lt;br /&gt;* 0x8002013b = Library already exists&lt;br /&gt;* 0x8002013c = Library not found&lt;br /&gt;* 0x8002013d = illegal Library header&lt;br /&gt;* 0x8002013e = Library is used now&lt;br /&gt;* 0x8002013f = module already stopping&lt;br /&gt;* 0x80020140 = illegal offset value&lt;br /&gt;* 0x80020141 = illegal position code&lt;br /&gt;* 0x80020142 = illegal access code&lt;br /&gt;* 0x80020143 = module manager busy&lt;br /&gt;* 0x80020144 = illegal flag&lt;br /&gt;* 0x80020145 = cannot get module list&lt;br /&gt;* 0x80020146 = prohibit Load Module device&lt;br /&gt;* 0x80020147 = prohibit Load Exec device&lt;br /&gt;* 0x80020148 = unsupported PRX type&lt;br /&gt;* 0x80020149 = illegal permission call&lt;br /&gt;* 0x8002014a = cannot get module information&lt;br /&gt;* 0x8002014b = illegal Load Exec buffer&lt;br /&gt;* 0x8002014c = illegal Load Exec file name&lt;br /&gt;* 0x8002014d = There is no exit call back&lt;br /&gt;* 0x80020190 = no memory&lt;br /&gt;* 0x80020191 = illegal at parameter&lt;br /&gt;* 0x80020192 = illegal thread entry address&lt;br /&gt;* 0x80020193 = illegal priority value&lt;br /&gt;* 0x80020194 = illegal stack size&lt;br /&gt;* 0x80020195 = illegal mode&lt;br /&gt;* 0x80020196 = illegal mask&lt;br /&gt;* 0x80020197 = illegal thread ID&lt;br /&gt;* 0x80020198 = not found thread&lt;br /&gt;* 0x80020199 = not found semaphore&lt;br /&gt;* 0x8002019a = not found event flag&lt;br /&gt;* 0x8002019b = not found message box&lt;br /&gt;* 0x8002019c = not found V pool&lt;br /&gt;* 0x8002019d = not found F pool&lt;br /&gt;* 0x8002019e = not found message pipe&lt;br /&gt;* 0x8002019f = not found alarm&lt;br /&gt;* 0x800201a0 = not found thread event handler&lt;br /&gt;* 0x800201a1 = not found callback&lt;br /&gt;* 0x800201a2 = thread already DORMANT&lt;br /&gt;* 0x800201a3 = thread already SUSPENDED&lt;br /&gt;* 0x800201a4 = thread is not DORMANT&lt;br /&gt;* 0x800201a5 = thread is not SUSPENDED&lt;br /&gt;* 0x800201a6 = thread i snot WAIT&lt;br /&gt;* 0x800201a7 = now dispatch disabled&lt;br /&gt;* 0x800201a8 = WAIT timeout&lt;br /&gt;* 0x800201a9 = WAIT canceled&lt;br /&gt;* 0x800201aa = WAIT status released&lt;br /&gt;* N0x800201ab = WAIT status released with call back&lt;br /&gt;* 0x800201ac = thread is terminated&lt;br /&gt;* 0x800201ad = semaphore counter zero&lt;br /&gt;* 0x800201ae = semaphore counter overflow&lt;br /&gt;* 0x800201af = event flag condition no to occur&lt;br /&gt;* 0x800201b0 = this event flag cannot accept waits with multiple threads&lt;br /&gt;* 0x800201b1 = illegal event flag wait pattern&lt;br /&gt;* 0x800201b2 = message box have no message&lt;br /&gt;* 0x800201b3 = message pipe is full&lt;br /&gt;* 0x800201b4 = message pipe is empty&lt;br /&gt;* 0x800201b5 = wait object deleted&lt;br /&gt;* 0x800201b6 = illegal memory block&lt;br /&gt;* 0x800201b7 = illegal memory size&lt;br /&gt;* 0x800201b8 = illegal scratch pad address&lt;br /&gt;* 0x800201b9 = scratch pad in use&lt;br /&gt;* 0x800201ba = scratchpad not in use&lt;br /&gt;* 0x800201bb = illegal type&lt;br /&gt;* 0x800201bc = illegal size&lt;br /&gt;* 0x800201bd = illegal count&lt;br /&gt;* 0x800201be = not found v timer&lt;br /&gt;* 0x800201bf = illegal v timer ID&lt;br /&gt;* 0x800201c0 = illegal KTLS ID&lt;br /&gt;* 0x800201c1 = KTLS is full&lt;br /&gt;* 0x800201c2 = KTLS is busy&lt;br /&gt;* 0x80020258 = invalid such priority&lt;br /&gt;* 0x80020259 = device name is in valid&lt;br /&gt;* 0x8002025a = device name is unknown&lt;br /&gt;* 0x8002025b = PM information is registered already&lt;br /&gt;* 0x8002025c = PM information is not registered&lt;br /&gt;* 0x8002025d = major state is in valid value&lt;br /&gt;* 0x8002025e = request is invalid&lt;br /&gt;* 0x8002025f = request is unknown&lt;br /&gt;* 0x80020260 = unit number is invalid&lt;br /&gt;* 0x80020261 = cannot cancel request&lt;br /&gt;* 0x80020262 = pm information is invalid&lt;br /&gt;* 0x80020263 = argument is invalid&lt;br /&gt;* 0x80020264 = already targeted power state&lt;br /&gt;* 0x80020265 = failed to change system power state&lt;br /&gt;* 0x80020266 = cannot change device power state&lt;br /&gt;* 0x80020267 = device does not support such powerstate&lt;br /&gt;* 0x800202bc = request to the DMAC failed&lt;br /&gt;* 0x800202bd = DMA operation is less or equal one&lt;br /&gt;* 0x800202be = the operation is already queued&lt;br /&gt;* 0x800202bf = the operation is already finished or not queueud&lt;br /&gt;* 0x800202c0 = the operation is already in transfer progress&lt;br /&gt;* 0x800202c1 = the operation is not assigned yet&lt;br /&gt;* 0x800202c2 = the syn-cooperation timed out&lt;br /&gt;* 0x800202c3 = dma operation structure isalready freed&lt;br /&gt;* 0x800202c4 = dma operation is used&lt;br /&gt;* 0x800202c5 = dma operation is empty&lt;br /&gt;* 0x800202c6 = DMA operation is aborted&lt;br /&gt;* 0x800202c7 = DMA operation is error&lt;br /&gt;* 0x800202c8 = physical DMA channel is already reserved&lt;br /&gt;* 0x800202c9 = physical DMA channel is not managed by dmac manager&lt;br /&gt;* 0x800202ca = there is a privilege address in link list&lt;br /&gt;* 0x800202cb = link list buffer is not enough&lt;br /&gt;* 0x800202cc = the operation is not assigned to physical DMA channel&lt;br /&gt;* 0x800202cd = the operation is child operation&lt;br /&gt;* 0x800202ce = it is too much than transferable datasize&lt;br /&gt;* 0x800202cf = argument is invalid&lt;br /&gt;* 0x80020320 = Too many open files&lt;br /&gt;* 0x80020321 = No such device&lt;br /&gt;* 0x80020322 = Cross-device link&lt;br /&gt;* 0x80020323 = Bad file deor&lt;br /&gt;* 0x80020324 = Invalid argument&lt;br /&gt;* 0x80020325 = unsupported operation&lt;br /&gt;* 0x80020326 = Alias is already used&lt;br /&gt;* 0x80020327 = Cannot mount&lt;br /&gt;* 0x80020328 = Driver deleted&lt;br /&gt;* 0x80020329 = Asyn-cooperation is busy&lt;br /&gt;* 0x8002032a = No asyn-cooperation&lt;br /&gt;* 0x8002032b = Device is already registered&lt;br /&gt;* 0x8002032c = No current working directory&lt;br /&gt;* 0x8002032d = File name toolong&lt;br /&gt;* 0x800203e8 = DECI3 No such device or address&lt;br /&gt;* 0x800203e9 = DECI3 I/Oerror&lt;br /&gt;* 0x800203ea = DECI3 Not enough core&lt;br /&gt;* 0x800203eb = STDIO not opened&lt;br /&gt;* 0x8002044c = Parameter is not cache aligned&lt;br /&gt;* 0x8002044d = End of kernel error code. Never use this name&lt;br /&gt;* 8002014E = While installing msipl to reserved area this error maybe obtained Unconfirmed &lt;br /&gt;DADADA = CFW Error Only. Put in place to prevent users from accidentally going to OFW from CFW&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1473272489592206795?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1473272489592206795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/02/psp-error-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1473272489592206795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1473272489592206795'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/02/psp-error-code.html' title='PSP Error Code'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5417332419824020983</id><published>2009-02-10T17:19:00.002+09:00</published><updated>2009-02-10T17:24:31.686+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windbg'/><title type='text'>WinDBG Setting</title><content type='html'>Symbol : http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx&lt;br /&gt;&lt;br /&gt;Symbol Path : SRV*C:\WebSymbol*http://msdl.microsoft.com/download/symbols;c:\symbol&lt;br /&gt;&lt;br /&gt;Client&lt;br /&gt;boot.ini -&gt; add "/debug /debugport=COM1 /baudrate=115200&lt;br /&gt;&lt;br /&gt;WinDBG - Kernel Debug -&gt; port = \\.\pipe\com_1&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5417332419824020983?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5417332419824020983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/02/windbg-setting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5417332419824020983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5417332419824020983'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/02/windbg-setting.html' title='WinDBG Setting'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5587576035664500359</id><published>2009-02-09T10:41:00.000+09:00</published><updated>2009-02-09T10:42:07.995+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>What's New In Python3.0</title><content type='html'>- print 의 진정한 함수화&lt;br /&gt;   - print "abcd" 이렇게 이제 못 쓴다. print("abcd") 이렇게 제대로 써야한다.&lt;br /&gt;   - print "abcd", 이렇게 줄바꾸지 않게 하던건, print("abcd", end=" ") 이렇게 쓴다.&lt;br /&gt;- list 대신 view 와 iterator 를 쓴다고 합니다. 기존에 list 로 반환하던 함수들이 없어지거나 함&lt;br /&gt;- 비교 연산자가 비교가 무의미한 경우에 TypeError 를 발생시킨다. None &lt; None 같은 경우&lt;br /&gt;- "1/2" 는 0.5(float) 을 돌려줌. "1//2" 는 0(int)를 돌려줌&lt;br /&gt;- sys.maxint 는 int 의 제한이 없어져서 사라짐&lt;br /&gt;- 모든 문자열은 유니코드이다.(단 인코딩된 유니코드는 바이너리이다)&lt;br /&gt;   - 유니코드를 위해 u"..." 와 같은 형식이 필요없다&lt;br /&gt;- 기본 소스 인코딩은 utf-8 이다&lt;br /&gt;- as 와 with 는 예약된 단어이다(실제로 2.6부터였다)&lt;br /&gt;- True, False, None 은 예약된 단어이다(2.6에서부터 None 은 강제였다)&lt;br /&gt;- 비교연산자 &lt;&gt; 는 제거되었다(!= 를 써라)&lt;br /&gt;- 오래된 라이브러리들이 제거되었다. gopherlib, md5 는 제거되었다(md5는 hashlib 로 대체)&lt;br /&gt;- raw_input() 이 input() 으로 대체되었다&lt;br /&gt;- 파이썬 2.5보다 10% 느려졌다. 일단 3.0 발표 후 개선할 것이다.&lt;br /&gt;&lt;br /&gt;link1 : http://docs.python.org/dev/3.0/whatsnew/3.0.html&lt;br /&gt;link2 : http://wimy.com/tt/219&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5587576035664500359?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5587576035664500359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/02/whats-new-in-python30.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5587576035664500359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5587576035664500359'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/02/whats-new-in-python30.html' title='What&apos;s New In Python3.0'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1216243651517935679</id><published>2009-02-03T17:44:00.001+09:00</published><updated>2009-02-03T17:44:32.807+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forensic'/><title type='text'>Service Code</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 돋움; font-size: 13px; "&gt;&lt;p class="view" align="center" style="font-size: 10pt; "&gt;&lt;span style="color:#e97d81;"&gt;&lt;span style="font-size: 9pt; "&gt; 큐리텔SK &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#e97d81;"&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;762665&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; "&gt;세원텔레콤&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt; 123580&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;캔유2 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;000000&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;큐리텔KTF &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#e97d81;"&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;580918/732227/599942/287483&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; "&gt;스카이구형 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;006725&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;스카이신형 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;000000&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;모토로라 &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#e97d81;"&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;112249&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; "&gt;에버 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;000000/292310&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;VK시리즈 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;000000&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;LGSPC &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;852456&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;LG(SKT) &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;852456&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;LG(LGT) &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;147359/159753/000000&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;LG &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;147359/159753/000000/002063/456852&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;LGMSI코드&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt; 002063&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;삼성 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;000000&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; "&gt;삼성V720 &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;398021&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="view" align="center" style="font-size: 10pt; "&gt;&lt;span style="color:#e97d81;"&gt;&lt;span style="font-size: 9pt; "&gt;팬큐&lt;strong&gt; 762665/000200/580918&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="view" align="center" style="font-size: 10pt; "&gt;&lt;span style="color:#e97d81;"&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; "&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="view" align="center" style="font-size: 10pt; "&gt;&lt;span style="color:#e19b73;"&gt;&lt;span style="font-size: 9pt; "&gt;(출처: 네이버지식인)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1216243651517935679?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1216243651517935679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/02/service-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1216243651517935679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1216243651517935679'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/02/service-code.html' title='Service Code'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8980726176563638015</id><published>2009-01-31T14:37:00.006+09:00</published><updated>2009-01-31T14:55:20.040+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerability'/><title type='text'>'S' Univ vulnerable</title><content type='html'>S대학교의 수강신청사이트는 쿠키 값을 조작하여 간단하게 접근가능.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;원래 1~4학년마다 날짜가 다르지만..그런거 다 무시하고 접근가능하게 한다..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;학교 패스워드 또한 쿠키의존식..쿠키값만 빼낼 수 있다면..(학교 게시판은 충분히 가능해보인다.;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;다른사람의 패스워드까지 알 수 있는 치명적인 상황.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8980726176563638015?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8980726176563638015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2009/01/sejong-univ-vulnearable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8980726176563638015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8980726176563638015'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2009/01/sejong-univ-vulnearable.html' title='&apos;S&apos; Univ vulnerable'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-4100561138438130257</id><published>2008-12-28T20:53:00.003+09:00</published><updated>2009-04-13T02:11:33.184+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><title type='text'>Disidia Final Fantasy Movie</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-90e2e5a6d4e53d05" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v5.nonxt3.googlevideo.com/videoplayback?id%3D90e2e5a6d4e53d05%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4397E4A6E5053F71193CC7999A58A9F0D82433CE.8549273C12B375EA83688C0A40C83CF6F95A6233%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D90e2e5a6d4e53d05%26offsetms%3D5000%26itag%3Dw160%26sigh%3DoGdtzvx63eaQAS9VUKEVXOemjwQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v5.nonxt3.googlevideo.com/videoplayback?id%3D90e2e5a6d4e53d05%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4397E4A6E5053F71193CC7999A58A9F0D82433CE.8549273C12B375EA83688C0A40C83CF6F95A6233%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D90e2e5a6d4e53d05%26offsetms%3D5000%26itag%3Dw160%26sigh%3DoGdtzvx63eaQAS9VUKEVXOemjwQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-4100561138438130257?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=90e2e5a6d4e53d05&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/4100561138438130257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/12/disidia-final-fantasy-movie.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4100561138438130257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4100561138438130257'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/12/disidia-final-fantasy-movie.html' title='Disidia Final Fantasy Movie'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6301271800623501515</id><published>2008-09-23T01:04:00.002+09:00</published><updated>2008-09-23T01:06:54.311+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>VS 2008 몇가지 문제</title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Library 추가&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. #pragma comment(lib, "dsp.lib")&lt;br /&gt;&lt;br /&gt;2. Linker -&gt; Input -&gt; Additional Dependecies&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;cannot open file 'LIBCD.lib'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ans) Project -&gt; Project Property -&gt; Linker -&gt; Input -&gt; Ignore Specific Library에 추가&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6301271800623501515?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6301271800623501515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/09/vs-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6301271800623501515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6301271800623501515'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/09/vs-2008.html' title='VS 2008 몇가지 문제'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-773490471194268494</id><published>2008-09-22T17:34:00.002+09:00</published><updated>2008-09-22T17:35:08.570+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Internal'/><title type='text'>WinDBG Instruction set</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: '맑은 고딕'; font-size: 12px; line-height: 18px; "&gt;&lt;p&gt;&lt;strong&gt;프로세스 리스팅&lt;/strong&gt;&lt;br /&gt;!process 0 0&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;프로세스 어태치 시키기&lt;/strong&gt;&lt;br /&gt;.process /i [pid]&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;할당된 가상메모리 덤프&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;올리디버거의 Memory Map윈도의 기능&lt;/p&gt;&lt;p&gt;!vadump [-v]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;해당메모리 주소가 어떤 속성인지 알려줌&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; !vprot [주소]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;현재 프로세스내에 동작중인 스레드의 스택을 보여줌&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; !uniqstack [-b]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-b옵션을 주면 스택에 담긴 아규먼트까지 보여준다&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;현재 스레드에 할당된 권한(Privilege)를 보여줌&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!token&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;각 스레드가 동작한 시간&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; !runaway&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;레지스트리 정보 확인&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; !dreg&lt;/p&gt;&lt;p&gt;예) 0:000&gt; !dreg System\CurrentControlSet\Services\Tcpip!*&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;해당 주소를 UNICODE_STRING구조체 형식으로 살펴봄&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!ustr [주소]&lt;/p&gt;&lt;br /&gt;&lt;p&gt; typedef struct _UNICODE_STRING {&lt;br /&gt;    USHORT Length;&lt;br /&gt;    USHORT MaximumLength;&lt;br /&gt;    PWSTR  Buffer;&lt;br /&gt;} UNICODE_STRING;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;해당 주소를 ANSI_STRING혹은 OEM_STRING구조체로 살펴봄&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!str [주소]&lt;/p&gt;&lt;p&gt; typedef struct _STRING {&lt;br /&gt;    USHORT Length;&lt;br /&gt;    USHORT MaximumLength;&lt;br /&gt;    PCHAR Buffer;&lt;br /&gt;} STRING;&lt;br /&gt;typedef STRING ANSI_STRING;&lt;br /&gt;typedef STRING OEM_STRING;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;스레드 로컬 스토리지 슬롯을 살펴봄&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!tls&lt;/p&gt;&lt;p&gt;모든 슬롯 출력&lt;/p&gt;&lt;p&gt;예) !tls -1&lt;/p&gt;&lt;p&gt;Specifies the thread environment block (TEB). If this is 0 or omitted, the current thread is used&lt;/p&gt;&lt;p&gt;예) !tls 0&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;현재 스레드의 TEB정보를 출력&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; !teb&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;현재 프로세스의 PEB정보를 출력&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!peb&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;잘 알려진 몇몇 STL템플릿정보를 출력&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!stl&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;로딩된 dll모듈의 베이스주소와 길이 모듈명을 출력한다&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;lm&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;해당모듈의 자세한 정보를 출력&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!lmi [모듈]&lt;/p&gt;&lt;p&gt;예) !lmi 00400000&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;반복적인 디버거명령을 실행시키면서, 링크드리스트 정보를 출력함&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!list&lt;/p&gt;&lt;p&gt;예) !list "-t ntdll!_LIST_ENTRY.Flink -e -x \"dd @$extret l4; dt ntdll!_RTL_CRITICAL_SECTION_DEBUG @$extret-0x8\" ntdll!RtlCriticalSectionList"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;현재 Shared User-mode Page를 출력함&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;현재 타임존과 시스템루트, TickCount와 시간을 출력함&lt;/p&gt;&lt;p&gt;!kuser&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;로드된 모듈들의 리로케이션되기전의 주소를 출력한다&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!imgreloc [주소]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;최근 에러코드를 리턴한다&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!gle&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;에러코드를 가지고 무슨 에러인지 설명을 보여준다&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!error [에러코드번호]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;글로벌 플래그를 설정 혹은 보여준다&lt;/p&gt;&lt;p&gt;!gflag&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;로드된 모듈들에 대한 커스터마이징(?)된 출력을 해준다.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!for_each_module ["명령어"]&lt;/p&gt;&lt;p&gt;예) !for_each_module .echo @#ModuleIndex : @#Base @#End @#ModuleName @#ImageName  @#LoadedImageName&lt;/p&gt;&lt;p&gt;로드된 모듈에서 MZ로 시작되는것을 찾는다&lt;br /&gt;예) !for_each_module s-a @#Base @#End "MZ"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;가상메모리에서 이미지헤더를 검색한다 (MZ검색)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;.imgscan&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;표현식을 헥사, 8진수, 2진수, 시간형, Float형, Double 형으로 변환한 형태로 보여준다&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;.formats [표현식]&lt;/p&gt;&lt;strong&gt;디버그 레지스터 확인&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;0:000&gt; rm 0x20;r&lt;br /&gt;dr0=00000000 dr1=00000000 dr2=00000000&lt;br /&gt;dr3=00000000 dr6=00000000 dr7=00000000&lt;br /&gt;ntdll!KiFastSystemCallRet:&lt;br /&gt;7c93eb94 6a01            push    1&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;범용레지스터 확인&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;0:000&gt; rm 0x01;r&lt;br /&gt;eax=00000000 ebx=00000000 ecx=00000006 edx=7c9ac080 esi=7c93e88e edi=00000000&lt;br /&gt;eip=7c93eb94 esp=0007fde8 ebp=0007fee4 iopl=0         nv up ei pl zr na pe nc&lt;br /&gt;ntdll!KiFastSystemCallRet:&lt;br /&gt;7c93eb94 6a01            push    1&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;레지스터 값 변경&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;r eip=7c931230 &lt;br /&gt;r eax = @ebx&lt;br /&gt;r zf=0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;특정 주소에 어셈블 코드 삽입&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;a &lt;위치&gt;&lt;br /&gt;예) a eip&lt;br /&gt;00401000    sub esp, 10&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;특정 주소에 원하는 값 삽입&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;e[옵션] &lt;주소&gt;&lt;br /&gt;예) eb &lt;주소&gt;&lt;br /&gt;00401000 90&lt;br /&gt;00401001 90&lt;br /&gt;00401002 90&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;현재 보여주는 숫자의 진수바꾸기&lt;br /&gt;&lt;/strong&gt;n &lt;base&gt;&lt;br /&gt;예) n 8&lt;br /&gt;예) n 16       # 16진수&lt;br /&gt;예) n 10       #10진수로 보여줌&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;메모리가 참조하고 있는 데이터를 살펴보기&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;예) dpa esp             현재 스택을 아스키형태로 보여줌&lt;br /&gt;예) dpu esp             현재 스택을 유니코드형태로 보여줌&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;메모리의 내용을 심벌과 매핑시켜서 보여줌&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;예) dds esp            현재 콜 스택을 보여줌&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: '맑은 고딕'; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: '맑은 고딕'; font-size: 12px; line-height: 18px;"&gt;출처 : &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia; font-size: 16px; line-height: normal; "&gt;&lt;a href="http://www.sinwoong.co.kr/entry/Windbg-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC"&gt;http://www.sinwoong.co.kr/entry/Windbg-명령어-정리&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-773490471194268494?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/773490471194268494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/09/windbg-instruction-set.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/773490471194268494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/773490471194268494'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/09/windbg-instruction-set.html' title='WinDBG Instruction set'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7430258722493198834</id><published>2008-09-10T09:00:00.002+09:00</published><updated>2008-09-10T09:03:38.685+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hook'/><title type='text'>JMP COde HOOK</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KYUsDAgl5oc/SMcO1AY-12I/AAAAAAAAADE/cP23jpzp1Hg/s1600-h/Clevis_Grab_Hook.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_KYUsDAgl5oc/SMcO1AY-12I/AAAAAAAAADE/cP23jpzp1Hg/s400/Clevis_Grab_Hook.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5244176594896869218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="  line-height: 19px; font-family:GEORGIA;font-size:13px;"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;mov byte ptr [edi],0E9h   ; E9는 jmp 인스트럭션 opcode 이다.&lt;br /&gt;mov eax,offset new_sleep    ; eax에 new_sleep 함수의 주소를 할당한다.&lt;br /&gt;sub eax,edi                ; 할당된 주소에서 후킹하고자 하는 위치[edi]의 주소를 뺀다. 상대주소 계산을 위해서다.&lt;br /&gt;sub eax,5                    ; 추가로 5bytes를 빼줌으로써 jmp 인스트럭션 길이(5bytes)를 감안해준다.&lt;br /&gt;inc edi                        ; 삽입 된 E9 opcode 다음에 계산된 상대거리(offset)를 삽입하기 위해 1bytes 올려준다.&lt;br /&gt;stosd                          ; 주소를 edi에 복사한다. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 19px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 19px;font-size:13px;"&gt;출처 : &lt;span class="Apple-style-span"  style=" line-height: normal; font-size:16px;"&gt;&lt;a href="http://micingamja.egloos.com/4079152"&gt;http://micingamja.egloos.com/4079152&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7430258722493198834?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7430258722493198834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/09/jmp-code-hook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7430258722493198834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7430258722493198834'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/09/jmp-code-hook.html' title='JMP COde HOOK'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KYUsDAgl5oc/SMcO1AY-12I/AAAAAAAAADE/cP23jpzp1Hg/s72-c/Clevis_Grab_Hook.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-187352047102280828</id><published>2008-09-09T15:23:00.004+09:00</published><updated>2008-09-09T15:26:08.667+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WallPaper'/><title type='text'>080809</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KYUsDAgl5oc/SMYWeND1ZTI/AAAAAAAAAC8/fxDLid3C3FM/s1600-h/080909.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/SMYWeND1ZTI/AAAAAAAAAC8/fxDLid3C3FM/s400/080909.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5243903524277151026" /&gt;&lt;/a&gt;Theme : NeoGeniX Compact - malgun 8 font(fixed font by nofate)&lt;div&gt;Miranda IM - Dark Side(BT) 1.1&lt;/div&gt;&lt;div&gt;Foobar - Same that :)&lt;/div&gt;&lt;div&gt;Rocket Dock - Same that too :p&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-187352047102280828?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/187352047102280828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/09/080809.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/187352047102280828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/187352047102280828'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/09/080809.html' title='080809'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KYUsDAgl5oc/SMYWeND1ZTI/AAAAAAAAAC8/fxDLid3C3FM/s72-c/080909.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1666126006415135692</id><published>2008-09-03T12:42:00.003+09:00</published><updated>2008-09-09T15:19:49.428+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Chrome'/><title type='text'>Google Chrome Beta</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KYUsDAgl5oc/SL4H1uq06II/AAAAAAAAACw/MOW2rW0hEeE/s1600-h/chrome.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/SL4H1uq06II/AAAAAAAAACw/MOW2rW0hEeE/s400/chrome.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5241635635947956354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Engine : Webkit + v8 Javascript&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;첫소감은 상당히 가볍다는 것입니다. 파폭보다 초기구동시간도 짧고 페이지 이동속도도 빠르군요..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;폴더를 뒤져보니 테마폴더가 따로있는거를 보니, 수정도 가능할 것 같습니다... :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;크롬으로 인해 오픈소스진영의 웹브라우져 점유율 증가에 도움이 되었으면 좋겠네요..:)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1666126006415135692?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1666126006415135692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/09/google-chrome-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1666126006415135692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1666126006415135692'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/09/google-chrome-beta.html' title='Google Chrome Beta'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KYUsDAgl5oc/SL4H1uq06II/AAAAAAAAACw/MOW2rW0hEeE/s72-c/chrome.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-8540735489269335659</id><published>2008-08-28T10:58:00.004+09:00</published><updated>2008-08-28T11:10:56.546+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fireworks display'/><title type='text'>fireworks display</title><content type='html'>&lt;p&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a296bd25b0f4c227" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v13.nonxt7.googlevideo.com/videoplayback?id%3Da296bd25b0f4c227%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D184EF68443676638A6081C5E8DC21D96642A4A98.862FEBF32FBC4A978AF428F6A78C630EC9A0E53A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da296bd25b0f4c227%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dh7ZFcUH_ozRkDQRALLfpy4tjXDQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v13.nonxt7.googlevideo.com/videoplayback?id%3Da296bd25b0f4c227%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D184EF68443676638A6081C5E8DC21D96642A4A98.862FEBF32FBC4A978AF428F6A78C630EC9A0E53A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da296bd25b0f4c227%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dh7ZFcUH_ozRkDQRALLfpy4tjXDQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;2008.08.26&lt;/p&gt;&lt;p&gt;회룡역 공사 후 불꽃놀이하는 영상.&lt;/p&gt;&lt;p&gt;중간에 하는 말은 시에서 하는 건데 뭐이리 오래동안 빵빵터트리나 해서 나온 말입니다.&lt;/p&gt;&lt;p&gt;(알아보니 공사 한다는게 신문에 올라왔다더군요..시장이 잘보일려고 한거 같네요..뭐 저에겐 별로 좋게 보이진 않았지만 말이죠..)&lt;/p&gt;&lt;p&gt;video recoder : KTF Ever W-300(cellular phone)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-8540735489269335659?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=a296bd25b0f4c227&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/8540735489269335659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/fireworks-display.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8540735489269335659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/8540735489269335659'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/fireworks-display.html' title='fireworks display'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5979037702671881458</id><published>2008-08-28T09:47:00.003+09:00</published><updated>2008-08-28T09:50:28.464+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><title type='text'>OS Timeline</title><content type='html'>BSD &amp;amp; UNIX&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_KYUsDAgl5oc/SLX1sgng7AI/AAAAAAAAAB0/vzJ1NoPUQXI/s1600-h/BSD_History.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5239363886534159362" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_KYUsDAgl5oc/SLX1sgng7AI/AAAAAAAAAB0/vzJ1NoPUQXI/s400/BSD_History.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Linux&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_KYUsDAgl5oc/SLX1tT5sf5I/AAAAAAAAAB8/WPt4QNBv4D0/s1600-h/gldt76.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5239363900300623762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/SLX1tT5sf5I/AAAAAAAAAB8/WPt4QNBv4D0/s400/gldt76.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;link : &lt;a href="http://x86osx.com/bbs/view.php?id=freeboard&amp;amp;page=1&amp;amp;sn1=&amp;amp;divpage=2&amp;amp;sn=off&amp;amp;ss=on&amp;amp;sc=on&amp;amp;select_arrange=headnum&amp;amp;desc=asc&amp;amp;no=10607"&gt;http://x86osx.com/bbs/view.php?id=freeboard&amp;amp;page=1&amp;amp;sn1=&amp;amp;divpage=2&amp;amp;sn=off&amp;amp;ss=on&amp;amp;sc=on&amp;amp;select_arrange=headnum&amp;amp;desc=asc&amp;amp;no=10607&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5979037702671881458?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5979037702671881458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/os-timeline.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5979037702671881458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5979037702671881458'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/os-timeline.html' title='OS Timeline'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KYUsDAgl5oc/SLX1sgng7AI/AAAAAAAAAB0/vzJ1NoPUQXI/s72-c/BSD_History.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6030828997070629012</id><published>2008-08-23T01:40:00.005+09:00</published><updated>2008-09-10T09:05:55.609+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>개조 xp들 언제가 소송걸릴 줄 알았다.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KYUsDAgl5oc/SMcPXvVL61I/AAAAAAAAADM/P-pfhV8Qutk/s1600-h/jmxp_jubileo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/SMcPXvVL61I/AAAAAAAAADM/P-pfhV8Qutk/s400/jmxp_jubileo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5244177191612967762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;컴공생도이다보니 전 기존의 정품을 개조해서 돌아다니는 것에 대한 약간의 거부감을 가지고 있습니다. (사실 저작권에 대해 교수님에게 수업을 들은 적이 있습니다.;)&lt;br /&gt;&lt;br /&gt;사실 June/BlackEdition XP와 같은 것이 돌아다닐 때도, 참 인상이 찌뿌려 지더군요.;&lt;br /&gt;&lt;br /&gt;3일 전엔가 JMXP 제작자 분(&lt;a href="http://blog.naver.com/solidthink/150034026823"&gt;http://blog.naver.com/solidthink/150034026823&lt;/a&gt;)이 MS에 고소를 당했다는 내용을 보았습니다.&lt;br /&gt;&lt;br /&gt;내용이 와전되면서 6억을 부담할 꺼라는 얘기가 돌았는데 찾아보니 6억은 총 피해 추산액으로 내놓은 것이고 몇천만원이 부담될 것이라고 하는군요..&lt;br /&gt;&lt;br /&gt;MS입장에서는 한사람 잡아서 본보기를 보여주는 식으로 진행되는 거 같습니다.&lt;br /&gt;&lt;br /&gt;사실 국내에 June XP 초기버전이 돌아다닐 시에만 해도 저작권이라는 개념이 상대적으로 약한 상황이였으니..참=_=; (아직도 많이 약하긴 하죠.)&lt;br /&gt;&lt;br /&gt;BlackEdition의 경우엔 같은 학교 컴공생들 몇명은 MS에서 나온줄 알았다고 할 정도였으니=_=;&lt;br /&gt;&lt;br /&gt;되도록이면 P2P는 사용하지 마시고(언제 자신이 업로더가 될지 모릅니다.),  어떤 것이던지..인터넷에 컨텐츠(블로깅도 마찬가지죠)을 게시하는 분들은 게시전에 저작권에 대해 꼭 한번씩 생각해보았으면 하네요.&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6030828997070629012?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6030828997070629012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/xp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6030828997070629012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6030828997070629012'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/xp.html' title='개조 xp들 언제가 소송걸릴 줄 알았다.'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KYUsDAgl5oc/SMcPXvVL61I/AAAAAAAAADM/P-pfhV8Qutk/s72-c/jmxp_jubileo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6426562372817021908</id><published>2008-08-22T19:33:00.004+09:00</published><updated>2008-08-22T19:36:24.631+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='defcon'/><title type='text'>Defcon 16 iso image file</title><content type='html'>&lt;p&gt;defcon16.iso (include ppt &amp;amp; related tools)&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5237288931013212562" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_KYUsDAgl5oc/SK6WiM8guZI/AAAAAAAAABs/B307E7VyezQ/s400/2779097343_d81bf1f7ef_o.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;link : &lt;a href="http://edge.i-hacked.com/defcon16-cd-iso-posted"&gt;http://edge.i-hacked.com/defcon16-cd-iso-posted&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6426562372817021908?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6426562372817021908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/defcon-16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6426562372817021908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6426562372817021908'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/defcon-16.html' title='Defcon 16 iso image file'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KYUsDAgl5oc/SK6WiM8guZI/AAAAAAAAABs/B307E7VyezQ/s72-c/2779097343_d81bf1f7ef_o.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3063409662337323763</id><published>2008-08-17T20:52:00.003+09:00</published><updated>2008-08-17T20:59:14.248+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WallPaper'/><title type='text'>080817</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KYUsDAgl5oc/SKgRCciXMqI/AAAAAAAAABc/QCsj8jhvJSA/s1600-h/080817.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/SKgRCciXMqI/AAAAAAAAABc/QCsj8jhvJSA/s400/080817.JPG" alt="" id="BLOGGER_PHOTO_ID_5235453300535931554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KYUsDAgl5oc/SKgSZbxM6JI/AAAAAAAAABk/hWcgSyYv2ho/s1600-h/080817.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_KYUsDAgl5oc/SKgSZbxM6JI/AAAAAAAAABk/hWcgSyYv2ho/s400/080817.JPG" alt="" id="BLOGGER_PHOTO_ID_5235454794978355346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;VS : AShen II (Calibri)&lt;br /&gt;IconPackager : Alpha1 (Black)&lt;br /&gt;Miranda Skin : TRiNiUM (BankGothic Font)&lt;br /&gt;Rainlendar : Gloosy_Shadow4&lt;br /&gt;Foobar : FooSmooth + Jellybox_pp&lt;br /&gt;Dock : RocketDock(include Stack Docklet)&lt;br /&gt;WallPaper : DarkKnight_Joker(1680x1050)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3063409662337323763?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3063409662337323763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/080817.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3063409662337323763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3063409662337323763'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/080817.html' title='080817'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KYUsDAgl5oc/SKgRCciXMqI/AAAAAAAAABc/QCsj8jhvJSA/s72-c/080817.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-4628438055185725367</id><published>2008-08-15T20:41:00.002+09:00</published><updated>2009-04-13T02:12:21.586+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><title type='text'>DOTA Instruction</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;color:#ff0000;"&gt;명령어란?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;span style="color:#c1c1c1;"&gt;도타 올스타 플레이시 사용할 수 있는 명령어들입니다. &lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;span style="color:#c1c1c1;"&gt;명령어는 &lt;span style="color:#ff9900;"&gt;&lt;strong&gt;게임 시작시 모드를 정하는 명령어와 게임 도중에 쓸 수 있는 명령어로&lt;/strong&gt; &lt;/span&gt;나뉘어집니다.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;span style="color:#c1c1c1;"&gt;&lt;span style="color:#ff9900;"&gt;게임 모드를 정하는 명령어&lt;/span&gt;&lt;span style="color:#c1c1c1;"&gt;는&lt;/span&gt; 파란색(Blue) 플레이어만이 사용할 수 있고&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;span style="color:#c1c1c1;"&gt;(파란색 플레이어가 없다면 그 바로 아래 유저가 사용가능)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;span style="color:#c1c1c1;"&gt;게임 시작 후 1분이 지나면 사용할 수 없습니다.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;span style="color:#c1c1c1;"&gt;&lt;strong&gt;-sp&lt;/strong&gt; : Shuffle Player. 접속해있는 플레이어들의 진영을 임의로 바꿉니다.&lt;br /&gt;&lt;strong&gt;-ap&lt;/strong&gt; : All Pick모드. 센티널,스콜지 양 진영영웅을 자유롭게 선택 할 수 있는 모드.&lt;br /&gt;&lt;strong&gt;-ar&lt;/strong&gt; : All Random모드. 게임 내 모든 플레이어가 임의의 영웅을 갖게 됨.&lt;br /&gt;&lt;strong&gt;-lm&lt;/strong&gt; : League모드. 양 진영이 번갈아가면서 영웅을 골라야 하는 모드.&lt;br /&gt;&lt;strong&gt;-mm&lt;/strong&gt; : Mirror Match모드. 양쪽 진영이 같은 영웅들을 갖게 합니다.&lt;br /&gt;&lt;strong&gt;-dm&lt;/strong&gt; : Death Match모드. 죽을때마다 다른 영웅을 골라야 하는 모드. 이미 한번 골랐던 영웅은 터번에서 사라집니다.&lt;br /&gt;　　　　　　　　　　　　 또한, 죽을때마다 경험치를 잃게됩니다.&lt;br /&gt;&lt;strong&gt;-aa&lt;/strong&gt; : All Agility모드. 민첩영웅만을 선택할 수 있게 됩니다.&lt;br /&gt;&lt;strong&gt;-ai&lt;/strong&gt; : All Intelligence모드. 지능영웅만을 선택할 수 있게 됩니다.&lt;br /&gt;&lt;strong&gt;-as&lt;/strong&gt; : All Strength모드. 힘영웅만을 선택할 수 있게 됩니다.&lt;br /&gt;&lt;strong&gt;-id&lt;/strong&gt; : item drop 모드. 영웅이 죽을때 가지고있는 아이템중 하나를 임의로 떨어트리는 모드.&lt;br /&gt;&lt;strong&gt;-np&lt;/strong&gt; : 룬이 생성되지 않는 모드.&lt;br /&gt;&lt;strong&gt;-sc&lt;/strong&gt; : Super Creep모드. 게임 도중 수차례에 걸쳐 양쪽 진영에 슈퍼크립이 등장합니다. (고대히드라, 멀록전사, 시즈골렘 등)&lt;br /&gt;&lt;strong&gt;-mr&lt;/strong&gt; : Mode Random. 게임 모드중 임의의 모드명령어 하나를 실행한 효과를 보여줍니다.&lt;br /&gt;&lt;strong&gt;-tr&lt;/strong&gt; : Team Random 모드. 팀원이 모두 임의의 영웅을 갖게됩니다. (파란색, 분혹생 플레이어만 사용 가능)&lt;br /&gt;&lt;strong&gt;-du&lt;/strong&gt; : Duplicate 모드. Random 으로 이미 선택된 영웅을 가질 수 있습니다.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;-sh&lt;/strong&gt; : Same Hero 모드.&lt;br /&gt;-&lt;strong&gt;em&lt;/strong&gt; : Easy 모드. 타워의 체력이 약화되고, 크립이 주는 경험치와 돈, 지급받는 돈의 양이 증가합니다.&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;vr&lt;/strong&gt; : VoteRandom. Ar과 비슷하지만, 어떤 영웅들이 나오게 될지 투표를 할 수 있습니다.&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;wtf&lt;/strong&gt; : What The Fuck 모든 스킬과 아이템의 마나와 쿨타임이 0이 드는 모드입니다.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;만약 동시에 여러개의 모드를 즐기고 싶다면, 한번에 여러번의 명령어를 같이 치면 됩니다&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;예로 SP, AP, LM 의 모드를 동시에 하고싶다면&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;-spaplm 이라고 치면 됩니다(순서상관없음)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;span style="color:#ff9900;"&gt;게임 내 명령어&lt;/span&gt;는 모든 플레이어가 사용가능하고, -random, -repick 을 제외하고는 게임중 언제든 사용가능합니다.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;-random&lt;/strong&gt; : 자신이 고를 수 있는 캐릭터중 임의로 한 영웅을 고릅니다. 영웅 선택비용 250골드를 소모하지 않습니다.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;-repick&lt;/strong&gt; : 현재의 영웅을 포기하고 다시한번 터번에서 영웅을 고를 수 있습니다.&lt;br /&gt;　　　　　　 (단, -AR -TR 모드에서는 임의의 새로운 영웅이 선택됩니다.)&lt;br /&gt;&lt;strong&gt;-cs&lt;/strong&gt; : Creep Score의 약자. 자신이 죽인 크립(적,중립) / 아군크립 의 수를 보여줍니다.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;-cson&lt;/strong&gt; / &lt;strong&gt;-csoff&lt;/strong&gt; : CS내역이 화면 우측상단 스코어보드 아래 새로 추가/제거 됩니다..&lt;br /&gt;&lt;strong&gt;-ms&lt;/strong&gt; : Move Speed. 현재 영웅의 이동속도를 보여줍니다.&lt;br /&gt;&lt;strong&gt;-ma&lt;/strong&gt; : MAtch up. 적군 플레이어들의 선택된 영웅이름을 보여줍니다.&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;hidemsg &lt;/strong&gt;/ -&lt;strong&gt;unhidemsg&lt;/strong&gt; : 영웅이 죽을때 나오는 메세지를 끄거나/다시키는 명령어 입니다.&lt;br /&gt;　　　　　　　　　　　　　 (기본적으로 메세지는 나오게 되어있습니다.)&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;unstuck&lt;/strong&gt; : 영웅이 빠져나올 수 없는 지형(나무사이 혹은 언덕같은 곳)으로 들어갔을 경우에 사용하는 명령어.&lt;/p&gt; &lt;p&gt;                 약 20-30초 후쯤 무적상태와 조작이 불가능해지고 우물로 돌아가게 됩니다.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;참고 글 : Somgate의 서비님의 글 '도타 올스타 백과사전'&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-4628438055185725367?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/4628438055185725367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/dota-instruction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4628438055185725367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4628438055185725367'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/dota-instruction.html' title='DOTA Instruction'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-4755911356452927774</id><published>2008-08-14T14:27:00.005+09:00</published><updated>2009-01-31T14:55:45.235+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerability'/><title type='text'>vulnerability (S University)</title><content type='html'>please wait :)&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-4755911356452927774?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/4755911356452927774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/08/vuln-seg-university.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4755911356452927774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/4755911356452927774'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/08/vuln-seg-university.html' title='vulnerability (S University)'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-6857000970845371371</id><published>2008-07-25T13:15:00.005+09:00</published><updated>2008-08-14T15:00:58.313+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>CPU History</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KYUsDAgl5oc/SKPI57DjH5I/AAAAAAAAABM/aECt5x32Pa0/s1600-h/download.blog1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_KYUsDAgl5oc/SKPI57DjH5I/AAAAAAAAABM/aECt5x32Pa0/s400/download.blog1.png" alt="" id="BLOGGER_PHOTO_ID_5234248089365323666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KYUsDAgl5oc/SKPI6IXhxGI/AAAAAAAAABU/MqZKNZRi_KQ/s1600-h/download.blog.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_KYUsDAgl5oc/SKPI6IXhxGI/AAAAAAAAABU/MqZKNZRi_KQ/s400/download.blog.png" alt="" id="BLOGGER_PHOTO_ID_5234248092938781794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;lol&lt;br /&gt;&lt;br /&gt;source link :  &lt;a href="http://iamkg.tistory.com/62"&gt;http://iamkg.tistory.com/62&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-6857000970845371371?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/6857000970845371371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/cpu-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6857000970845371371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/6857000970845371371'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/cpu-history.html' title='CPU History'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KYUsDAgl5oc/SKPI57DjH5I/AAAAAAAAABM/aECt5x32Pa0/s72-c/download.blog1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-7736346051465628774</id><published>2008-07-25T12:11:00.001+09:00</published><updated>2008-07-25T12:11:44.058+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><title type='text'>WoW MultiCore Setting</title><content type='html'>If you have more than 2 cores (physical processors, physical cores, or logical HT "cores"), you can change a setting in config.wtf to specify which cores WoW will schedule certain threads on.&lt;br /&gt;&lt;br /&gt;Find the line in config.wtf that says:&lt;br /&gt;&lt;br /&gt;      SET processAffinityMask = "3"&lt;br /&gt;&lt;br /&gt;and change it to:&lt;br /&gt;&lt;br /&gt;      SET processAffinityMask = "15"&lt;br /&gt;&lt;br /&gt;A setting of 3 is the binary mask for cores 1 and 2; a setting of 15 is the binary mask for cores 1, 2, 3, and 4.&lt;br /&gt;&lt;br /&gt;╔══════╦════════╤════════╤════════╤════════╗&lt;br /&gt;&lt;br /&gt;║ Mask ║ Core 1 │ Core 2 │ Core 3 │ Core 4 ║&lt;br /&gt;&lt;br /&gt;╠══════╬════════╪════════╪════════╪════════╣&lt;br /&gt;&lt;br /&gt;║   1  ║   ██   │   ░░   │   ░░   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   2  ║   ░░   │   ██   │   ░░   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   3  ║   ██   │   ██   │   ░░   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   4  ║   ░░   │   ░░   │   ██   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   5  ║   ██   │   ░░   │   ██   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   6  ║   ░░   │   ██   │   ██   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   7  ║   ██   │   ██   │   ██   │   ░░   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   8  ║   ░░   │   ░░   │   ░░   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║   9  ║   ██   │   ░░   │   ░░   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║  10  ║   ░░   │   ██   │   ░░   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║  11  ║   ██   │   ██   │   ░░   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║  12  ║   ░░   │   ░░   │   ██   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║  13  ║   ██   │   ░░   │   ██   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║  14  ║   ░░   │   ██   │   ██   │   ██   ║&lt;br /&gt;&lt;br /&gt;╟──────╫────────┼────────┼────────┼────────╢&lt;br /&gt;&lt;br /&gt;║  15  ║   ██   │   ██   │   ██   │   ██   ║&lt;br /&gt;&lt;br /&gt;╚══════╩════════╧════════╧════════╧════════╝&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-7736346051465628774?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/7736346051465628774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/wow-multicore-setting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7736346051465628774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/7736346051465628774'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/wow-multicore-setting.html' title='WoW MultiCore Setting'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-3815585158167089151</id><published>2008-07-22T23:03:00.006+09:00</published><updated>2008-08-28T17:08:51.518+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>after installed SP3, Windows cant operate automatic windows update..</title><content type='html'>&lt;a href="http://bp2.blogger.com/_KYUsDAgl5oc/SIXpJvh5EbI/AAAAAAAAAA0/fTlQVzZc7rI/s1600-h/1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5225839296220041650" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_KYUsDAgl5oc/SIXpJvh5EbI/AAAAAAAAAA0/fTlQVzZc7rI/s400/1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://bp2.blogger.com/_KYUsDAgl5oc/SIXpC1V4qFI/AAAAAAAAAAs/PD_gdCDfsB4/s1600-h/1.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-3815585158167089151?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/3815585158167089151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/after-install-sp3-cant-automatic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3815585158167089151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/3815585158167089151'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/after-install-sp3-cant-automatic.html' title='after installed SP3, Windows cant operate automatic windows update..'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_KYUsDAgl5oc/SIXpJvh5EbI/AAAAAAAAAA0/fTlQVzZc7rI/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-5753319371728924378</id><published>2008-07-20T16:51:00.001+09:00</published><updated>2008-07-20T16:52:07.997+09:00</updated><title type='text'>psp blogging test</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://bp1.blogger.com/_KYUsDAgl5oc/SILuhPONOCI/AAAAAAAAAAY/mmt99-WvtNE/s1600-h/01-12-792157.BMP"&gt;&lt;img src="http://bp1.blogger.com/_KYUsDAgl5oc/SILuhPONOCI/AAAAAAAAAAY/mmt99-WvtNE/s320/01-12-792157.BMP" alt="" id="BLOGGER_PHOTO_ID_5225000772492408866" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://bp3.blogger.com/_KYUsDAgl5oc/SILuhP170hI/AAAAAAAAAAg/PNHLA8_hCMQ/s1600-h/1864-792767.JPG"&gt;&lt;img src="http://bp3.blogger.com/_KYUsDAgl5oc/SILuhP170hI/AAAAAAAAAAg/PNHLA8_hCMQ/s320/1864-792767.JPG" alt="" id="BLOGGER_PHOTO_ID_5225000772659040786" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;psp test&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-5753319371728924378?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/5753319371728924378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/blog-post_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5753319371728924378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/5753319371728924378'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/blog-post_20.html' title='psp blogging test'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_KYUsDAgl5oc/SILuhPONOCI/AAAAAAAAAAY/mmt99-WvtNE/s72-c/01-12-792157.BMP' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1111838916543653724</id><published>2008-07-20T16:38:00.001+09:00</published><updated>2008-07-20T16:39:49.912+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><title type='text'>명령어 주소지정과 실행</title><content type='html'>&lt;span xmlns=""&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;운영체제는 아래와 같은 기능을 가진다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;파일관리, 입출력, 프로그램 적재, 메모리 관리, 인터럽트&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;컴퓨터는 전원을 키면 프로세서는 재설정 상태로 들어가고, 모든 메모리 위치를 0으로 설정한 후, 메모리의 패리티 검사를 실시, CS레지스터를 세그먼트 주소 FFFF[0]H로 설정하고 IP레지스터를 0으로 설정한다. 이주소는 롬에 위치한 BIOS의 시작주소로 FFFF0H이다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;BIOS는 컴퓨터에 부착된 장치들을 인식하고 초기화를 위한 포트를 점검하고 장치로부터 read/write하는데 사용되는 서비스를 제공한다. 그 후 데이터는 두가지 데이터 영역을 설정한다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;인터럽트 벡터 테이블 - 하위 메모리의 위치0에서 시작, 세그먼트:오프셋 형태로 4바이트의 주소를 256개를 포함&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;BIOS데이터 영역 - 40[0]에서 시작하며 주로 부착된 장치의 상태와 관련&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;그 다음 BIOS는 디스크를 확인하고, 부트스트랩 로더에 접근한다. 이 로더는 디스크의 시스템 파일을 메모리에 올리고, 시스템 파일에게 제어를 넘긴다. 이 시스템 파일은 내부 시스템 테이블과 시스템의 인터럽트 벡터 테이블을 초기화 한다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;운영체제는 BIOS와의 연결을 지원하여야 하며, 프로그램은 운영체제와 바이오스를 거쳐 장치에 액세스하거나, 운영체제를 생략, 또는 둘다 생략하여 장치에 접근할 수도 있다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;&lt;strong&gt;주소지정방식&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="margin-left: 5pt;"&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 182px;"&gt;&lt;col style="width: 237px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;레지스터 주소지정&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: solid solid solid none; border-color: rgb(163, 163, 163) rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;mov edx, ebx&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-style: none solid solid; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163); border-width: medium 1pt 1pt; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;직접 값 주소지정&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;ex) mov byte, 50&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-style: none solid solid; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163); border-width: medium 1pt 1pt; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;직접 메모리 주소지정&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;ex) mov bx, word_val&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-style: none solid solid; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163); border-width: medium 1pt 1pt; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;직접-오프셋 주소지정&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;ex) mov cl, byte_tbl[2] ; byte_tbl+2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-style: none solid solid; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163); border-width: medium 1pt 1pt; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;간접 메모리 주소지정 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;ex) lea bx, data_val mov [bx], cl&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-style: none solid solid; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163); border-width: medium 1pt 1pt; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;베이스 인덱스 주소지정&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;ex) mov ax, [bx+si] add [bx+di], cl&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-style: none solid solid; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163); border-width: medium 1pt 1pt; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;변위를 갖는 베이스 인덱스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color rgb(163, 163, 163) rgb(163, 163, 163) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 5px;"&gt;&lt;p&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;ex) mov, [ecx*2+esp+4]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style="margin-left: 5pt;"&gt;&lt;span style=";font-family:맑은 고딕;font-size:10;"  &gt;&lt;br /&gt;&lt;/span&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1111838916543653724?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1111838916543653724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1111838916543653724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1111838916543653724'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/blog-post.html' title='명령어 주소지정과 실행'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-1605992074462731693</id><published>2008-07-20T16:03:00.000+09:00</published><updated>2008-07-20T16:31:24.862+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><title type='text'>Call &amp; RETn instruction</title><content type='html'>Call명령어는 제어를 피호출 프로시저로 전달&lt;br /&gt;RETn명령어는 원래의 호출 프로시저로 되돌아 오도록 한다.&lt;br /&gt;&lt;br /&gt;RETn은 피 호출 프로시저의 끝에 오는 것이 일반적이며,&lt;br /&gt;&lt;br /&gt;근거리 원거리 여부는 컴파일러가 결정한다.&lt;br /&gt;&lt;br /&gt;(물론 RETN(RETurn Near)와 RETF(RETurn Far)로 사용자가 정의할 수도 있다.)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;근거리 호출의 경우&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;PUSH연산으로 SP를 word사이즈만큼 감소시키고, IP를 스택에 push&lt;/li&gt;&lt;li&gt;피호출 프로시저의 offset을 ip로 이동(processor queue clear)&lt;/li&gt;&lt;li&gt;프로시저의 RET을 만나게 되면, POP연산으로 이전의 IP 값을 꺼내어 instruction pointer를 변경한다.&lt;/li&gt;&lt;li&gt;stack pointer를 다시 word사이즈만큼 증가시킨다.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;원거리 호출의 경우&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;원거리는 다른 코드 세그먼트의 FAR레이블을 가진 프로시저를 호출하므로, ip만을 저장하는 것이 아니라, cs(code segment)까지 스택에 저장&lt;/li&gt;&lt;li&gt;ret시 해당 내용을 복구하는 방식을 사용한다.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;example code)&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-family:monospace;"&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 1 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;title&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;a07callp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 2 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.model&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;small&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 3 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.stack&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;64&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 4 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.data&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 5 &lt;/b&gt;&lt;/span&gt;;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;---------------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 6 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.code&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 7 &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;main&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;proc&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;far&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 8 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;call&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;b10&lt;/b&gt;&lt;/span&gt;   ;&lt;span style="color:#00ffff;"&gt;&lt;b&gt; call b10&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt; 9 &lt;/b&gt;&lt;/span&gt;;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;   ........&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;10 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;mov&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;ax&lt;/b&gt;&lt;/span&gt;, &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;c00h&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;11 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;h&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;12 &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;main&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;endp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;13 &lt;/b&gt;&lt;/span&gt;;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;---------------------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;14 &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;b10&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;proc&lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;near&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;15 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;ret&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;16 &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;b10&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;endp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;17 &lt;/b&gt;&lt;/span&gt;;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;----------------------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;&lt;b&gt;18 &lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;main&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;이 코드를 어셈블(/L option)하면 LST파일을 통해 기계어를 볼 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;                    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;title&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;a07callp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;                    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.model&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;small&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt;                    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.stack&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;64&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;                    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.data&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt;                ;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;--------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;6&lt;/b&gt;&lt;/span&gt;                    &lt;span style="color:#ffff00;"&gt;&lt;b&gt;.code&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;7&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;0000&lt;/b&gt;&lt;/span&gt;               &lt;span style="color:#00ffff;"&gt;&lt;b&gt;main&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;proc&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;far&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;0000&lt;/b&gt;&lt;/span&gt;  &lt;span style="color:#00ffff;"&gt;&lt;b&gt;E8&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;000&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ff40ff;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;R&lt;/b&gt;&lt;/span&gt;            &lt;span style="color:#00ffff;"&gt;&lt;b&gt;call&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;b10&lt;/b&gt;&lt;/span&gt; ;&lt;span style="color:#00ffff;"&gt;&lt;b&gt; call b10&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;9&lt;/b&gt;&lt;/span&gt;                ;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;   ........&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;0003&lt;/b&gt;&lt;/span&gt;  &lt;span style="color:#00ffff;"&gt;&lt;b&gt;B8&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;C00&lt;/b&gt;&lt;/span&gt;              &lt;span style="color:#00ffff;"&gt;&lt;b&gt;mov&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;ax&lt;/b&gt;&lt;/span&gt;, &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;c00h&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;11&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;0006&lt;/b&gt;&lt;/span&gt;  &lt;span style="color:#00ffff;"&gt;&lt;b&gt;CD&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/span&gt;                &lt;span style="color:#00ffff;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;h&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;12&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;000&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ff40ff;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt;               &lt;span style="color:#00ffff;"&gt;&lt;b&gt;main&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;endp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;13&lt;/b&gt;&lt;/span&gt;                ;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;--------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;14&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;000&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ff40ff;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt;               &lt;span style="color:#00ffff;"&gt;&lt;b&gt;b10&lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;proc&lt;/b&gt;&lt;/span&gt;   &lt;span style="color:#00ffff;"&gt;&lt;b&gt;near&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;15&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;000&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ff40ff;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt;  &lt;span style="color:#00ffff;"&gt;&lt;b&gt;C3&lt;/b&gt;&lt;/span&gt;               &lt;span style="color:#00ffff;"&gt;&lt;b&gt;ret&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;16&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;000&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ff40ff;"&gt;&lt;b&gt;9&lt;/b&gt;&lt;/span&gt;               &lt;span style="color:#00ffff;"&gt;&lt;b&gt;b10&lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;endp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;17&lt;/b&gt;&lt;/span&gt;                ;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;--------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:#ff40ff;"&gt;&lt;b&gt;18&lt;/b&gt;&lt;/span&gt;                    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;    &lt;span style="color:#00ffff;"&gt;&lt;b&gt;main&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-1605992074462731693?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/1605992074462731693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/call-retn-instruction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1605992074462731693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/1605992074462731693'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/call-retn-instruction.html' title='Call &amp; RETn instruction'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620918615785302711.post-2776906798253429349</id><published>2008-07-20T15:52:00.000+09:00</published><updated>2008-07-20T16:33:39.544+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fighter'/><title type='text'>Fedor vs Sylvia (36 second K.O)</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-8106f2b2f374bff1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v18.nonxt5.googlevideo.com/videoplayback?id%3D8106f2b2f374bff1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7BD405AD01E843DFDF7003C09A50FBC7BDB97D29.836527B52EC7B3B495A492DA8F3201F855F159CB%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D8106f2b2f374bff1%26offsetms%3D5000%26itag%3Dw160%26sigh%3DkcVN57KxTA61XMrMbF-p4bHkyFw&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v18.nonxt5.googlevideo.com/videoplayback?id%3D8106f2b2f374bff1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332288673%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7BD405AD01E843DFDF7003C09A50FBC7BDB97D29.836527B52EC7B3B495A492DA8F3201F855F159CB%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D8106f2b2f374bff1%26offsetms%3D5000%26itag%3Dw160%26sigh%3DkcVN57KxTA61XMrMbF-p4bHkyFw&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;오늘 낮 12시에 한 경기..&lt;br /&gt;&lt;br /&gt;격투 잘 안보는데.. 표도르 역시 짱이네요 ㅋㅋ&lt;div class="blogger-post-footer"&gt;n0fate's blogspot :)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620918615785302711-2776906798253429349?l=feedbeef.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=8106f2b2f374bff1&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://feedbeef.blogspot.com/feeds/2776906798253429349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://feedbeef.blogspot.com/2008/07/vs-36-ko.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2776906798253429349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620918615785302711/posts/default/2776906798253429349'/><link rel='alternate' type='text/html' href='http://feedbeef.blogspot.com/2008/07/vs-36-ko.html' title='Fedor vs Sylvia (36 second K.O)'/><author><name>n0fate</name><uri>http://www.blogger.com/profile/08723653096820466406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-SP68ekUDxPk/TYKq10ELG8I/AAAAAAAAAIU/Qi6Jwczy8X4/s1600/logo%253Fcct%253D0'/></author><thr:total>0</thr:total></entry></feed>
