<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>justforit</title>
    <link>https://justforit.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 30 Jun 2026 23:24:41 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>SanseoLab</managingEditor>
    <item>
      <title>현재 다큐멘터리 방영 목록</title>
      <link>https://justforit.tistory.com/7</link>
      <description>&lt;p&gt;다큐프라임(EBS)&lt;/p&gt;&lt;p&gt;지식채널e(EBS)&lt;/p&gt;&lt;p&gt;세계의 눈(EBS)&lt;/p&gt;&lt;p&gt;다큐 오늘(EBS)&lt;/p&gt;&lt;p&gt;EBS 기획특강(EBS)&lt;/p&gt;&lt;p&gt;EBS 인문학 특강(EBS)&lt;/p&gt;&lt;p&gt;세계테마기행(EBS)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;해외걸작 다큐(KBS1)&lt;/p&gt;&lt;p&gt;글로벌 다큐멘터리(KBS1)&lt;/p&gt;&lt;p&gt;다큐 공감(KBS1)&lt;/p&gt;&lt;p&gt;KBS 스페셜(KBS1)&lt;/p&gt;&lt;p&gt;걸어서 세계속으로(KBS1)&lt;/p&gt;&lt;p&gt;명견만리(KBS1)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다큐멘터리 3일(KBS2)&lt;/p&gt;&lt;p&gt;세상의 모든 다큐(KBS2)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MBC 스페셜(MBC)&lt;/p&gt;&lt;p&gt;MBC 다큐프라임(MBC)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SBS 스페셜(SBS)&lt;/p&gt;&lt;p&gt;일요 특선 다큐멘터리(SBS)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;JTBC 스페셜 다큐멘터리(JTBC)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;월&lt;/p&gt;&lt;p&gt;KBS1&lt;/p&gt;&lt;p&gt;KBS2&lt;/p&gt;&lt;p&gt;MBC : MBC 스페셜(23:10)&lt;/p&gt;&lt;p&gt;SBS&lt;/p&gt;&lt;p&gt;EBS : 지식채널e(12:40), EBS 기획특강(13:20), 다큐 오늘(20:40), 세계테마기행(20:50), 다큐프라임(21:50)&lt;/p&gt;&lt;p&gt;JTBC&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;화&lt;/p&gt;&lt;p&gt;KBS1&lt;/p&gt;&lt;p&gt;KBS2&lt;/p&gt;&lt;p&gt;MBC&lt;/p&gt;&lt;p&gt;SBS&lt;/p&gt;&lt;p&gt;EBS : 지식채널e(12:40), EBS 기획특강(13:20), 다큐 오늘(20:40), 세계테마기행(20:50), 다큐프라임(21:50)&lt;/p&gt;&lt;p&gt;JTBC : JTBC 스페셜 다큐멘터리(01:50)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;수&lt;/p&gt;&lt;p&gt;KBS1 : 해외걸작 다큐(00:20)&lt;/p&gt;&lt;p&gt;KBS2&lt;/p&gt;&lt;p&gt;MBC&lt;/p&gt;&lt;p&gt;SBS&lt;/p&gt;&lt;p&gt;EBS : 지식채널e(12:40), 다큐 오늘(20:40), 세계테마기행(20:50), 다큐프라임(21:50)&lt;/p&gt;&lt;p&gt;JTBC : JTBC 스페셜 다큐멘터리(01:50)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;목&lt;/p&gt;&lt;p&gt;KBS1 : KBS 스페셜(22:00)&lt;/p&gt;&lt;p&gt;KBS2 : 세상의 모든 다큐(00:35)&lt;/p&gt;&lt;p&gt;MBC&lt;/p&gt;&lt;p&gt;SBS&lt;/p&gt;&lt;p&gt;EBS : 다큐 오늘(20:40), 세계테마기행(20:50)&lt;/p&gt;&lt;p&gt;JTBC : JTBC 스페셜 다큐멘터리(01:50)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;금&lt;/p&gt;&lt;p&gt;KBS1 : 명견만리(22:00)&lt;/p&gt;&lt;p&gt;KBS2&lt;/p&gt;&lt;p&gt;MBC : MBC 다큐프라임(01:05)&lt;/p&gt;&lt;p&gt;SBS&lt;/p&gt;&lt;p&gt;EBS : 다큐 오늘(20:40)&lt;/p&gt;&lt;p&gt;JTBC : JTBC 스페셜 다큐멘터리(01:50)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;토&lt;/p&gt;&lt;p&gt;KBS1 : 걸어서 세계속으로(09:40), 글로벌 다큐멘터리(20:10)&lt;/p&gt;&lt;p&gt;KBS2&lt;/p&gt;&lt;p&gt;MBC&lt;/p&gt;&lt;p&gt;SBS&lt;/p&gt;&lt;p&gt;EBS : 세계의 눈(16:45)&lt;/p&gt;&lt;p&gt;JTBC : JTBC 스페셜 다큐멘터리(01:50)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;일&lt;/p&gt;&lt;p&gt;KBS1 : 다큐 공감(20:05)&lt;/p&gt;&lt;p&gt;KBS2 : 다큐멘터리 3일(22:40)&lt;/p&gt;&lt;p&gt;MBC&lt;/p&gt;&lt;p&gt;SBS : 일요 특선 다큐멘터리(07:30), SBS 스페셜(23:10)&lt;/p&gt;&lt;p&gt;EBS : 세계의 눈(16:45)&lt;/p&gt;&lt;p&gt;JTBC&lt;/p&gt;</description>
      <category>기타</category>
      <author>SanseoLab</author>
      <guid isPermaLink="true">https://justforit.tistory.com/7</guid>
      <comments>https://justforit.tistory.com/7#entry7comment</comments>
      <pubDate>Wed, 13 Jul 2016 00:44:07 +0900</pubDate>
    </item>
    <item>
      <title>mona.py - corelan 팀 (취약점 분석 도구)</title>
      <link>https://justforit.tistory.com/5</link>
      <description>&lt;p&gt;mona.py 란 corelan 팀에서 파이썬으로 만든 취약점 분석 도구이다.&lt;/p&gt;&lt;p&gt;원래 이뮤니티 디버거에서 사용하기 위한 용도였지만 windbg에서도 pykd를 통해 사용 가능하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;사용법은 디버거의 명령 라인에서&amp;nbsp;&lt;/p&gt;&lt;p&gt;!mona [명령어]&lt;/p&gt;&lt;p&gt;를 사용하면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;!mona modules (!mona mod)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Base | Top | Size | Rebase | SafeSEH | ASLR | NXCompat | OS Dll | Ver, Modulename, Path&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;주소 시작 | 주소 끝 | 크기 | DLL 재배치 | SafeSEH 사용 여부 | ASLR 사용 여부 | NXCompat 사용 여부 | OS DLL인지 여부 | 버전과 모듈 이름 그리고 경로&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위와 같이 익스플로잇 방어 기법들의 사용 여부와 기본적인 정보들을 보여준다.&lt;/p&gt;&lt;p&gt;참고로 Rebase는 DLL에서 사용하는 것으로서 보안 보다는 DLL의 특징에 의한 것이다. 취약점 공격 시에는 ASLR이나 같다고 할 수 있다.&lt;/p&gt;&lt;p&gt;그리고 NXCompat은 DEP라고 생각하면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;!mona rop&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ROP 생성을 도와준다.&lt;/p&gt;&lt;p&gt;rop -m [모듈] : 지정한 모듈에서 가젯 검색&lt;/p&gt;&lt;p&gt;rop -n : 널바이트로 시작하는 모듈을 제외하고 로드된 모든 가젯 검색.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;!mona pattern_create [숫자] (pc 숫자)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;[숫자]바이트의 정해진 패턴을 출력한다.&lt;/p&gt;&lt;p&gt;이 글을 볼 정도면 다 알겠지만 굳이 예를 들자면,&amp;nbsp;&lt;/p&gt;&lt;p&gt;주로 버퍼 오버플로우 검사 시에 A를 길게 써 넣어서 EIP가 A인 41414141로 바뀐 스택 버퍼 오버플로우가 발생했다고 하자.&amp;nbsp;&lt;/p&gt;&lt;p&gt;이 경우에 정확히 어느 주소에 ESP가 위치해서 EIP가 저걸로 바꼈는지 찾아야 할텐데 AAA..들의 나열 대신 저 정해진 패턴을 버퍼에 입력하면,&lt;/p&gt;&lt;p&gt;즉 Aa0Aa1Aa2....Ab9... 이런 내용을 버퍼로 넣었다고 치면 EIP에 들어온 내용을 검색해 보면 몇 번째 문자열에서 EIP의 주소가 바뀌게 되는 지를 알 수 있다.&lt;/p&gt;&lt;p&gt;참고로&amp;nbsp;C:\logs\ 의 경로에 프로세스 이름 별로 pattern.txt 파일에 위의 패턴이 저장되므로 복사해서 사용할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;!mona pattern_offset [패턴]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;패턴을 검색한다. 패턴은 4바이트를 집어넣어야 한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;예를들면 EIP에 들어온 값이 0x41613041이라고 하자.&lt;/p&gt;&lt;p&gt;그럼 !mona po 41613041을 친다.&lt;/p&gt;&lt;p&gt;이것은 문자열로 보면 Aa0A이기 때문에 결과는 오프셋이 0 즉, 처음이라고 나오게 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이외에도 많은 명령어들이 존재한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;? / eval &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Evaluate an expression&lt;/p&gt;&lt;p&gt;assemble / asm &amp;nbsp; &amp;nbsp;&amp;nbsp;| Convert instructions to opcode. Separate multiple instructions&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;with #&lt;/p&gt;&lt;p&gt;bpseh / sehbp &amp;nbsp; &amp;nbsp; &amp;nbsp; | Set a breakpoint on all current SEH Handler function pointers&lt;/p&gt;&lt;p&gt;breakfunc / bf &amp;nbsp; &amp;nbsp; &amp;nbsp; | Set a breakpoint on an exported function in on or more dll's&lt;/p&gt;&lt;p&gt;breakpoint / bp &amp;nbsp; &amp;nbsp; | Set a memory breakpoint on read/write or execute of a given address&lt;/p&gt;&lt;p&gt;bytearray / ba &amp;nbsp; &amp;nbsp; &amp;nbsp; | Creates a byte array, can be used to find bad characters&lt;/p&gt;&lt;p&gt;calltrace / ct &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Log all CALL instructions&lt;/p&gt;&lt;p&gt;compare / cmp &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;| Compare contents of a binary file with a copy in memory&lt;/p&gt;&lt;p&gt;config / conf &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Manage configuration file (mona.ini)&lt;/p&gt;&lt;p&gt;copy / cp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Copy bytes from one location to another&lt;/p&gt;&lt;p&gt;deferbp / bu &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Set a deferred breakpoint&lt;/p&gt;&lt;p&gt;dump &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Dump the specified range of memory to a file&lt;/p&gt;&lt;p&gt;egghunter / egg &amp;nbsp; &amp;nbsp;&amp;nbsp;| Create egghunter code&lt;/p&gt;&lt;p&gt;encode / enc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Encode a series of bytes&lt;/p&gt;&lt;p&gt;filecompare / fc &amp;nbsp; &amp;nbsp; &amp;nbsp;| Compares 2 or more files created by mona using the same output commands&lt;/p&gt;&lt;p&gt;find / f &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Find bytes in memory&lt;/p&gt;&lt;p&gt;findmsp / findmsf &amp;nbsp; &amp;nbsp;| Find cyclic pattern in memory&lt;/p&gt;&lt;p&gt;findwild / fw &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Find instructions in memory, accepts wildcards&lt;/p&gt;&lt;p&gt;fwptr / fwp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Find Writeable Pointers that get called&lt;/p&gt;&lt;p&gt;geteat / eat &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show EAT of selected module(s)&lt;/p&gt;&lt;p&gt;getiat / iat &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show IAT of selected module(s)&lt;/p&gt;&lt;p&gt;getpc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show getpc routines for specific registers&lt;/p&gt;&lt;p&gt;gflags / gf &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show current GFlags settings from PEB.NtGlobalFlag&lt;/p&gt;&lt;p&gt;header &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Read a binary file and convert content to a nice 'header' string&lt;/p&gt;&lt;p&gt;heap &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Show heap related information&lt;/p&gt;&lt;p&gt;help &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| show help&lt;/p&gt;&lt;p&gt;hidedebug / hd &amp;nbsp; &amp;nbsp; &amp;nbsp; | Attempt to hide the debugger&lt;/p&gt;&lt;p&gt;info &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Show information about a given address in the context of the&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; loaded application&lt;/p&gt;&lt;p&gt;infodump / if &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Dumps specific parts of memory to file&lt;/p&gt;&lt;p&gt;jmp / j &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Find pointers that will allow you to jump to a register&lt;/p&gt;&lt;p&gt;jop &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Finds gadgets that can be used in a JOP exploit&lt;/p&gt;&lt;p&gt;kb / kb &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Manage Knowledgebase data&lt;/p&gt;&lt;p&gt;modules / mod &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show all loaded modules and their properties&lt;/p&gt;&lt;p&gt;noaslr &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show modules that are not aslr or rebased&lt;/p&gt;&lt;p&gt;nosafeseh &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Show modules that are not safeseh protected&lt;/p&gt;&lt;p&gt;nosafesehaslr &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show modules that are not safeseh protected, not aslr and&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;not rebased&lt;/p&gt;&lt;p&gt;offset &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Calculate the number of bytes between two addresses&lt;/p&gt;&lt;p&gt;pageacl / pacl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show ACL associated with mapped pages&lt;/p&gt;&lt;p&gt;pattern_create / pc &amp;nbsp; &amp;nbsp;| Create a cyclic pattern of a given size&lt;/p&gt;&lt;p&gt;pattern_offset / po &amp;nbsp; &amp;nbsp;| Find location of 4 bytes in a cyclic pattern&lt;/p&gt;&lt;p&gt;peb / peb &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;| Show location of the PEB&lt;/p&gt;&lt;p&gt;rop &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;| Finds gadgets that can be used in a ROP exploit and do ROP magic&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;with them&lt;/p&gt;&lt;p&gt;ropfunc &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;| Find pointers to pointers (IAT) to interesting functions that can be&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;used in your ROP chain&lt;/p&gt;&lt;p&gt;seh &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Find pointers to assist with SEH overwrite exploits&lt;/p&gt;&lt;p&gt;sehchain / exchain &amp;nbsp; | Show the current SEH chain&lt;/p&gt;&lt;p&gt;skeleton &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Create a Metasploit module skeleton with a cyclic pattern for a&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; given type of exploit&lt;/p&gt;&lt;p&gt;stackpivot &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Finds stackpivots (move stackpointer to controlled area)&lt;/p&gt;&lt;p&gt;stacks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Show all stacks for all threads in the running application&lt;/p&gt;&lt;p&gt;string / str &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Read or write a string from/to memory&lt;/p&gt;&lt;p&gt;suggest &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Suggest an exploit buffer structure&lt;/p&gt;&lt;p&gt;teb / teb &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Show TEB related information&lt;/p&gt;&lt;p&gt;unicodealign / ua &amp;nbsp; | Generate venetian alignment code for unicode stack buffer&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;overflow&lt;/p&gt;&lt;p&gt;update / up &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Update mona to the latest version&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자세한 세부 사항은 직접 찾아보자.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;https://www.corelan.be/index.php/2011/07/14/mona-py-the-manual/&lt;/p&gt;</description>
      <category>보안</category>
      <author>SanseoLab</author>
      <guid isPermaLink="true">https://justforit.tistory.com/5</guid>
      <comments>https://justforit.tistory.com/5#entry5comment</comments>
      <pubDate>Fri, 8 Jul 2016 18:49:46 +0900</pubDate>
    </item>
    <item>
      <title>퍼징 이후의 취약점 분석하기</title>
      <link>https://justforit.tistory.com/4</link>
      <description>&lt;p&gt;구글링을 하다 보면 퍼징과 관련된 괜찮은 자료들이 많이 나온다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- 윈도우 멀티미디어 취약점 분석 방법론&lt;/p&gt;&lt;p&gt;- 주요 국산 SW 대상 신규 취약점 발굴 및 분석방법 연구&lt;/p&gt;&lt;p&gt;- 취약점 발굴을 위한 프로그램 입력 데이터 흐름분석 연구 최종보고서&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이 외에도 교재로&lt;/p&gt;&lt;p&gt;- Fuzzing Brute Force Vulnerability Discovery&lt;/p&gt;&lt;p&gt;이게 추천된다는데 아직 안봐서 모르겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;여기까지 취약점을 찾기 위한 퍼징과 관련된 글이었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 취약한 부분을 찾은 후에 셸코드를 작성하고 등등 그것을 exploit해야 한다.&lt;/p&gt;&lt;p&gt;이것은 기본 개념들을 매우 잘 설명한 책이 있어서 책 이름을 쓰겠다.&lt;/p&gt;&lt;p&gt;인터넷에 나와 있는 자료는 이 책을 공부한 후에 해도 충분하다고 생각한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- 윈도우 시스템 해킹 가이드 버그헌팅과 익스플로잇&lt;/p&gt;</description>
      <category>보안</category>
      <author>SanseoLab</author>
      <guid isPermaLink="true">https://justforit.tistory.com/4</guid>
      <comments>https://justforit.tistory.com/4#entry4comment</comments>
      <pubDate>Fri, 8 Jul 2016 18:40:35 +0900</pubDate>
    </item>
    <item>
      <title>피치 퍼저 (Peach Fuzzer) 3 - 퍼징 시작</title>
      <link>https://justforit.tistory.com/3</link>
      <description>&lt;p&gt;여기서는 실제로 피치를 사용해 보겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 pit 파일(m3u.xml)을 peach 폴더에 넣는다.&lt;/p&gt;&lt;p&gt;그리고 명령 프롬프트를 관리자 권한으로 실행하고 (peach.exe도 관리자 권한으로 실행 설정) 피치 폴더로 간다.&lt;/p&gt;&lt;p&gt;이제 만든 pit 파일을 테스트해 보겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt; peach -t m3u.xml&lt;/p&gt;&lt;p&gt;이상이 없다고 나온다면 좋은거고 혹시 틀렸더라도 틀린 이유도 같이 나오기 때문에 잘 찾아가면서 고칠 수 있다.&lt;/p&gt;&lt;p&gt;이제 이상이 없다고 보자.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt; peach -1 --debug m3u.xml&lt;/p&gt;&lt;p&gt;완료됬다고 떠야한다.&lt;/p&gt;&lt;p&gt;그럼 피치 폴더에 fuzzed.m3u라는 파일이 생길 것이다.&lt;/p&gt;&lt;p&gt;이걸 복사해서 다른 곳에 놓고 저 명령어를 한번 더 실행하자. fuzzed.m3u 파일이 또 생길 것이다.&lt;/p&gt;&lt;p&gt;이 두 개의 m3u 파일이 다르다면(DataModel 설정을 잘 못하면 가끔 변이가 안될 수 있다) 잘 된 것이므로 이제 시작한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt; peach --debug m3u.xml&lt;/p&gt;&lt;p&gt;이제 피치가 퍼징을 시작한다.&lt;/p&gt;&lt;p&gt;(--debug 옵션은 빼도 된다.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그럼 피치 폴더 안에 logs라는 폴더가 생길 것이고 그 안에 &quot;m3u.xml_2016...&quot; 등의 파일이 생긴다.&lt;/p&gt;&lt;p&gt;그곳에 들어가 보면 파일과 폴더들이 존재한다.&lt;/p&gt;&lt;p&gt;status.txt : 그냥 상태를 보여준다. 디폴트로는 언제 시작했는지와 몇 번째 반복인지(100번 마다 시간 기록해줌) 그리고 몇 번째 반복 시에 Fault가 발견되었는지가 적힌다.&lt;/p&gt;&lt;p&gt;Reproducing : 크래시를 발견하고 확인하는 중이다.&lt;/p&gt;&lt;p&gt;Faults : 분석된 크래시들. 들어가 보면 EXPLOITABLE 같은 폴더들이 생성되고 있다. 각 발견된 반복의 이름(4 같이)의 폴더가 있고 들어가 보면 MSEC을 통한 취염점 결과 리포트와 크래시를 일으킨 fuzzed.m3u 파일(1.Initial.Action.bin이라는 이름 등으로)이 존재한다.&lt;/p&gt;&lt;p&gt;NonReproducable : 피치가 발견된 모든 크래시를 Reproduce하고 분석할 수 있는 것은 아니며 그냥 그러려니하자.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pit을 작성하면서 보았겠지만 피치는 크래시 발생 시 Windbg의 MSEC.dll이라는 익스텐션을 실행시켜서 이것을 통해 취약점을 분석한다.&lt;/p&gt;&lt;p&gt;이것은 예외가 발생했을 때 exploit 가능한지를 판단해 주고 이외의 여러 유용한 정보들을 제공한다.&lt;/p&gt;&lt;p&gt;왜 MSEC냐면 Microsoft Security Engineering Center에서 만든 것이기 때문.&lt;/p&gt;</description>
      <category>보안</category>
      <author>SanseoLab</author>
      <guid isPermaLink="true">https://justforit.tistory.com/3</guid>
      <comments>https://justforit.tistory.com/3#entry3comment</comments>
      <pubDate>Fri, 8 Jul 2016 18:39:52 +0900</pubDate>
    </item>
    <item>
      <title>피치 퍼저 (Peach Fuzzer) 2 - Pit 파일</title>
      <link>https://justforit.tistory.com/2</link>
      <description>&lt;p&gt;Peach Pit 파일은 피치 퍼저가 퍼징을 수행할 때 필요한 파일로써 xml문법을 따른다(확장자도 당연히 xml).&lt;/p&gt;&lt;p&gt;사실 피치 퍼저에서 Pit이 가장 중요하다. 어지간한 것들은 피치와 MSEC이 해주지만 Pit 파일은 본인이 직접 만들어야하기 때문이다.&lt;/p&gt;&lt;p&gt;물론 인터넷에 자료가 좀 있지만 정말 모든 것을 찾아봤다고 생각할 정도로 찾아본 결과 제대로 된 피치 3의 Pit 파일은 인터넷에 몇 정도 밖에 없다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이곳은 피치 Pit을 작성하는데 도움을 받을 수 있는 일종의 매뉴얼 사이트이다.&lt;/p&gt;&lt;p&gt;Pit 문법을 공부할 수 있다. 피치 3 버전 외에도 피치 2버전의 문법도 나와있다.&lt;/p&gt;&lt;p&gt;http://community.peachfuzzer.com/v3/PeachPit.html&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 이곳은 아마 가장 많은 사람들이 읽은 것으로 여겨지는 글이다.&lt;/p&gt;&lt;p&gt;참고로 피치 2.3 버전에 관한 글이고 오타가 몇 개 있다. 추후에 찾아서 수정 가능하므로.&lt;/p&gt;&lt;p&gt;http://www.flinkd.org/2011/07/fuzzing-with-peach-part-1/&lt;/p&gt;&lt;p&gt;http://www.flinkd.org/2011/11/fuzzing-with-peach-part-2-fixups-2/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 외에도 한글로도 몇몇 블로그에서 설명해놓은 것들이 존재하지만 이 모든 것들은 피치 2를 기반으로 한 것들이다.&lt;/p&gt;&lt;p&gt;물론 피치 2.3을 설치하면 되겠지만 나는 3을 공부하였으므로 3을 기반으로 글을 쓰겠다.&lt;/p&gt;&lt;p&gt;그리고 위의 글들만 보아도 기본적인 내용들은 알게될 것이고 2와 3이 약간 다르다는 것도 인지하게 될 것이다.&lt;/p&gt;&lt;p&gt;하지만 수많은 삽질을 하게 될 것이므로 여기서 기본적인 내용을 쓰겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래는 Pit 파일의 내용이다. 따로 xml 편집기를 사용해도 되지만 귀찮으면 그냥 메모장으로 편집해도 된다.&lt;/p&gt;&lt;p&gt;(xml의 주석은 저렇게 &amp;lt;!--과 --&amp;gt; 사이에 있는 글이다.)&lt;/p&gt;&lt;p&gt;https://www.youtube.com/watch?v=u5JB7-K3j6Y&amp;amp;list=PLY81Xq8dvFR6282jX47OeBFs20tbNPmGb&amp;amp;index=4&lt;/p&gt;&lt;p&gt;위의 유튜브 링크에 나온 pit이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;---------------------------------------------------------------------------------------------&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;Peach version=&quot;1.0&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;DataModel name=&quot;TheDataModel&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;String name=&quot;header1&quot; value=&quot;M3U\n&quot; mutable=&quot;false&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;String name=&quot;header2&quot; value=&quot;#EXTM3U\n&quot; mutable=&quot;false&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;String name=&quot;header3&quot; value=&quot;#EXTINF:123, Sample artist - Sample title\n&quot; mutable=&quot;false&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;String name=&quot;header4&quot; value=&quot;C:\&quot; mutable=&quot;false&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;String name=&quot;header5&quot; value=&quot;hello&quot; mutable=&quot;true&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/DataModel&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;StateModel name=&quot;TheState&quot; initialState=&quot;Initial&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;State name=&quot;Initial&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Action type=&quot;output&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;DataModel ref=&quot;TheDataModel&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- 이 ref에 위 DataModel의 name을 쓰면 된다.--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Action&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Action type=&quot;close&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Action type=&quot;call&quot; method=&quot;LaunchViewer&quot; publisher=&quot;Peach.Agent&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/State&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/StateModel&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;Agent name=&quot;WinAgent&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Monitor class=&quot;WindowsDebugger&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;CommandLine&quot; value=&quot;C:\Program Files\VUPlayer\VUPlayer.exe fuzzed.m3u&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- 여기서는 명령 프롬프트의 내용을 쓴다. 즉, 곰오디오로 저 생성된 fuzzed.m3u 파일을 실행한다는 것.--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;WinDbgPath&quot; value=&quot;C:\Program Files\Debugging Tools for Windows (x86)\&quot; /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- 여기는 당신의 Windbg 경로를 쓰면 된다.--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;StartOnCall&quot; value=&quot;LaunchViewer&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;CpuKill&quot; value=&quot;ture&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Monitor&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Monitor class=&quot;PageHeap&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;Executable&quot; value=&quot;VUPlayer.exe&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- VUPlayer의 실행파일 명--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;WinDbgPath&quot; value=&quot;C:\Program Files\Debugging Tools for Windows (x86)\&quot; /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Monitor&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/Agent&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;Test name=&quot;Default&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Agent ref=&quot;WinAgent&quot; platform=&quot;windows&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;StateModel ref=&quot;TheState&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;!-- StateModel의 name을 쓴다.--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Publisher class=&quot;File&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;FileName&quot; value=&quot;fuzzed.m3u&quot; /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- 피치가 생성한 파일 이름--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Publisher&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Logger class=&quot;File&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Param name=&quot;Path&quot; value=&quot;logs&quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- 이러면 피치 폴더 안에 logs 파일이 생성되고 그 안에서 처리될 것이다.--&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Logger&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/Test&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/Peach&amp;gt;&lt;/p&gt;&lt;p&gt;---------------------------------------------------------------------------------------------&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간단히 설명해 보겠다. 위 내용은 m3u.xml 이라는 파일로 저장하고 peach.exe가 존재하는 폴더에 넣는다.&lt;/p&gt;&lt;p&gt;먼저 크게 DataModel, StateModel, Agent, Test 이렇게 4 부분으로 나뉜다.&lt;/p&gt;&lt;p&gt;DataModel은 특정 확장자의 포맷을 위의 형태로 생성한다. m3u는 간단한 확장자이기 때문에 위 처럼 간단하게 사용할 수 있다.&lt;/p&gt;&lt;p&gt;StateModel은 그냥 기본적으로 저렇게 사용하면 될테고 자세한 것은 첫 번째 글의 링크들을 보면서 잘 찾아보면 된다.&lt;/p&gt;&lt;p&gt;Agent를 보면 알겠지만 당신이 VUPlayer를 대상으로 m3u 파일에 대한 퍼징을 수행하는 경우이다. 저렇게 경로를 쓰면 된다.&lt;/p&gt;&lt;p&gt;피치 폴더에는 peach.exe가 존재하며 또한 m3u.xml도 존재한다. 그리고 퍼징 시 마다 변이되서 생성되는 fuzzed.m3u라는 파일도 그 폴더에 생성된다.&lt;/p&gt;&lt;p&gt;대상 프로그램(VUPlayer)은 당연히 전체 경로를 써줘야 할 테고 Windbg도 마찬가지이다.&lt;/p&gt;&lt;p&gt;Test를 보면 아랫 부분에 logs라고 써져 있는데 이것은 피치 폴더 내에 logs라는 폴더가 생성되고 이 폴더 안에 퍼징의 결과 즉 리포트 등이 저장된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DataModel에 대해서 약간 더 설명이 필요한 것 같은데 header1~4까지는 mutable이 false이므로 매 fuzzed.m3u마다 이 값은 똑같지만,&lt;/p&gt;&lt;p&gt;마지막 header5는 mutable이 true이므로 fuzzed.m3u 파일(퍼징 수행 시마다 만들어지는) 마다 그 크기와 값이 달라진다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;추후 부터는 DataModel 부분만 퍼징할 파일에 맞춰서 설정해 주면 된다. 그리고 대상 프로그램은 경로만 설정해주면 되므로 편하다.&lt;/p&gt;&lt;p&gt;물론 파일 포맷을 이해하고 DataModel을 직접 만드는건 그렇게 쉬운 일은 아니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;혹시 제대로된 프로세스를 모를까봐 다시 한 번 정리해 보겠다.&lt;/p&gt;&lt;p&gt;피치 폴더 안에 위의 m3u.xml 파일을 집어 넣고 피치를 실행시킨다면 피치는 xml의 DataModel에 따른 포맷을 사용해서 fuzzed.m3u이라는 파일을 만들게 되고 이후에는 저 명령 프롬프트 명령 처럼 VUPlayer로 이 fuzzed.m3u를 실행한다.&lt;/p&gt;&lt;p&gt;그리고 크래시가 발생한다면 내부에 존재하는 MSEC라는 크래시 분석 도구를 사용해 분석한 결과를 따로 저장한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;사실 VUPlayer는 크래시가 기본적으로 발생할 수 밖에 없는 구조이다. 내부에서 크기 입력을 제한하지 않아서 저 header5가 많은 내용을 갖게 되면 자동으로 버퍼 오버플로우가 발생한다.&lt;/p&gt;&lt;p&gt;실제 사용하는 것은 다음 글에서 다루도록 하겠지만 문제는 이 부분이 가장 중요하다는 것이다.&lt;/p&gt;&lt;p&gt;즉, pit 파일을 만드는 것이 가장 중요한데 인터넷에는 제대로 된 글이 거의 존재하지 않는다.&lt;/p&gt;&lt;p&gt;물론 본인이 직접 만들어야 겠지만 연습을 위해서라도 볼 필요가 있을텐데 말이다.&lt;/p&gt;&lt;p&gt;다음은 인터넷을 통해 찾을 수 있는 pit 파일들이다. 물론 올릴 수는 없으므로 잘 구글링해보길 바란다. 참고로 영어로.&lt;/p&gt;&lt;p&gt;(그리고 DataModel만 참고한다. 아랫 부분은 대부분 피치 2.3을 위한 설정들이다.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;m3u : 이 글 윗 부분의 링크.&lt;/p&gt;&lt;p&gt;docx : http://stackoverflow.com/questions/36120204/peach-fuzzer-create-docx-and-fuzzing-ms-word (잘 될지 모르겠지만 수정해가면서 해보길)&lt;/p&gt;&lt;p&gt;gif : http://puzzor.blogspot.kr/2013/09/peach-pits-of-gif-model.html&lt;/p&gt;&lt;p&gt;wav : https://codegists.com/search/mplayer/1 (피치 3에서는 몇 몇 부분 때문에 오류 뜸)&lt;/p&gt;&lt;p&gt;mp4, zip, asf, avi, cab : www.flinkd.org/projects/peach-pits/&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>보안</category>
      <author>SanseoLab</author>
      <guid isPermaLink="true">https://justforit.tistory.com/2</guid>
      <comments>https://justforit.tistory.com/2#entry2comment</comments>
      <pubDate>Fri, 8 Jul 2016 18:38:07 +0900</pubDate>
    </item>
    <item>
      <title>피치 퍼저 (Peach Fuzzer) 1 - 설치</title>
      <link>https://justforit.tistory.com/1</link>
      <description>&lt;p&gt;피치 퍼저는 퍼징(Fuzzing) 도구들 중에서 가장 발전된 형태로 알려져 있다.&lt;/p&gt;&lt;p&gt;하지만 한국에서는 자료가 전무하다시피 해서 영어로 그동안 찾아왔던 자료들을 올리기로 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이번 글에서는 설치에 대해서 알아본다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 피치의 다운로드 사이트는 아래와 같다.&lt;/p&gt;&lt;p&gt;https://sourceforge.net/projects/peachfuzz/files/Peach/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;참고로 피치는 커뮤니티 버전과 상용 버전이 있는데 상용 버전은 회사에서 서비스를 제공해주는 것이며, 커뮤니티 버전은 지금 우리가 할 것들이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;피치 이외에도 파이썬 2.7(아직 3은 지원하지 않는다고 하는데 잘 모르겠다)과 Windbg가 필요하다.&lt;/p&gt;&lt;p&gt;파이썬 2.7과 Windbg가 설치되어 있다고 가정하고 피치 파일을 압축 해제하면 바로 사용할 수 있는 형태가 보인다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간단히 설명해서 이 폴더 안에 있는 Peach.exe만 사용할 것이다.&lt;/p&gt;&lt;p&gt;Peach.exe는 관리자 권한으로 실행을 설정해 놓는게 좋으며, 명령 프롬프트도 마찬가지로 관리자 권한으로 실행시킨다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다음 글에서 나오겠지만 Pit 파일 즉, xml 파일을 저 폴더에 넣고 peach를 명령 프롬프트로 실행해서 사용하면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Peach Fuzzer의 공식 홈페이지는 아래와 같다.&lt;/p&gt;&lt;p&gt;http://www.peachfuzzer.com/&lt;/p&gt;&lt;p&gt;물론 볼만한 것은 없다. Pit 파일이 예전에는 제공됬었지만 이제는 유료 서비스를 위해 제공되지 않는다는 것만 알 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다음은 Peach fuzzer 포럼으로서 괜찮은 글들이 가끔 보인다. 삽질 한창 하다가 여기서 정보를 많이 얻었지만 워낙 사용자들이 없어서 큰 도움은 되지 않았다.&lt;/p&gt;&lt;p&gt;https://forums.peachfuzzer.com/&lt;/p&gt;&lt;p&gt;그래도 관리자들이 성실하게 답글을 달아주는 것으로 보인다.&lt;/p&gt;</description>
      <category>보안</category>
      <author>SanseoLab</author>
      <guid isPermaLink="true">https://justforit.tistory.com/1</guid>
      <comments>https://justforit.tistory.com/1#entry1comment</comments>
      <pubDate>Fri, 8 Jul 2016 18:29:59 +0900</pubDate>
    </item>
  </channel>
</rss>