<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>(주)시큐어코퍼</title>
    <link>https://scorp.tistory.com/</link>
    <description>(주)시큐어코퍼</description>
    <language>ko</language>
    <pubDate>Sun, 9 Aug 2026 04:27:51 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>(주)시큐어코퍼</managingEditor>
    <image>
      <title>(주)시큐어코퍼</title>
      <url>https://tistory1.daumcdn.net/tistory/3043004/attach/2b15c166f0c54e7abe66105befcf4f20</url>
      <link>https://scorp.tistory.com</link>
    </image>
    <item>
      <title>개인정보보호 컨설팅</title>
      <link>https://scorp.tistory.com/41</link>
      <description>&lt;p&gt;[ 개요 ] &lt;br /&gt;시큐어코퍼는&amp;nbsp;개인정보영향평가(PIA:&amp;nbsp;Privacy&amp;nbsp;Impact&amp;nbsp;Assessment)를&amp;nbsp;기반으로&amp;nbsp;하여&amp;nbsp;개인정보보호&amp;nbsp;컨설팅&amp;nbsp;서비스를&amp;nbsp;제공함으로써&amp;nbsp;개인정보&amp;nbsp;침해를&amp;nbsp;사전에&amp;nbsp;예방하고&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;[ 개인정보 영향평가 ] &lt;br /&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;절차&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dN9mAV/btqB3VIpVqx/PyfmbFGgQJ1DMiuTy4YlLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dN9mAV/btqB3VIpVqx/PyfmbFGgQJ1DMiuTy4YlLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dN9mAV/btqB3VIpVqx/PyfmbFGgQJ1DMiuTy4YlLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdN9mAV%2FbtqB3VIpVqx%2FPyfmbFGgQJ1DMiuTy4YlLK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[ 목적 ] &lt;br /&gt;개인정보 처리가 수반되는 사업 추진시 해당 사업이 개인정보에 미치는 영향을 사전에 분석하고 이에 대한 개선방안을 수립하여 개인정보 침해사고를 사전에 예방하기 위함&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[ 기대효과 ] &lt;br /&gt;-시스템 설계단계에서부터 개인정보 침해 위험성을 검토 및 개선함으로써 침해위협을 최소화 할 수 있음&amp;nbsp; &lt;br /&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;있음&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>시큐어코퍼 컨설팅 서비스/개인정보보호 컨설팅</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/41</guid>
      <comments>https://scorp.tistory.com/41#entry41comment</comments>
      <pubDate>Mon, 17 Feb 2020 15:40:52 +0900</pubDate>
    </item>
    <item>
      <title>정보보호 컨설팅</title>
      <link>https://scorp.tistory.com/40</link>
      <description>&lt;p&gt;[ 개요 ]&lt;/p&gt;
&lt;p&gt;시큐어코퍼는 ISRAM-S(IT Security Risk Assessment Methodology of Securecorp)를 기반으로 고객의 비지니스 흐름과 요구를 분석 &amp;middot; 평가하여 보다 체계적이며 정량적인 정보보호 마스터 플랜 수립을 제공합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFSNr0/btqB1ZSmCSd/1QHydOeJXS90RgWnqERQEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFSNr0/btqB1ZSmCSd/1QHydOeJXS90RgWnqERQEK/img.png&quot; data-alt=&quot;ISRAM-S(IT Security Risk Assessment Methodology of Securecorp)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFSNr0/btqB1ZSmCSd/1QHydOeJXS90RgWnqERQEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFSNr0%2FbtqB1ZSmCSd%2F1QHydOeJXS90RgWnqERQEK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ISRAM-S(IT Security Risk Assessment Methodology of Securecorp)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[ 목적 ]&lt;/p&gt;
&lt;p&gt;기업의&amp;nbsp;정보보호&amp;nbsp;관리체계를&amp;nbsp;수립하고&amp;nbsp;문서화하여&amp;nbsp;정보의&amp;nbsp;기밀성&amp;middot;무결성&amp;middot;가용성을&amp;nbsp;확보하여&amp;nbsp;기업의&amp;nbsp;정보보호&amp;nbsp;수준을&amp;nbsp;높이는데,&amp;nbsp;그&amp;nbsp;목적이&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;[&amp;nbsp;서비스&amp;nbsp;분야&amp;nbsp;] &lt;br /&gt;정보보호&amp;nbsp;및&amp;nbsp;개인정보보호&amp;nbsp;관리체계(ISMS-P)&amp;nbsp;인증&amp;nbsp;컨설팅 &lt;br /&gt;금융&amp;nbsp;정보보호&amp;nbsp;관리체계(F-ISMS)&amp;nbsp;인증&amp;nbsp;컨설팅 &lt;br /&gt;ISO/IEC27001&lt;span style=&quot;color: #333333;&quot;&gt;(정보보호경영시스템)&lt;/span&gt;&amp;nbsp;인증&amp;nbsp;컨설팅&lt;/p&gt;</description>
      <category>시큐어코퍼 컨설팅 서비스/정보보호 컨설팅</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/40</guid>
      <comments>https://scorp.tistory.com/40#entry40comment</comments>
      <pubDate>Mon, 17 Feb 2020 14:38:18 +0900</pubDate>
    </item>
    <item>
      <title>인프라 취약점 진단</title>
      <link>https://scorp.tistory.com/37</link>
      <description>&lt;p&gt;[ 개요 ]&lt;/p&gt;
&lt;p&gt;시큐어코퍼는&amp;nbsp;정보시스템의&amp;nbsp;기밀성&amp;middot;가용성&amp;middot;무결성을&amp;nbsp;침해하는&amp;nbsp;잠재적인&amp;nbsp;위협으로부터&amp;nbsp;4단계의&amp;nbsp;취약점&amp;nbsp;분석&amp;middot;평가를&amp;nbsp;수행하여&amp;nbsp;정보시스템의&amp;nbsp;안전한&amp;nbsp;유지를&amp;nbsp;위한&amp;nbsp;보호대책을&amp;nbsp;제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;인프라 이미지.png&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;753&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wKyxj/btqB2Jn892n/k5KliK4gvTYpKPwzAnZTU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wKyxj/btqB2Jn892n/k5KliK4gvTYpKPwzAnZTU1/img.png&quot; data-alt=&quot;시큐어코퍼 인프라 진단 방법론&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wKyxj/btqB2Jn892n/k5KliK4gvTYpKPwzAnZTU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwKyxj%2FbtqB2Jn892n%2Fk5KliK4gvTYpKPwzAnZTU1%2Fimg.png&quot; data-filename=&quot;인프라 이미지.png&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;753&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;시큐어코퍼 인프라 진단 방법론&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[ 서비스 절차 ]&lt;/p&gt;
&lt;p&gt;1. 진단계획 수립 : 정보시스템 대상 선정하고 진단 일정 계획&lt;/p&gt;
&lt;p&gt;2. 취약점 진단 및 분석 : 정보시스템 취약점 진단 및 담당자 인터뷰 실시 후 위험도 영향도 평가&lt;/p&gt;
&lt;p&gt;3. 조치기준 선정 : 취약점에 대한 기준에 맞는 조치 일정 선정&lt;/p&gt;
&lt;p&gt;4. 보고 및 조치 : 식별된 취약점에 대한 보호대책 제시 및 이행 지원&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[ 기대효과 ]&lt;/p&gt;
&lt;p&gt;- 정보 시스템에 대한 위협요소를 종합적으로 파악 가능하며 보다 안정적인 운영 가능&lt;/p&gt;
&lt;p&gt;- 이행 과제에 대한 개선을 위해 소요되는 예산 규모를 파악할 수 있음&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>시큐어코퍼 컨설팅 서비스/인프라 취약점 진단</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/37</guid>
      <comments>https://scorp.tistory.com/37#entry37comment</comments>
      <pubDate>Fri, 14 Feb 2020 16:25:57 +0900</pubDate>
    </item>
    <item>
      <title>모의해킹 컨설팅</title>
      <link>https://scorp.tistory.com/36</link>
      <description>&lt;p&gt;[ 개요 ]&lt;/p&gt;
&lt;p&gt;시큐어코퍼는 5단계의 PTMS(Penetration Testing Methodologies of Securecorp) 모의해킹 방법론을 통해 체계적이며, 시스템 특성을 고려한 취약점 진단 방안을 통해 보다 차별화된 서비스를 제공합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bue1PV/btqBZL7eS0J/oaEZWNBkHuLkbxapFK2vik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bue1PV/btqBZL7eS0J/oaEZWNBkHuLkbxapFK2vik/img.png&quot; data-alt=&quot;시큐어코퍼 모의해킹 방법론 : PTMS(Penetration Testing Methodologies of Securecorp)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bue1PV/btqBZL7eS0J/oaEZWNBkHuLkbxapFK2vik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbue1PV%2FbtqBZL7eS0J%2FoaEZWNBkHuLkbxapFK2vik%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;시큐어코퍼 모의해킹 방법론 : PTMS(Penetration Testing Methodologies of Securecorp)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[ &lt;/span&gt;목적 &lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;모의해킹의 주요 목적은 모의해커가 해당 서비스에서 발생할 수 있는 악용 가능한 취약점들에 대해 실제 공격자와 같은 기법을 사용하여 모의침투 시뮬레이션을 해보고 도출된 취약점에 대한 발생 원인을 파악하고 제거하는데&lt;span&gt;, &lt;/span&gt;그 목적이 있습니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[ &lt;/span&gt;서비스 절차 &lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;서비스 분석&amp;nbsp;&lt;span&gt;: &lt;/span&gt;어떤 방식과 수준으로 모의해킹을 수행할지 협상 단계&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;정보 수집 &lt;span&gt;: &lt;/span&gt;대상 서비스의 정보를 수집하고 파악하는 단계&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;위협 모델링 &lt;span&gt;: &lt;/span&gt;수집된 정보를 바탕으로 대상 서비스의 특징을 파악하여 이에 대한 취약점 체크리스트를 작성하는 단계&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;침투 테스트 &lt;span&gt;: &lt;/span&gt;도출된 취약점을 바탕으로 침투 테스트를 수행하고 취약점을 식별하는 단계&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;보고 &lt;span&gt;: &lt;/span&gt;식별된 취약점들에 대해 공격자 관점에서 대상 서비스에 대한 문제를 서술하고 대응법을 제시해주는 단계&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>시큐어코퍼 컨설팅 서비스/모의해킹 컨설팅</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/36</guid>
      <comments>https://scorp.tistory.com/36#entry36comment</comments>
      <pubDate>Fri, 14 Feb 2020 16:14:17 +0900</pubDate>
    </item>
    <item>
      <title>root-me challenges - App System : 1 	ELF x86 - Stack buffer overflow basic 1</title>
      <link>https://scorp.tistory.com/33</link>
      <description>&lt;p&gt;Root-me App/System 챌린지 1번! Stack buffer overflow 문제입니다!&lt;/p&gt;
&lt;p&gt;편의상 영어를 쓰지않고 스택 버퍼오버플로우라고 하겠습니다.&lt;/p&gt;
&lt;p&gt;스택 버퍼오버플로우는 포맷스트링과&lt;/p&gt;
&lt;p&gt;더불어 시스템해킹의&amp;nbsp;첫걸음이라고 할 수 있는데요&lt;/p&gt;
&lt;p&gt;차근차근 유치원생에게 설명하듯&amp;nbsp;쉬운것부터 알아보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJDiEh/btqt2aHwRql/2N8t8jEoI7AlmAisV3umUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJDiEh/btqt2aHwRql/2N8t8jEoI7AlmAisV3umUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJDiEh/btqt2aHwRql/2N8t8jEoI7AlmAisV3umUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJDiEh%2Fbtqt2aHwRql%2F2N8t8jEoI7AlmAisV3umUK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;160&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;네&amp;nbsp;난이도 1짜리 문제구요&lt;/p&gt;
&lt;p&gt;기본적으로 버퍼오버플로우는 유입되는 글자수에 제한을 두지 않아,&lt;/p&gt;
&lt;p&gt;말그대로 오버플로우, 흘러넘침이&amp;nbsp;발생하여 메모리 다른 영역을 침범하여 발생하는&amp;nbsp;버그입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이를 이용하여 root의 권한을 얻는것이 일반적인 목적이라고 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;427&quot; height=&quot;623&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wRVHG/btqt6Em4Jo2/gckPvUibYhN5KJ5J7YvePk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wRVHG/btqt6Em4Jo2/gckPvUibYhN5KJ5J7YvePk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wRVHG/btqt6Em4Jo2/gckPvUibYhN5KJ5J7YvePk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwRVHG%2Fbtqt6Em4Jo2%2FgckPvUibYhN5KJ5J7YvePk%2Fimg.png&quot; width=&quot;427&quot; height=&quot;623&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;1번문제라 그런지 버퍼의 크기를 확인 할 수 있는 소스코드가 주어졌습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;check 변수의 값을 0x04030201에서 0xdeadbeef 로 바꿔야 하는 문제로 보입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;사실 버퍼의 크기가 40이라고 나와있기 때문에 이것만 확인해도 되겠지만,&lt;/p&gt;
&lt;p&gt;소스코드가 주어지지 않았을 경우를 대비하여,&lt;/p&gt;
&lt;p&gt;gdb 기본명령어와 함께&amp;nbsp;간단하게 사용해 보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/89lJX/btqt1YmZ6BD/y1IFNM6PrKofKfRniHP9mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/89lJX/btqt1YmZ6BD/y1IFNM6PrKofKfRniHP9mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/89lJX/btqt1YmZ6BD/y1IFNM6PrKofKfRniHP9mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F89lJX%2Fbtqt1YmZ6BD%2Fy1IFNM6PrKofKfRniHP9mk%2Fimg.png&quot; width=&quot;500&quot; height=&quot;114&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;서버에 접속하여 ls 명령어를 실행하면 위와 같은 파일이 나열됩니다.&lt;/p&gt;
&lt;p&gt;아마도 히든파일로 되어있는 .passwd의 값을 읽어야 하는 문제인 것 같습니다.&lt;/p&gt;
&lt;p&gt;gdb를 이용하여 디버깅 하는 명령어는 gdb [파일명] 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WHCSO/btqt6D2LASA/mS0UQ5isqpVNjUNo3ceOK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WHCSO/btqt6D2LASA/mS0UQ5isqpVNjUNo3ceOK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WHCSO/btqt6D2LASA/mS0UQ5isqpVNjUNo3ceOK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWHCSO%2Fbtqt6D2LASA%2FmS0UQ5isqpVNjUNo3ceOK1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;231&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;set disassembly-flavor intel 명령어로 어셈블리 코드를 intel 문법으로 보겠다고 선언해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;버퍼오버플로우를 공부할 때 문서들이 대개&amp;nbsp;intel 문법으로 설명하고 있는 것들이&lt;/p&gt;
&lt;p&gt;많기 때문에 해주는 작업이므로, 기호에 따라 하지 않아도 상관 없습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;b main 명령어를 사용해 main 함수에 브레이크 포인트를 걸어줍니다.&lt;/p&gt;
&lt;p&gt;그리고 실행하면??&lt;/p&gt;
&lt;p&gt;소스코드에서 확인한대로 40byte의 크기만큼 문자를 받는 것을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자 이제 버퍼를 가득채워 흘러 넘치게 합시다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHkcq2/btqt3JvGHSg/klkdvkbDbvKDr6YIYzkyJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHkcq2/btqt3JvGHSg/klkdvkbDbvKDr6YIYzkyJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHkcq2/btqt3JvGHSg/klkdvkbDbvKDr6YIYzkyJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHkcq2%2Fbtqt3JvGHSg%2FklkdvkbDbvKDr6YIYzkyJK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;101&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;40byte를 A라는 임의의 값으로 채워넣고 바로 이어서 deadbeef 라는 값을 채워&lt;/p&gt;
&lt;p&gt;넣어야 하는데 python을 사용한 문법은 위와 같습니다.&lt;/p&gt;
&lt;p&gt;check 값이 deadbeef 라고 성공적으로 들어갔으면 .password를 읽을 수 있는&lt;/p&gt;
&lt;p&gt;권한의 쉘이 열리게 됩니다.&lt;/p&gt;
&lt;p&gt;히든 파일로 되어있는 .password 파일을 읽으시면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;클리어!!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;perl을 사용한 문법은 아래와 같고요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btua63/btqt1GNECTb/wZKO0q7vC5rmxHti9W3871/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btua63/btqt1GNECTb/wZKO0q7vC5rmxHti9W3871/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btua63/btqt1GNECTb/wZKO0q7vC5rmxHti9W3871/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtua63%2Fbtqt1GNECTb%2FwZKO0q7vC5rmxHti9W3871%2Fimg.png&quot; width=&quot;500&quot; height=&quot;69&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;python과 perl의 문법은 조금 차이가 있으므로 이 것 역시 기호에 맞는 언어를 사용하여 풀면 되겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&quot;A&quot;x40 이후에 적어주는 영어 구문이 왜 deadbeef가 아니냐? 의문이 들겁니다.&lt;/p&gt;
&lt;p&gt;바로 리틀인디언 방식으로 기재하기 때문인데요&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이에 대한 자세한 내용은 구글에서&lt;/p&gt;
&lt;p&gt;빅인디언 리틀인디언을 검색하여 한번 보시길 바랍니다.&lt;/p&gt;
&lt;p&gt;그럼 다음 문제에 뵙겠습니다~!&lt;/p&gt;</description>
      <category>War-Game/Root-me</category>
      <category>app system 1</category>
      <category>root-me</category>
      <category>root-me app system</category>
      <category>stack buffer overflow</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/33</guid>
      <comments>https://scorp.tistory.com/33#entry33comment</comments>
      <pubDate>Wed, 3 Apr 2019 13:26:36 +0900</pubDate>
    </item>
    <item>
      <title>ROOT-ME CHALLENGES - CRACKING : 8 ELF - ARM Basic</title>
      <link>https://scorp.tistory.com/32</link>
      <description>&lt;p&gt;Root-me Cracking 8번 문제입니다.&lt;/p&gt;
&lt;p&gt;ARM Basic 문제네요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d1n1nW/btqt3iyiyyk/jT17RdSkq09wbQ8E73Nvk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d1n1nW/btqt3iyiyyk/jT17RdSkq09wbQ8E73Nvk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d1n1nW/btqt3iyiyyk/jT17RdSkq09wbQ8E73Nvk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd1n1nW%2Fbtqt3iyiyyk%2FjT17RdSkq09wbQ8E73Nvk1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;184&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ARM은 Advanced RISC Machine의 약자로&amp;nbsp;&lt;/p&gt;
&lt;p&gt;임베디드 기기에 많이 사용되는 프로세서 입니다.&lt;/p&gt;
&lt;p&gt;저전력을 사용하도록 설계되어 스마트폰에서 강세를 보이고 있지요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ARM Operating은 Intel Operating과 약간 다릅니다.&lt;/p&gt;
&lt;p&gt;기본적인 ARM 어셈블리를 별도로 공부하셔야합니다.&lt;/p&gt;
&lt;p&gt;(구글신에서 검색하시면 자료가 많이 나와요 ㅎㅎ)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그럼 바이너리를 분석하러 가시죠.&lt;/p&gt;
&lt;p&gt;Start the Challenge 버튼을 누르시면 ch23.bin 파일을&lt;/p&gt;
&lt;p&gt;다운로드합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ARM 바이너리를 디버깅할 환경이 구축되어있지않아&lt;/p&gt;
&lt;p&gt;IDA로만 분석하였습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/unwGb/btqt1F2gJPV/4rG2iR7FuwTlgBz2Gex4Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/unwGb/btqt1F2gJPV/4rG2iR7FuwTlgBz2Gex4Rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/unwGb/btqt1F2gJPV/4rG2iR7FuwTlgBz2Gex4Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FunwGb%2Fbtqt1F2gJPV%2F4rG2iR7FuwTlgBz2Gex4Rk%2Fimg.png&quot; width=&quot;500&quot; height=&quot;223&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래프뷰로는 잘 보이지가 않죠.ㅠㅠ&lt;/p&gt;
&lt;p&gt;최상단 그래프부터 보시면&lt;/p&gt;
&lt;p&gt;변수 선언하고 STMFD 명령을 통해 함수 프롤로그하여&lt;/p&gt;
&lt;p&gt;스택프레임을 설정합니다.&lt;/p&gt;
&lt;p&gt;이 후 ch23.bin 실행 시 인자값체크를 하여 정상이면&amp;nbsp;&lt;/p&gt;
&lt;p&gt;loc_84B0주소로 BEQ 분기문이 실행됩니다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;loc_84B0 주소를 보시면 입력한 패스워드 값을 레지스터에&lt;/p&gt;
&lt;p&gt;저장하여 strlen 함수를 통해 입력 값 길이 체크를 합니다.&lt;/p&gt;
&lt;p&gt;CMP R3, #6 명령을 통해 길이가 6인지 체크 후&amp;nbsp;&lt;/p&gt;
&lt;p&gt;동일하면 BEQ 명령을 통해 loc_84F8 로 이동합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFwdXU/btqt2560GwK/VoPoEfgkDHTdz3zhxSO1MK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFwdXU/btqt2560GwK/VoPoEfgkDHTdz3zhxSO1MK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFwdXU/btqt2560GwK/VoPoEfgkDHTdz3zhxSO1MK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFwdXU%2Fbtqt2560GwK%2FVoPoEfgkDHTdz3zhxSO1MK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;285&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;loc_84F8 주소부터 입력한 패스워드와 값을 비교하는 구문입니다.&lt;/p&gt;
&lt;p&gt;LDR, MOV, RSB, STR 명령들을 통해 연산 및 메모리/레지스터에&lt;/p&gt;
&lt;p&gt;데이터를 Load/Store 합니다.&lt;/p&gt;
&lt;p&gt;핵심은 #s(입력한 패스워드 문자열) 를 R2 로드시키고&lt;/p&gt;
&lt;p&gt;R3+#5(다섯번째 배열의 문자열)을 로드시켜서 CMP R2, R3 비교합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;값이 동일하면 BEQ loc_8538로 이동합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;동일하게 #s + 1을 R2에 저장. #s에 첫번째 문자열을 R3에 저장하여&lt;/p&gt;
&lt;p&gt;CMP R2, R3 비교 후 BEQ loc_8564로 이동합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TnNIJ/btqt1FH4fXx/17Fbk8yPuQQTTFML5fHRhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TnNIJ/btqt1FH4fXx/17Fbk8yPuQQTTFML5fHRhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TnNIJ/btqt1FH4fXx/17Fbk8yPuQQTTFML5fHRhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTnNIJ%2Fbtqt1FH4fXx%2F17Fbk8yPuQQTTFML5fHRhK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;290&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ADD R3, R3, #3 / LDRB R3, [R3] / ADD R2, R3, #1 명령을 통해&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#s 세번째 배열 문자열과 + 1 을 시켜서 R2 레지스터에 저장합니다.&lt;/p&gt;
&lt;p&gt;#s를 R3 레지스터에 로드시킨 후 CMP R2, R3 비교하여&lt;/p&gt;
&lt;p&gt;BEQ loc_8590 주소로 이동합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;loc_8590에서는&lt;/p&gt;
&lt;p&gt;ADD R3, R3, #2 / LDRB R3, [R3] / ADD R2, R3, #4 명령을 통해&lt;/p&gt;
&lt;p&gt;#s 두번째 배열 문자열과 + 4 하여 R2 레지스터에 저장합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LDR R3, [R11, #s] / ADD R3, R3, #5 / LDRB R3, [R3] 명령을 통해&lt;/p&gt;
&lt;p&gt;#s 5번째 문자열을 R3 레지스터에 저장합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CMP R2, R3 비교 후 BEQ loc_85C0로 이동합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMxBSp/btqt3H5JX4b/OrNJdQd1hVrSGzIyv1dHvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMxBSp/btqt3H5JX4b/OrNJdQd1hVrSGzIyv1dHvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMxBSp/btqt3H5JX4b/OrNJdQd1hVrSGzIyv1dHvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMxBSp%2Fbtqt3H5JX4b%2FOrNJdQd1hVrSGzIyv1dHvK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;274&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;loc_85C0 주소에서도 문자열을 비교합니다.&lt;/p&gt;
&lt;p&gt;ADD R3, R3, #4 / LDRB R3, [R3] / ADD R2, R3, #2 명령을 통해&lt;/p&gt;
&lt;p&gt;#s 네번째 문자열과 + 2 를 더하여 R2에 저장하고,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LDR R3, [R11, #s] / ADD R3, R3, #2 명령을 통해&lt;/p&gt;
&lt;p&gt;#s 두번째 배열 문자열과 비교를 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;비교 후 BEQ loc_85F0 주소로 이동합니다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;8번문제를 풀려면 마지막 로직이 핵심입니다.&lt;/p&gt;
&lt;p&gt;#s 세번째 배열 문자열을 R3에 로드하고&lt;/p&gt;
&lt;p&gt;XOR 0x72 AND 0xFF 연산을 합니다.&lt;/p&gt;
&lt;p&gt;72는 아스키 문자 &quot;r&quot;입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;이 후 #s 여섯번째 배열 문자열을 R3에 저장하고&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CMP R3, #0 비교 후 BNE loc_8644 주소로 이동합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여섯번째 배열 문자열을 0과 비교한 후 Not Equals 면 Loser 문자열 출력&lt;/p&gt;
&lt;p&gt;그렇다면 s[6]배열은 null값으로 추정할 수 있죠.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지금까지 분석하게 맞는지&lt;/p&gt;
&lt;p&gt;Hex-rays 디컴파일러를 이용한 의사코드를 보시죠&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9zZv4/btqt241m8sU/ijWZDQVb3gODUVrKFaaYgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9zZv4/btqt241m8sU/ijWZDQVb3gODUVrKFaaYgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9zZv4/btqt241m8sU/ijWZDQVb3gODUVrKFaaYgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9zZv4%2Fbtqt241m8sU%2FijWZDQVb3gODUVrKFaaYgk%2Fimg.png&quot; width=&quot;500&quot; height=&quot;399&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;abcdefghijklmnopqrstuvwxyz&lt;/p&gt;
&lt;p&gt;알파벳 소문자 26개입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;s[3] 문자열 &quot;r&quot;을 기준으로 순서를 맞춰&lt;/p&gt;
&lt;p&gt;플래그 값을 찾아가면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;s[0]은 s[3] + 1 &quot;s&quot;&lt;/p&gt;
&lt;p&gt;s[0] + 1 = s[1] 이니 &quot;t&quot;&lt;/p&gt;
&lt;p&gt;s[0] = s[5]는 동일&lt;/p&gt;
&lt;p&gt;s[2] + 4 = s[5] &quot; o&quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 찾아가보면 6글자의 플래그 문자값을 찾을 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLgpvy/btqt3I4BThA/davszJOKqtZkDaRIx6Zdn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLgpvy/btqt3I4BThA/davszJOKqtZkDaRIx6Zdn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLgpvy/btqt3I4BThA/davszJOKqtZkDaRIx6Zdn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLgpvy%2Fbtqt3I4BThA%2FdavszJOKqtZkDaRIx6Zdn1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;196&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>War-Game/Root-me</category>
      <category>ARM Basic</category>
      <category>root-me</category>
      <category>root-me arm basic</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/32</guid>
      <comments>https://scorp.tistory.com/32#entry32comment</comments>
      <pubDate>Wed, 3 Apr 2019 13:25:48 +0900</pubDate>
    </item>
    <item>
      <title>ROOT-ME CHALLENGES - CRACKING : 9 PYC - ByteCode</title>
      <link>https://scorp.tistory.com/31</link>
      <description>&lt;p&gt;Root-me Cracking 9번 문제입니다.&lt;/p&gt;
&lt;p&gt;8번 ARM Basic 문제는 정리중입니다.. 조만간 업데이트하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFAFl2/btqt6D2Lp6k/oXedHY8hJE2dpGSwKL6t91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFAFl2/btqt6D2Lp6k/oXedHY8hJE2dpGSwKL6t91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFAFl2/btqt6D2Lp6k/oXedHY8hJE2dpGSwKL6t91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFAFl2%2Fbtqt6D2Lp6k%2FoXedHY8hJE2dpGSwKL6t91%2Fimg.png&quot; width=&quot;500&quot; height=&quot;187&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PYC - ByteCode 파이썬 바이트코드 문제네요.&lt;/p&gt;
&lt;p&gt;파이썬은 인터프리터 언어처럼 동작하는 코드지만, 사용자가&lt;/p&gt;
&lt;p&gt;모르는 사이에 스스로 파이썬 소스코드를 컴파일하여 바이트 코드를&lt;/p&gt;
&lt;p&gt;만들어냅니다. 그 확장자는 pyc로 생성이 되지요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Start the challenge 버튼을 클릭하여 문제파일을 다운로드합니다.&lt;/p&gt;
&lt;p&gt;ch19.pyc 파일을 받습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;바이트코드라 보이지가 않는군요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nfEvC/btqt250gh70/rlpavhYOMz8jARWkOjgV0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nfEvC/btqt250gh70/rlpavhYOMz8jARWkOjgV0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nfEvC/btqt250gh70/rlpavhYOMz8jARWkOjgV0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnfEvC%2Fbtqt250gh70%2FrlpavhYOMz8jARWkOjgV0K%2Fimg.png&quot; width=&quot;500&quot; height=&quot;125&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zRwwN/btqt1GtkG27/VxzdQnbDTeOypKOPpE8zz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zRwwN/btqt1GtkG27/VxzdQnbDTeOypKOPpE8zz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zRwwN/btqt1GtkG27/VxzdQnbDTeOypKOPpE8zz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzRwwN%2Fbtqt1GtkG27%2FVxzdQnbDTeOypKOPpE8zz0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;454&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&quot;welcome to the Root me Python crackme&quot;&lt;/p&gt;
&lt;p&gt;문자를 출력하고flag 값을 입력 받네요.&lt;/p&gt;
&lt;p&gt;KEY 값과 keyout 연산을 통해서&amp;nbsp;SOLUCE와 KEYOUT 값이&lt;/p&gt;
&lt;p&gt;동일하면 해결되는 문제군요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;451&quot; height=&quot;108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFy8I3/btqt3JbnR4M/htuaE4S7IhEHqZyrIkoFo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFy8I3/btqt3JbnR4M/htuaE4S7IhEHqZyrIkoFo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFy8I3/btqt3JbnR4M/htuaE4S7IhEHqZyrIkoFo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFy8I3%2Fbtqt3JbnR4M%2FhtuaE4S7IhEHqZyrIkoFo1%2Fimg.png&quot; width=&quot;451&quot; height=&quot;108&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;입력한 flag 값을 SOLUCE 아스키값과 동일하게 출력되도록&lt;/p&gt;
&lt;p&gt;입력하면 9번문제가 클리어 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dE5UsU/btqt1lbSI8Z/FSIPgKnSf3kObXojcyLYk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dE5UsU/btqt1lbSI8Z/FSIPgKnSf3kObXojcyLYk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dE5UsU/btqt1lbSI8Z/FSIPgKnSf3kObXojcyLYk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdE5UsU%2Fbtqt1lbSI8Z%2FFSIPgKnSf3kObXojcyLYk0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;174&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>War-Game/Root-me</category>
      <category>pyc - bytecode</category>
      <category>root-me</category>
      <category>root-me 파이썬바이트코드</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/31</guid>
      <comments>https://scorp.tistory.com/31#entry31comment</comments>
      <pubDate>Wed, 3 Apr 2019 13:25:02 +0900</pubDate>
    </item>
    <item>
      <title>ROOT-ME CHALLENGES - CRACKING : 7 ELF - Ptrace</title>
      <link>https://scorp.tistory.com/30</link>
      <description>&lt;p&gt;Root-me Cracking 7번 문제입니다.&lt;/p&gt;
&lt;p&gt;ELF Ptrace관련 문제입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvj2SZ/btqt2560ti7/NAGNVlosYET4PteWYxUwB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvj2SZ/btqt2560ti7/NAGNVlosYET4PteWYxUwB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvj2SZ/btqt2560ti7/NAGNVlosYET4PteWYxUwB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbvj2SZ%2Fbtqt2560ti7%2FNAGNVlosYET4PteWYxUwB0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;185&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;먼저, Ptrace가 어떤 기능을 하는지 알아보시죠.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mokRY/btqt6EABPGa/YNROV9nJejcsjpCj5zP2FK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mokRY/btqt6EABPGa/YNROV9nJejcsjpCj5zP2FK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mokRY/btqt6EABPGa/YNROV9nJejcsjpCj5zP2FK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmokRY%2Fbtqt6EABPGa%2FYNROV9nJejcsjpCj5zP2FK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;132&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(*참조URL : &lt;a href=&quot;http://linux4u.kr/manpage/ptrace.2.html&quot;&gt;http://linux4u.kr/manpage/ptrace.2.html&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ptrace(process trace)는 유닉스/유닉스 계열 운영체제에서 사용되며&lt;/p&gt;
&lt;p&gt;대상 프로세스의 내부 상태를 조사하고 조작하게 함으로써&lt;/p&gt;
&lt;p&gt;한 프로세스가 다른 프로세스를 제어할 수 있는 시스템 호출입니다.&lt;/p&gt;
&lt;p&gt;주로 디버깅 또는 시스템 콜 추적을 수행하는데 사용됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자세한 사항은 참조 URL 또는 구글검색을 통해 찾아보실 수 있습니다.&lt;/p&gt;
&lt;p&gt;해당 문제에서 사용되는 ptrace 함수 콜은 디버깅 탐지를 위해&lt;/p&gt;
&lt;p&gt;사용되어 졌습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;문제 바이너리 파일을&amp;nbsp;IDA 로 먼저 보시죠.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D3k8z/btqt1kjNyFf/KqdOB6mLuK24GJCSIL3Zlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D3k8z/btqt1kjNyFf/KqdOB6mLuK24GJCSIL3Zlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D3k8z/btqt1kjNyFf/KqdOB6mLuK24GJCSIL3Zlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD3k8z%2Fbtqt1kjNyFf%2FKqdOB6mLuK24GJCSIL3Zlk%2Fimg.png&quot; width=&quot;500&quot; height=&quot;290&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKVWcz/btqt4zGj071/9Coc5DIGrq6c8dBys4F5KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKVWcz/btqt4zGj071/9Coc5DIGrq6c8dBys4F5KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKVWcz/btqt4zGj071/9Coc5DIGrq6c8dBys4F5KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKVWcz%2Fbtqt4zGj071%2F9Coc5DIGrq6c8dBys4F5KK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;284&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;메인함수에서 ptrace 를 통해 디버깅 탐지를 하고 &quot;Debugger detect&quot;&lt;/p&gt;
&lt;p&gt;메시지를 출력합니다. 디버깅 탐지가 안되면,&lt;/p&gt;
&lt;p&gt;패스워드를 입력하라는 메시지가 출력됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 후 fgets 함수를 통해 입력한 패스워드 문자열을 받고,&lt;/p&gt;
&lt;p&gt;_notng 함수를 eax 레지스터에 저장하여 입력한 문자열과&lt;/p&gt;
&lt;p&gt;저장된 패스워드와 한 글자씩 비교 후&lt;/p&gt;
&lt;p&gt;&quot;Good Password&quot; 또는 &quot;Wrong Password&quot;를 출력합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자세한 사항은 gdb를 통해 보시죠.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0r2Y1/btqt1F2gz7C/ktx1kJNrlJJ9ZsJKwRumy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0r2Y1/btqt1F2gz7C/ktx1kJNrlJJ9ZsJKwRumy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0r2Y1/btqt1F2gz7C/ktx1kJNrlJJ9ZsJKwRumy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0r2Y1%2Fbtqt1F2gz7C%2Fktx1kJNrlJJ9ZsJKwRumy1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;303&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGHGNx/btqt3IKgE0i/vsktzSskc2geBNWoZTdSy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGHGNx/btqt3IKgE0i/vsktzSskc2geBNWoZTdSy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGHGNx/btqt3IKgE0i/vsktzSskc2geBNWoZTdSy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGHGNx%2Fbtqt3IKgE0i%2FvsktzSskc2geBNWoZTdSy0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;299&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;mov 명령어를 통해 &quot;ksuiealohgy&quot; 문자열을&amp;nbsp;스택에 올립니다.&lt;/p&gt;
&lt;p&gt;이 후, ptrace 함수 호출을 통해 디버깅 탐지 유무를 체크합니다.&lt;/p&gt;
&lt;p&gt;[0x0804841a] JNS 분기를 통해 프로그램을 종료할 지 Password를&lt;/p&gt;
&lt;p&gt;입력할 지 결정됩니다.&lt;/p&gt;
&lt;p&gt;(JNS : &lt;span&gt;Jump if sign flag not set, SF=0)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWzVzc/btqt6EABPHc/mbkdXXh60L9QB9sPIcGCC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWzVzc/btqt6EABPHc/mbkdXXh60L9QB9sPIcGCC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWzVzc/btqt6EABPHc/mbkdXXh60L9QB9sPIcGCC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWzVzc%2Fbtqt6EABPHc%2FmbkdXXh60L9QB9sPIcGCC1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;분기문에 브레이크 포인트&lt;span&gt;(b *0x804841a)&lt;/span&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;eflags에 설정되어 있는&amp;nbsp;SF 플래그 설정을 삭제 시킨 후 다시&lt;/p&gt;
&lt;p&gt;디버깅 실행해보시죠.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciJZ3U/btqt1jZu9m2/eJGh5tAQJoOk0d1EVVJAi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciJZ3U/btqt1jZu9m2/eJGh5tAQJoOk0d1EVVJAi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciJZ3U/btqt1jZu9m2/eJGh5tAQJoOk0d1EVVJAi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciJZ3U%2Fbtqt1jZu9m2%2FeJGh5tAQJoOk0d1EVVJAi1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;set $eflags=0x42 (ZF flag 설정)&lt;/p&gt;
&lt;p&gt;입력 후 레지스터를 다시 확인해 보니 SF 플래그 설정은 사라지고&lt;/p&gt;
&lt;p&gt;ZF 플래그가 설정되었네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mO7f4/btqt6EtQpbU/nIrwK86a0E1wdM9fQskoZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mO7f4/btqt6EtQpbU/nIrwK86a0E1wdM9fQskoZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mO7f4/btqt6EtQpbU/nIrwK86a0E1wdM9fQskoZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmO7f4%2Fbtqt6EtQpbU%2FnIrwK86a0E1wdM9fQskoZK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;프로그램을 다시 돌려보니 패스워드 입력 창까지 도달하였습니다.&lt;/p&gt;
&lt;p&gt;디버깅 탐지를 우회하였습니다.&lt;/p&gt;
&lt;p&gt;패스워드는 1234를 입력 후&amp;nbsp;계속 분석 해보시죠.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EmZDM/btqt6D9xLVD/yZyfahjIueyW2odiZggsE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EmZDM/btqt6D9xLVD/yZyfahjIueyW2odiZggsE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EmZDM/btqt6D9xLVD/yZyfahjIueyW2odiZggsE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEmZDM%2Fbtqt6D9xLVD%2FyZyfahjIueyW2odiZggsE0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;302&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHTMQE/btqt3hTE32S/r7LYlDZIxbALO9OVaHT1Y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHTMQE/btqt3hTE32S/r7LYlDZIxbALO9OVaHT1Y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHTMQE/btqt3hTE32S/r7LYlDZIxbALO9OVaHT1Y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHTMQE%2Fbtqt3hTE32S%2Fr7LYlDZIxbALO9OVaHT1Y0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;304&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;[0x08048486] call 0x8048f90 &amp;lt;fgets&amp;gt; 함수 호출을 통해 위와 같이&lt;/p&gt;
&lt;p&gt;password 입력창까지 도달하였습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이후 ni 를 통해 한줄 씩 디버깅을 해보니&lt;/p&gt;
&lt;p&gt;[0x080484a5] jne 0x80484e4&amp;lt;main+244&amp;gt;로 이동하여&lt;/p&gt;
&lt;p&gt;Wrong 패스워드 출력 후 프로그램이 종료되었습니다.&lt;/p&gt;
&lt;p&gt;코드를 자세히 보면,&lt;/p&gt;
&lt;p&gt;cmp dl, al 코드를 통해 입력한 문자열과 어떤 문자열과&lt;/p&gt;
&lt;p&gt;비교 후 jne 분기문이 실행되었습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clEQFM/btqt19BROA6/uiN0mwSdqufL7EU4U4eo61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clEQFM/btqt19BROA6/uiN0mwSdqufL7EU4U4eo61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clEQFM/btqt19BROA6/uiN0mwSdqufL7EU4U4eo61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclEQFM%2Fbtqt19BROA6%2FuiN0mwSdqufL7EU4U4eo61%2Fimg.png&quot; width=&quot;500&quot; height=&quot;303&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;cmp dl, al 코드가 4번 반복되네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pJpx2/btqt19PndwE/FZbIfqaIFfu9NcKBHjroJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pJpx2/btqt19PndwE/FZbIfqaIFfu9NcKBHjroJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pJpx2/btqt19PndwE/FZbIfqaIFfu9NcKBHjroJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJpx2%2Fbtqt19PndwE%2FFZbIfqaIFfu9NcKBHjroJK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;맨 처음 디버깅 탐지 분기문 jns와&lt;/p&gt;
&lt;p&gt;cmp 코드 주소를 브레이크 포인트 걸었습니다.&lt;/p&gt;
&lt;p&gt;프로그램을 다시 돌려보도록하겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mm5i5/btqt241mTth/UpFBXTuBhqGfrrqRQZhPI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mm5i5/btqt241mTth/UpFBXTuBhqGfrrqRQZhPI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mm5i5/btqt241mTth/UpFBXTuBhqGfrrqRQZhPI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmm5i5%2Fbtqt241mTth%2FUpFBXTuBhqGfrrqRQZhPI0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;디버깅 탐지 우회 후, 첫번째 cmp 코드에서 멈췄네요.&lt;/p&gt;
&lt;p&gt;dl, al 레지스터를 확인해보니 dl 레지스터에는&lt;/p&gt;
&lt;p&gt;입력하였던 숫자 1(0x31)이 보이네요.&lt;/p&gt;
&lt;p&gt;al 레지스터에는 0x65&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PpOBt/btqt3h0u2NX/Kft7d7KPI1aguThGkNXw81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PpOBt/btqt3h0u2NX/Kft7d7KPI1aguThGkNXw81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PpOBt/btqt3h0u2NX/Kft7d7KPI1aguThGkNXw81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPpOBt%2Fbtqt3h0u2NX%2FKft7d7KPI1aguThGkNXw81%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;cmp 코드 이 후 jne 분기문이므로 dl, al 레지스터 값을&lt;/p&gt;
&lt;p&gt;동일하게 설정한 후 분기문을 우회합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxwZpt/btqt4ygmk2p/wWbXiWW8dHS8ounQKtYDu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxwZpt/btqt4ygmk2p/wWbXiWW8dHS8ounQKtYDu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxwZpt/btqt4ygmk2p/wWbXiWW8dHS8ounQKtYDu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxwZpt%2Fbtqt4ygmk2p%2FwWbXiWW8dHS8ounQKtYDu0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;두번째 cmp 코드 값이네요.&lt;/p&gt;
&lt;p&gt;역시 동일하게 레지스터 값을 설정 후 우회합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caP5nx/btqt1kxnppd/lSrq2pu3Nw9KbAQwxEkq81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caP5nx/btqt1kxnppd/lSrq2pu3Nw9KbAQwxEkq81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caP5nx/btqt1kxnppd/lSrq2pu3Nw9KbAQwxEkq81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaP5nx%2Fbtqt1kxnppd%2FlSrq2pu3Nw9KbAQwxEkq81%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;세번째도 동일하게~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3Jwtc/btqt1YmZU74/p6v0EW5xUccpjiPkQIMKp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3Jwtc/btqt1YmZU74/p6v0EW5xUccpjiPkQIMKp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3Jwtc/btqt1YmZU74/p6v0EW5xUccpjiPkQIMKp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3Jwtc%2Fbtqt1YmZU74%2Fp6v0EW5xUccpjiPkQIMKp1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;네번째도 동일하게 우회합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FNLx4/btqt25lE3V6/6wqgZjCdOccYGJYJOcTRz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FNLx4/btqt25lE3V6/6wqgZjCdOccYGJYJOcTRz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FNLx4/btqt25lE3V6/6wqgZjCdOccYGJYJOcTRz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFNLx4%2Fbtqt25lE3V6%2F6wqgZjCdOccYGJYJOcTRz1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;진행시켜보면 Good password가 출력되네요.&lt;/p&gt;
&lt;p&gt;그럼, al 레지스터에 들어있던 값들을 아스키코드로 바꾸어보면&lt;/p&gt;
&lt;p&gt;단어가 만들어지네요.&lt;/p&gt;
&lt;p&gt;(0x65, 0x61, 0x73, 0x79)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dr5KJU/btqt1kjNyJk/oWebSZ95FLaksdconjm1CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dr5KJU/btqt1kjNyJk/oWebSZ95FLaksdconjm1CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dr5KJU/btqt1kjNyJk/oWebSZ95FLaksdconjm1CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdr5KJU%2Fbtqt1kjNyJk%2FoWebSZ95FLaksdconjm1CK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;301&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;미션 클리어~!&lt;/p&gt;</description>
      <category>War-Game/Root-me</category>
      <category>cracking elf - ptrace</category>
      <category>elf - ptrace</category>
      <category>root-me</category>
      <category>root-me cracking</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/30</guid>
      <comments>https://scorp.tistory.com/30#entry30comment</comments>
      <pubDate>Wed, 3 Apr 2019 13:24:19 +0900</pubDate>
    </item>
    <item>
      <title>ROOT-ME CHALLENGES - Web Server : 32 SQL injection - numeric</title>
      <link>https://scorp.tistory.com/29</link>
      <description>&lt;p&gt;Root-me 웹서버 챌린지 32번 SQL injection - numeric 문제입니다!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMl1dJ/btqt6D9xHHg/hYajg3C4Bak0ACXKtm8zak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMl1dJ/btqt6D9xHHg/hYajg3C4Bak0ACXKtm8zak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMl1dJ/btqt6D9xHHg/hYajg3C4Bak0ACXKtm8zak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMl1dJ%2Fbtqt6D9xHHg%2FhYajg3C4Bak0ACXKtm8zak%2Fimg.png&quot; width=&quot;500&quot; height=&quot;324&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SQl injection은 sql쿼리를 삽입하여 DB에 접근하는 공격기법입니다.&lt;/p&gt;
&lt;p&gt;너무나 유명한 공격기법입ㄴ다. 자 이제 문제를 풀어보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;Start the challenge~!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;393&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XxynF/btqt1kqw6Ki/kE3Id4loLICDXRq65LxhTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XxynF/btqt1kqw6Ki/kE3Id4loLICDXRq65LxhTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XxynF/btqt1kqw6Ki/kE3Id4loLICDXRq65LxhTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXxynF%2Fbtqt1kqw6Ki%2FkE3Id4loLICDXRq65LxhTK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;393&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Accueil 페이지에 접근하여 싱글쿼터를 삽입하니&lt;/p&gt;
&lt;p&gt;인젝션이 가능한 포인트를 찾았네요.&lt;/p&gt;
&lt;p&gt;에러메시지에 SQLite3 를 사용하는 걸로 출력되었네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;393&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLLCJC/btqt3IQ3eZG/YbkPNrjrLhqCYClwe8fEO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLLCJC/btqt3IQ3eZG/YbkPNrjrLhqCYClwe8fEO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLLCJC/btqt3IQ3eZG/YbkPNrjrLhqCYClwe8fEO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLLCJC%2Fbtqt3IQ3eZG%2FYbkPNrjrLhqCYClwe8fEO0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;393&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;바로 ORDER BY 쿼리를 넣어 필드 갯수를 알아냅니다.!&lt;/p&gt;
&lt;p&gt;에러메시지가 발생할 때까지 카운트를 1씩 증가시켜 요청합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;393&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EJ0Mz/btqt1kKTyAz/V8pzHmgKmHmDzTF7jz2bp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EJ0Mz/btqt1kKTyAz/V8pzHmgKmHmDzTF7jz2bp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EJ0Mz/btqt1kKTyAz/V8pzHmgKmHmDzTF7jz2bp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEJ0Mz%2Fbtqt1kKTyAz%2FV8pzHmgKmHmDzTF7jz2bp0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;393&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;sqlite는 데이터베이스 스키마를 sqlite_master 테이블에 저장합니다.&lt;/p&gt;
&lt;p&gt;또한, sqlite_master 에는 각 테이블의 정보가 포함 되어있어&lt;/p&gt;
&lt;p&gt;sql 필드에는 DB생성할 때 사용된 구문이 저장되어있습니다.&lt;/p&gt;
&lt;p&gt;(쿼리문:union select 1,sql,3 from sqlite_master)&lt;/p&gt;
&lt;p&gt;sql필드를 union select 하였더니 테이블명과 필드명이 출력되네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;393&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FvlGT/btqt6CW5pcA/ASzOdppu7jarEkMUv3LC81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FvlGT/btqt6CW5pcA/ASzOdppu7jarEkMUv3LC81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FvlGT/btqt6CW5pcA/ASzOdppu7jarEkMUv3LC81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFvlGT%2Fbtqt6CW5pcA%2FASzOdppu7jarEkMUv3LC81%2Fimg.png&quot; width=&quot;500&quot; height=&quot;393&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;(쿼리문: union select 1,username,password from users)&lt;/p&gt;
&lt;p&gt;출력된&amp;nbsp;테이블명과 필드명을 select 하니 ID,Password 을 출력해 주네요~!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5WPLa/btqt1FurfO6/Iu66IVSpzTYdIzRCIHGt4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5WPLa/btqt1FurfO6/Iu66IVSpzTYdIzRCIHGt4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5WPLa/btqt1FurfO6/Iu66IVSpzTYdIzRCIHGt4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5WPLa%2Fbtqt1FurfO6%2FIu66IVSpzTYdIzRCIHGt4k%2Fimg.png&quot; width=&quot;500&quot; height=&quot;284&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SQL Injection -&amp;nbsp;numeric 문제 미션 클리어~!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>War-Game/Root-me</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/29</guid>
      <comments>https://scorp.tistory.com/29#entry29comment</comments>
      <pubDate>Wed, 3 Apr 2019 13:23:33 +0900</pubDate>
    </item>
    <item>
      <title>ROOT-ME CHALLENGES - CRACKING : 6 ELF - Fake Instructions</title>
      <link>https://scorp.tistory.com/28</link>
      <description>&lt;p&gt;Root-me Cracking 6번 문제입니다.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;5&lt;/span&gt;&lt;span&gt;번 문제는 닷넷 PE 파일에서 패스워드를 찾는 문제인데...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;.Net Reflector로 문제파일 오픈하여 금방 찾을 수 있는 문제입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;PASS~!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;바로 6번 문제로 가시죠.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dt8PA/btqt24G30zO/DKpEdvdZ4qzfVc0nVE4ENK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dt8PA/btqt24G30zO/DKpEdvdZ4qzfVc0nVE4ENK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dt8PA/btqt24G30zO/DKpEdvdZ4qzfVc0nVE4ENK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDt8PA%2Fbtqt24G30zO%2FDKpEdvdZ4qzfVc0nVE4ENK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;179&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ej20Dq/btqt19Iz12s/Ryv99U9z1v2TTCSGVh9et0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ej20Dq/btqt19Iz12s/Ryv99U9z1v2TTCSGVh9et0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ej20Dq/btqt19Iz12s/Ryv99U9z1v2TTCSGVh9et0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fej20Dq%2Fbtqt19Iz12s%2FRyv99U9z1v2TTCSGVh9et0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;184&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Start the challenge 버튼을 누르면 crackme 파일을 다운로드합니다.&lt;/p&gt;
&lt;p&gt;패스워드 인자값을 입력하여 실행하면 그에 따른 결과값이 출력이 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래 IDA 그래프뷰를 통해 MAIN 함수 흐름을&amp;nbsp;보시면,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TKKhg/btqt4yObWUg/Ywtylb2IwO5sLWavNXG6P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TKKhg/btqt4yObWUg/Ywtylb2IwO5sLWavNXG6P0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TKKhg/btqt4yObWUg/Ywtylb2IwO5sLWavNXG6P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTKKhg%2Fbtqt4yObWUg%2FYwtylb2IwO5sLWavNXG6P0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;315&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o6rko/btqt3I4BsAY/Okv9RcXM4ikHLx2EDEKVq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o6rko/btqt3I4BsAY/Okv9RcXM4ikHLx2EDEKVq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o6rko/btqt3I4BsAY/Okv9RcXM4ikHLx2EDEKVq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo6rko%2Fbtqt3I4BsAY%2FOkv9RcXM4ikHLx2EDEKVq0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;319&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctZIuy/btqt3iZmCP1/gX69ErSugBjmNq9iqdYCh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctZIuy/btqt3iZmCP1/gX69ErSugBjmNq9iqdYCh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctZIuy/btqt3iZmCP1/gX69ErSugBjmNq9iqdYCh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctZIuy%2Fbtqt3iZmCP1%2FgX69ErSugBjmNq9iqdYCh0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;200&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;실행 인자값 비교후 offset a_0cgj35m9v5t3Z 주소를&amp;nbsp;&lt;/p&gt;
&lt;p&gt;memcpy 함수를 통해 메모리 영역을 복사합니다.&lt;/p&gt;
&lt;p&gt;cmp eax, 4 코드를 통해 eax 레지스터와 4를&amp;nbsp;비교 후&amp;nbsp;&lt;/p&gt;
&lt;p&gt;jb short loc_804861C 주소로 이동합니다.&lt;/p&gt;
&lt;p&gt;(*jb 분기문은 왼쪽 인자 값이 오른쪽 인자 값보다 작으면 점프)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그렇지 않으면 프로그램은 종료되며, jb 분기문을 통해 loc_804861C 주소로&lt;/p&gt;
&lt;p&gt;이동하면 WPA 함수에서 문자열 값을 다시 비교하여 패스워드를 출력합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;의사코드로 자세하게 확인해보시죠.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oabj6/btqt24NSGCZ/HCdfoCmfJcZAvpkqX7YKp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oabj6/btqt24NSGCZ/HCdfoCmfJcZAvpkqX7YKp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oabj6/btqt24NSGCZ/HCdfoCmfJcZAvpkqX7YKp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foabj6%2Fbtqt24NSGCZ%2FHCdfoCmfJcZAvpkqX7YKp0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;283&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;(main 함수)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;95&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dd9N3J/btqt3JJdNzV/ZqVcYXJB8Z3JTOqVgtAQO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dd9N3J/btqt3JJdNzV/ZqVcYXJB8Z3JTOqVgtAQO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dd9N3J/btqt3JJdNzV/ZqVcYXJB8Z3JTOqVgtAQO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdd9N3J%2Fbtqt3JJdNzV%2FZqVcYXJB8Z3JTOqVgtAQO1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;95&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;(WPA함수)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxgC9y/btqt3i6abm4/le5WDzma4MtjfL6lIhIle1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxgC9y/btqt3i6abm4/le5WDzma4MtjfL6lIhIle1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxgC9y/btqt3i6abm4/le5WDzma4MtjfL6lIhIle1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxgC9y%2Fbtqt3i6abm4%2Fle5WDzma4MtjfL6lIhIle1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;381&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;(blowfish 함수)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzXGrf/btqt2anbl0V/QUJIkgJk8NvWIPC8GUQPL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzXGrf/btqt2anbl0V/QUJIkgJk8NvWIPC8GUQPL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzXGrf/btqt2anbl0V/QUJIkgJk8NvWIPC8GUQPL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzXGrf%2Fbtqt2anbl0V%2FQUJIkgJk8NvWIPC8GUQPL1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;84&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;(RS4 함수)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;6번 문제 핵심은,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;WPA 함수에서 strcmp 함수를 이용하여 문자열 비교 후&amp;nbsp;&lt;/p&gt;
&lt;p&gt;blowfish 함수를 호출하여 패스워드를 출력해야 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;(처음에 아무생각없이 main&amp;nbsp;함수에서 &lt;/span&gt;&lt;span&gt;삽질을 하였습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;.ㅠㅠ)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;그럼 gdb 를 이용하여 문제파일을 디버깅 해보시죠.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N2Ppn/btqt1YmZKlX/83Eqs4iww0ItZQ1OiJzky0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N2Ppn/btqt1YmZKlX/83Eqs4iww0ItZQ1OiJzky0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N2Ppn/btqt1YmZKlX/83Eqs4iww0ItZQ1OiJzky0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN2Ppn%2Fbtqt1YmZKlX%2F83Eqs4iww0ItZQ1OiJzky0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;바로 WPA 함수를 디스어셈블링 합니다.&lt;/p&gt;
&lt;p&gt;strcmp 함수를 호출하여 문자열 비교 후 test eax, eax코드를 통해&lt;/p&gt;
&lt;p&gt;0인지 확인 후 blowfish 함수 또는&amp;nbsp;RS4 함수로 점프하게 됩니다.&lt;/p&gt;
&lt;p&gt;eax 레지스터 값을 변조하여 우회하면 되겠군요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5nnn5/btqt3idYdiM/QJYe7jCFqQ7os74r1su4Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5nnn5/btqt3idYdiM/QJYe7jCFqQ7os74r1su4Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5nnn5/btqt3idYdiM/QJYe7jCFqQ7os74r1su4Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5nnn5%2Fbtqt3idYdiM%2FQJYe7jCFqQ7os74r1su4Y1%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;브레이크 포인트를 걸고 실행합니다.&lt;/p&gt;
&lt;p&gt;eax 레지스터 값을 확인해보니 0xffffffff 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZJe3f/btqt1GGSLyV/JLNyMGwyDU0w9k6R3uhUB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZJe3f/btqt1GGSLyV/JLNyMGwyDU0w9k6R3uhUB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZJe3f/btqt1GGSLyV/JLNyMGwyDU0w9k6R3uhUB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZJe3f%2Fbtqt1GGSLyV%2FJLNyMGwyDU0w9k6R3uhUB0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;set $eax=0x0 명령을 통해 eax 레지스터 값을 변경합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5nxeA/btqt6DIr5rw/UPQ2WpDvBxmb9uIflvSrXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5nxeA/btqt6DIr5rw/UPQ2WpDvBxmb9uIflvSrXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5nxeA/btqt6DIr5rw/UPQ2WpDvBxmb9uIflvSrXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5nxeA%2Fbtqt6DIr5rw%2FUPQ2WpDvBxmb9uIflvSrXK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;375&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;eax 레지스터 값이 잘변경되었는지 확인한번!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zoJnp/btqt4y8uigg/AGrVqVGSOKpBnFxq56BkJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zoJnp/btqt4y8uigg/AGrVqVGSOKpBnFxq56BkJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zoJnp/btqt4y8uigg/AGrVqVGSOKpBnFxq56BkJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzoJnp%2Fbtqt4y8uigg%2FAGrVqVGSOKpBnFxq56BkJK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;303&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예상대로 패스워드가 출력되었네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SnRMk/btqt2aU2S9L/IEwe18qGzuFqhnPIJNFWV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SnRMk/btqt2aU2S9L/IEwe18qGzuFqhnPIJNFWV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SnRMk/btqt2aU2S9L/IEwe18qGzuFqhnPIJNFWV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSnRMk%2Fbtqt2aU2S9L%2FIEwe18qGzuFqhnPIJNFWV0%2Fimg.png&quot; width=&quot;500&quot; height=&quot;287&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;미션클리어~!&lt;/p&gt;</description>
      <category>War-Game/Root-me</category>
      <category>elf - fake instructions</category>
      <category>root-me</category>
      <category>root-me cracking</category>
      <author>(주)시큐어코퍼</author>
      <guid isPermaLink="true">https://scorp.tistory.com/28</guid>
      <comments>https://scorp.tistory.com/28#entry28comment</comments>
      <pubDate>Wed, 3 Apr 2019 13:23:04 +0900</pubDate>
    </item>
  </channel>
</rss>