<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>teppi 님의 블로그</title>
    <link>https://teppi.tistory.com/</link>
    <description>teppi 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 24 Oct 2026 14:51:02 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>teppi</managingEditor>
    <item>
      <title>후킹으로 잡는 하드코딩 키</title>
      <link>https://teppi.tistory.com/36</link>
      <description>&lt;h1&gt;후킹으로 잡는 하드코딩 키&lt;/h1&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;앱이 데이터를 암호화하는 그 순간, 키와 IV는 반드시 메모리를 통과한다. Android의 &lt;code&gt;Cipher.init&lt;/code&gt;과 iOS의 &lt;code&gt;CCCrypt&lt;/code&gt; 한 지점만 잡으면 된다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Platform&lt;/strong&gt; Android / iOS · &lt;strong&gt;Tool&lt;/strong&gt; Frida · jadx · &lt;strong&gt;Target&lt;/strong&gt; AES/CBC&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;모바일 앱 진단을 하다 보면 &amp;quot;이 앱은 통신 데이터를 암호화해서 보낸다&amp;quot;는 벽을 자주 만난다.&lt;/p&gt;
&lt;p&gt;패킷을 떠봐야 전부 암호문이니 그다음이 막힌다. 그런데 암호화에는 &lt;strong&gt;반드시 키가 필요&lt;/strong&gt;하고, 그 키는 어디선가 암호화 함수로 전달된다. 바로 그 전달 지점을 후킹하면, 앱이 아무리 암호문을 잘 숨겨도 키 자체를 손에 넣을 수 있다.&lt;/p&gt;
&lt;p&gt;이 글은 어느 금융 앱을 진단하면서 Android와 iOS 양쪽에서 &lt;strong&gt;하드코딩된 AES 키&lt;/strong&gt;와 &lt;strong&gt;고정 IV&lt;/strong&gt;를 찾아낸 과정을 정리한 것이다.&lt;/p&gt;
&lt;p&gt;핵심은 한 문장으로 요약된다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;암호화 함수에 키가 들어가는 순간을 가로챈다.&lt;/strong&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br&gt;

&lt;h2&gt;01 · 원리 — 왜 Cipher를 후킹하는가&lt;/h2&gt;
&lt;p&gt;Android에서 대칭·비대칭 암복호화는 거의 전부 &lt;code&gt;javax.crypto.Cipher&lt;/code&gt;를 거친다.&lt;/p&gt;
&lt;p&gt;AES든 RSA든, 어떤 라이브러리를 쓰든 최종적으로 이 클래스로 모인다. 그래서 여기 한 곳만 잡으면 앱이 무엇을 어떻게 암호화하는지 한눈에 관찰할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;특히 주목할 메서드는 세 개다.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;getInstance(transformation)&lt;/code&gt;&lt;/strong&gt; — 어떤 알고리즘·모드·패딩을 쓰는지 알려준다. &lt;code&gt;AES/ECB&lt;/code&gt;나 약한 패딩 같은 설계 취약점이 여기서 바로 드러난다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;init(opmode, key, ...)&lt;/code&gt;&lt;/strong&gt; — 키와 IV가 들어오는 핵심 지점. &lt;strong&gt;이 글의 주인공이다.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;doFinal(input)&lt;/code&gt;&lt;/strong&gt; — 입력 평문과 출력 암호문. 키 추출이 막혀도 평문/암호문은 여기서 관찰된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;진단에서 노리는 건 &lt;code&gt;init&lt;/code&gt;이다.&lt;/p&gt;
&lt;p&gt;암호화 객체는 쓰기 직전 반드시 &lt;code&gt;init&lt;/code&gt;으로 키를 주입받는다. 그 순간 전달된 &lt;code&gt;Key&lt;/code&gt; 객체에서 &lt;code&gt;getEncoded()&lt;/code&gt;로 raw 바이트를, 파라미터 스펙에서 IV를 꺼내면 된다.&lt;/p&gt;
&lt;br&gt;

&lt;h2&gt;02 · Android — Cipher.init 후킹&lt;/h2&gt;
&lt;p&gt;Frida로 &lt;code&gt;Cipher.init&lt;/code&gt;의 모든 오버로드를 감싸고, 인자로 들어온 &lt;code&gt;Key&lt;/code&gt;와 IV 스펙을 hex로 출력하도록 짰다.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;init&lt;/code&gt;은 오버로드가 여러 개라 &lt;strong&gt;전부 걸어야 누락이 없다.&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;Java.perform(function () {
    var Cipher  = Java.use(&amp;#39;javax.crypto.Cipher&amp;#39;);
    var GCMSpec = Java.use(&amp;#39;javax.crypto.spec.GCMParameterSpec&amp;#39;);
    var IvSpec  = Java.use(&amp;#39;javax.crypto.spec.IvParameterSpec&amp;#39;);

    // Key 객체 → raw 바이트를 hex로
    function hex(bytes) {
        if (bytes === null) return &amp;#39;(null)&amp;#39;;
        var s = &amp;#39;&amp;#39;;
        for (var i = 0; i &amp;lt; bytes.length; i++)
            s += (&amp;#39;0&amp;#39; + (bytes[i] &amp;amp; 0xff).toString(16)).slice(-2);
        return s;
    }

    // 모든 init 오버로드를 감싼다
    Cipher.init.overloads.forEach(function (ov) {
        ov.implementation = function () {
            console.log(&amp;#39;\n[Cipher.init] transform=&amp;#39; + this.getAlgorithm());
            for (var i = 1; i &amp;lt; arguments.length; i++) {
                var arg = arguments[i];
                if (arg === null) continue;

                // 1) Key
                try {
                    if (arg.getEncoded &amp;amp;&amp;amp; arg.getAlgorithm) {
                        console.log(&amp;#39;  key(hex)=&amp;#39; + hex(arg.getEncoded()));
                        continue;
                    }
                } catch (e) {}

                // 2) IV (CBC 등)
                try {
                    if (IvSpec.class.isInstance(arg))
                        console.log(&amp;#39;  IV (hex)=&amp;#39; + hex(Java.cast(arg, IvSpec).getIV()));
                } catch (e) {}
            }
            var ret = ov.apply(this, arguments);

            // 스펙 없이 Cipher가 내부 생성한 IV까지 회수
            try {
                var auto = this.getIV();
                if (auto !== null) console.log(&amp;#39;  IV(cipher.getIV())=&amp;#39; + hex(auto));
            } catch (e) {}
            return ret;
        };
    });
    console.log(&amp;#39;[*] Cipher.init hook 설치 완료&amp;#39;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;스크립트를 로드한 상태에서 앱의 &lt;strong&gt;인증번호 입력&lt;/strong&gt; 기능을 수행했다.&lt;/p&gt;
&lt;p&gt;입력 전에는 로그가 조용하다가, 입력하는 순간 후킹이 트리거되며 값이 쏟아졌다. 이 선후관계 자체가 &amp;quot;이 암호화가 인증 처리에 쓰인다&amp;quot;는 증거가 된다.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Cipher.init] transform=AES/CBC/PKCS5Padding
  key(hex)=4558414d504c454b4559313233343536
  IV (hex)=4558414d504c45495631323334353637

[Cipher.init] transform=AES/CBC/PKCS5Padding
  key(hex)=4558414d504c454b4559313233343536
  IV (hex)=4558414d504c45495631323334353637

[Cipher.init] transform=RSA/ECB/PKCS1Padding
  key(hex)=(null)   &amp;lt;-- Keystore (non-exportable)

[Cipher.init] transform=AES/GCM/NoPadding
  key(hex)=(null)   &amp;lt;-- Keystore (non-exportable)
  IV(cipher.getIV())=aea87f75a29dd95ce23122d7&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;구조가 한눈에 보인다.&lt;/p&gt;
&lt;p&gt;신규 데이터는 &lt;strong&gt;Keystore 기반 GCM&lt;/strong&gt;으로 처리해 키가 &lt;code&gt;(null)&lt;/code&gt;로 나온다(비추출, 양호). RSA도 마찬가지다.&lt;/p&gt;
&lt;p&gt;그런데 &lt;strong&gt;CBC 경로만 키가 raw로 그대로 찍혔다.&lt;/strong&gt; 그리고 그 값을 바이트로 읽는 순간, 결정적인 게 드러난다.&lt;/p&gt;
&lt;br&gt;

&lt;h2&gt;03 · 판별 — hex를 ASCII로 읽어본다&lt;/h2&gt;
&lt;p&gt;제대로 생성된 키는 &lt;code&gt;SecureRandom&lt;/code&gt;이 뽑은 난수라서, 바이트 값이 0x00~0xFF 전 범위에 아무렇게나 흩어진다.&lt;/p&gt;
&lt;p&gt;ASCII로 읽으면 깨진 문자와 제어문자가 뒤섞여 절대 단어가 되지 않는다. &lt;strong&gt;그런데 이 키는 달랐다.&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;KEY  45 58 41 4d 50 4c 45 4b 45 59 31 32 33 34 35 36
     E  X  A  M  P  L  E  K  E  Y  1  2  3  4  5  6
  →  &amp;quot;EXAMPLEKEY123456&amp;quot;

IV   45 58 41 4d 50 4c 45 49 56 31 32 33 34 35 36 37
     E  X  A  M  P  L  E  I  V  1  2  3  4  5  6  7
  →  &amp;quot;EXAMPLEIV1234567&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;16바이트가 전부 숫자·영대문자(0x30~0x5A) 범위에만 깔끔하게 들어가 있다. &lt;strong&gt;우연일 확률은 사실상 0이다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;이런 패턴이 보이면, 개발자가 소스에 문자열 상수로 박아뒀다는 신호다. &lt;em&gt;(예시 값으로 치환했으며, 실제 키는 위와 동일한 구조로 나왔다)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;셸에서 한 줄로 바로 확인된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ echo 4558414d504c454b4559313233343536 | xxd -r -p; echo
EXAMPLEKEY123456&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;바이트를 글자로 읽었더니 비밀번호처럼 생긴 문자열이 튀어나왔다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;이것이 하드코딩을 눈으로 바로 잡아내는 가장 빠른 신호다.&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;

&lt;h2&gt;04 · 교차검증 — jadx로 소스를 확인한다&lt;/h2&gt;
&lt;p&gt;동적 분석으로 확보한 값이 진짜 소스에 박힌 상수인지, jadx로 디컴파일해 교차검증했다.&lt;/p&gt;
&lt;p&gt;암호화 유틸리티 클래스에서 &lt;strong&gt;바이트 단위로 일치하는 배열 선언&lt;/strong&gt;을 찾았다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// com.example.bank.util.CryptoUtil

// Key → &amp;quot;EXAMPLEKEY123456&amp;quot;
c = new byte[]{69, 88, 65, 77, 80, 76, 69, 75, 69, 89, 49, 50, 51, 52, 53, 54};

// IV  → &amp;quot;EXAMPLEIV1234567&amp;quot;
d = new byte[]{69, 88, 65, 77, 80, 76, 69, 73, 86, 49, 50, 51, 52, 53, 54, 55};&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;69&lt;/code&gt;=0x45=&lt;code&gt;E&lt;/code&gt;, &lt;code&gt;88&lt;/code&gt;=0x58=&lt;code&gt;X&lt;/code&gt;… 후킹으로 뽑은 hex를 10진수로 적은 것뿐, 값은 동일하다.&lt;/p&gt;
&lt;p&gt;눈여겨볼 건 &lt;strong&gt;문자열 리터럴이 아니라 바이트 배열로 풀어 썼다&lt;/strong&gt;는 점이다. 문자열 검색을 피하려는 난독화 의도로 보인다.&lt;/p&gt;
&lt;p&gt;하지만 배열도 ASCII로 읽으면 그대로 드러나니 우회가 되지 않는다. 오히려 &amp;quot;일부러 숨기려 한 정황&amp;quot;이라 지적 포인트가 하나 더 생긴다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;✅ 증거 체인 완성&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;동적&lt;/strong&gt;(런타임 키·IV) → &lt;strong&gt;정적&lt;/strong&gt;(소스 선언 위치·클래스명) → &lt;strong&gt;바이트 일치&lt;/strong&gt;.&lt;br&gt;세 겹이 맞물리면 &amp;quot;런타임 우연&amp;quot;이라는 반박이 불가능해진다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br&gt;

&lt;h2&gt;05 · iOS — 같은 기법, 다른 함수&lt;/h2&gt;
&lt;p&gt;iOS에서도 원리는 똑같다. 다만 iOS는 &lt;strong&gt;암호화 API가 한 군데로 모이지 않는다&lt;/strong&gt;는 점이 다르다.&lt;/p&gt;
&lt;p&gt;네이티브 AES는 대부분 &lt;strong&gt;CommonCrypto의 &lt;code&gt;CCCrypt&lt;/code&gt;&lt;/strong&gt; C 함수로 흘러간다. Android의 &lt;code&gt;Cipher.init&lt;/code&gt;에 대응하는 자리가 바로 여기다.&lt;/p&gt;
&lt;p&gt;차이는 후킹 방식이다. 자바 클래스가 아니라 C 함수라서 &lt;code&gt;Interceptor.attach&lt;/code&gt;로 네이티브 함수를 가로챈다. 핵심은 &lt;strong&gt;이 함수의 인자 순서&lt;/strong&gt;를 아는 것이다.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CCCrypt(op, alg, options, key, keyLength, iv, ...)
         a0  a1    a2     a3      a4      a5&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;4번째 인자(&lt;code&gt;a[3]&lt;/code&gt;)가 키가 담긴 메모리 주소, 6번째(&lt;code&gt;a[5]&lt;/code&gt;)가 IV 주소다.&lt;/p&gt;
&lt;p&gt;이 함수가 호출되는 순간 그 주소에서 각각 &lt;code&gt;keyLen&lt;/code&gt;바이트, 16바이트를 읽으면 된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;(function () {
    var seen = {};   // 같은 key/IV 반복 출력 방지

    function hook(name) {
        var p = Module.findExportByName(null, name);
        if (!p) { console.log(&amp;#39;[-] &amp;#39; + name + &amp;#39; 없음&amp;#39;); return; }

        Interceptor.attach(p, {
            onEnter: function (a) {
                try {
                    var keyLen = a[4].toInt32();
                    if (keyLen &amp;lt;= 0 || keyLen &amp;gt; 32) return;   // 비정상 길이 방어

                    // a[3] = key 포인터, a[5] = IV 포인터
                    var kb = a[3].readByteArray(keyLen);
                    if (!kb) return;
                    var keyHex = &amp;#39;&amp;#39;, u = new Uint8Array(kb);
                    for (var i = 0; i &amp;lt; u.length; i++)
                        keyHex += (&amp;#39;0&amp;#39; + u[i].toString(16)).slice(-2);

                    var ivHex = &amp;#39;&amp;#39;;
                    if (!a[5].isNull()) {
                        var v = new Uint8Array(a[5].readByteArray(16));
                        for (var j = 0; j &amp;lt; v.length; j++)
                            ivHex += (&amp;#39;0&amp;#39; + v[j].toString(16)).slice(-2);
                    }

                    var sig = name + keyHex + ivHex;
                    if (seen[sig]) return;   // 중복 스킵 → 로그 폭주 방지
                    seen[sig] = true;

                    console.log(&amp;#39;\n[&amp;#39; + name + &amp;#39;] keyLen=&amp;#39; + keyLen);
                    console.log(&amp;#39;  key(hex)=&amp;#39; + keyHex);
                    console.log(&amp;#39;  IV (hex)=&amp;#39; + (ivHex || &amp;#39;(none)&amp;#39;));
                } catch (e) { console.log(&amp;#39;[&amp;#39; + name + &amp;#39;] err: &amp;#39; + e); }
            }
        });
        console.log(&amp;#39;[+] &amp;#39; + name + &amp;#39; 후킹 완료&amp;#39;);
    }

    hook(&amp;#39;CCCrypt&amp;#39;);          // 원샷 암호화
    hook(&amp;#39;CCCryptorCreate&amp;#39;);  // 스트리밍 암호화
})();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Android와 동일하게 인증번호를 입력하자, &lt;code&gt;CCCrypt&lt;/code&gt;가 호출되며 값이 떨어졌다.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[+] CCCrypt 후킹 완료
[+] CCCryptorCreate 후킹 완료

[CCCrypt] keyLen=16
  key(hex)=4558414d504c454b4559313233343536
  IV (hex)=4558414d504c45495631323334353637&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Android에서 본 값과 &lt;strong&gt;바이트 하나까지 동일하다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;양 플랫폼 빌드가 같은 하드코딩 키·IV를 공유한다는 뜻이고, 이는 플랫폼과 무관하게 CBC 암호문을 전부 복호화할 수 있다는 의미다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;  한 가지 실전 포인트&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;처음엔 &lt;code&gt;hexdump&lt;/code&gt;를 직접 쓰는 짧은 후킹을 썼는데, 유효하지 않은 메모리를 읽다가 세션이 멈추는 일이 있었다. 위처럼 &lt;code&gt;readByteArray&lt;/code&gt; + 길이 체크 + &lt;code&gt;try/catch&lt;/code&gt; + 중복 제거를 넣으면 안정적으로 찍힌다. 로그 폭주도 함께 막힌다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br&gt;

&lt;h2&gt;06 · 정리 — 대응과 핵심&lt;/h2&gt;
&lt;p&gt;이 CBC 경로의 문제는 &lt;strong&gt;세 겹&lt;/strong&gt;이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;하드코딩 AES-128 키&lt;/strong&gt; — 앱 소지자 누구나 복호화 가능&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;고정 IV&lt;/strong&gt; — CBC의 의미론적 안전성 상실, 평문 패턴 노출&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;바이트 배열 난독화&lt;/strong&gt; — 은폐 시도 정황&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;흥미로운 건 같은 앱의 &lt;strong&gt;Keystore 기반 GCM 경로는 제대로 짜여 있었다&lt;/strong&gt;는 점이다. 레거시 CBC만 구멍으로 남은 전형적인 split 아키텍처였다.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;항목&lt;/th&gt;
&lt;th&gt;Android&lt;/th&gt;
&lt;th&gt;iOS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;후킹 지점&lt;/td&gt;
&lt;td&gt;&lt;code&gt;javax.crypto.Cipher.init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CCCrypt&lt;/code&gt; / &lt;code&gt;CCCryptorCreate&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;방식&lt;/td&gt;
&lt;td&gt;Java 메서드 implementation 교체&lt;/td&gt;
&lt;td&gt;네이티브 함수 Interceptor.attach&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;키 위치&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Key.getEncoded()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;인자 &lt;code&gt;a[3]&lt;/code&gt; 메모리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IV 위치&lt;/td&gt;
&lt;td&gt;IvParameterSpec / &lt;code&gt;getIV()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;인자 &lt;code&gt;a[5]&lt;/code&gt; 메모리&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;대응방안&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;하드코딩 키 제거&lt;/strong&gt; — 소스 상수 대신 Android Keystore / iOS Keychain·Secure Enclave 기반의 비추출 키를 사용하거나, 안전한 키 교환으로 관리한다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;고정 IV 제거&lt;/strong&gt; — 매 암호화마다 &lt;code&gt;SecureRandom&lt;/code&gt;으로 IV를 새로 생성하고, 암호문 앞에 붙여 전달한다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AEAD로 전환&lt;/strong&gt; — 무결성까지 보장하는 &lt;code&gt;AES/GCM&lt;/code&gt;으로 통일한다. 같은 앱의 Keystore GCM 경로가 이미 좋은 선례다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;기억할 한 가지&lt;/h3&gt;
&lt;p&gt;암호화는 키를 숨길 수 없다.&lt;/p&gt;
&lt;p&gt;암호화하는 순간 키는 반드시 함수로 전달되고, 그 함수는 메모리 위에 있다. Android면 &lt;code&gt;Cipher.init&lt;/code&gt;, iOS면 &lt;code&gt;CCCrypt&lt;/code&gt; — 그 한 지점에 덫을 놓고 기능을 트리거하면, 앱이 무엇을 숨기든 키는 드러난다.&lt;/p&gt;
&lt;p&gt;그리고 뽑은 바이트를 ASCII로 한 번 읽어보는 것, &lt;strong&gt;그 30초가 하드코딩을 잡는 가장 빠른 길이다.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;code&gt;#Frida&lt;/code&gt; &lt;code&gt;#AES/CBC&lt;/code&gt; &lt;code&gt;#HardcodedKey&lt;/code&gt; &lt;code&gt;#CommonCrypto&lt;/code&gt; &lt;code&gt;#jadx&lt;/code&gt; &lt;code&gt;#MobilePentest&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;개인 학습 기록 · 패키지명·도메인·키 값은 전부 예시로 치환했으며, 기법 자체는 실제 진단에서 쓴 것과 동일하다.&lt;/em&gt;&lt;/p&gt;</description>
      <author>teppi</author>
      <guid isPermaLink="true">https://teppi.tistory.com/36</guid>
      <comments>https://teppi.tistory.com/36#entry36comment</comments>
      <pubDate>Wed, 14 Oct 2026 17:21:02 +0900</pubDate>
    </item>
    <item>
      <title>Android 알람창 우회 코드 모음</title>
      <link>https://teppi.tistory.com/30</link>
      <description>&lt;div style=&quot;background-color: #121314; color: #bbbebf;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;br /&gt;Java&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;perform&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;()&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Reflect&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Java.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'android.app.Dialog'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Reflect&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.dismiss.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'test'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;hide&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Java&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;perform&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;()&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Activity&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Java.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'android.app.Activity'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Activity&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.finish.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;overload&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'finish() blocked : '&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getName&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #8b949e;&quot;&gt;// 아무것도 안 하고 그냥 무시 -&amp;gt; 원래 finish() 호출 안 함&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Activity&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.finish.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;overload&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'int'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;finishTask&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'finish(int) blocked : '&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getName&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;()&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;' arg='&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;finishTask&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #8b949e;&quot;&gt;// 마찬가지로 아무것도 안 하고 무시&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;ActivityMoveBack&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Java.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'android.app.Activity'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;ActivityMoveBack&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.moveTaskToBack.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;overload&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'boolean'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;nonRoot&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'moveTaskToBack() blocked : '&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getName&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #8b949e;&quot;&gt;// 원래 boolean 리턴 -&amp;gt; 실행 안 됐다는 의미로 false&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;SystemClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Java.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'java.lang.System'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;SystemClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.exit.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'System.exit('&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;') blocked'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Runtime&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Java.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'java.lang.Runtime'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Runtime&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.exit.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'Runtime.exit('&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;') blocked'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Runtime&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.halt.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'Runtime.halt('&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;') blocked'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Process&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Java.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'android.os.Process'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Process&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.killProcess.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;pid&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'Process.killProcess('&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;pid&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;') blocked'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Process&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.sendSignal.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;pid&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;signal&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'Process.sendSignal(pid='&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;pid&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;', signal='&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;signal&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;') blocked'&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Activity&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.finishAffinity.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'finishAffinity() blocked : '&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getName&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;Activity&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.finishAndRemoveTask.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'finishAndRemoveTask() blocked : '&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getClass&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;getName&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;());&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>teppi</author>
      <guid isPermaLink="true">https://teppi.tistory.com/30</guid>
      <comments>https://teppi.tistory.com/30#entry30comment</comments>
      <pubDate>Mon, 3 Aug 2026 17:47:44 +0900</pubDate>
    </item>
    <item>
      <title>2025년 4회차 정보보안기사 합격 후기 (공부 방법/ 소소한 꿀팁들)</title>
      <link>https://teppi.tistory.com/25</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;588&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIUaZE/dJMb997IckQ/bMk8FrUpblzhoIaXfAUp50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIUaZE/dJMb997IckQ/bMk8FrUpblzhoIaXfAUp50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIUaZE/dJMb997IckQ/bMk8FrUpblzhoIaXfAUp50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIUaZE%2FdJMb997IckQ%2FbMk8FrUpblzhoIaXfAUp50%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;802&quot; height=&quot;487&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;588&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot; data-start=&quot;156&quot; data-end=&quot;166&quot;&gt;&lt;span&gt;짧게나마 제 공부 방법과 소소한 팁&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;느낀 점에 대해서 남겨봅니다&lt;span&gt;.&lt;br /&gt;&lt;/span&gt;정보보안기사 기사를 준비하는 분들께 도움이 되었으면 좋겠습니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot; data-start=&quot;156&quot; data-end=&quot;166&quot;&gt;&lt;b&gt;0. 지원동기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;너 쌍기사 있어&lt;span&gt;?&quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2023&lt;/span&gt;&lt;span&gt;년에 보안 공부에 막 발을 들였을 때&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;같이 공부하던 동료에게서&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;'&lt;/span&gt;쌍기사&lt;span&gt;'&lt;/span&gt;라는 단어를 처음 들었습니다&lt;span&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;정보처리기사와 정보보안기사를 모두 가진 사람을 부르는 말이라는데&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;그게 괜히 그렇게 멋지게 들렸습니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;단순하게&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&quot;&lt;/span&gt;나도 저 타이틀 갖고 싶다&lt;span&gt;!&quot;&lt;/span&gt;라는 마음으로 시작했던 것 같습니다&lt;span&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;그렇게 시작된 도전은&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2024&lt;/span&gt;년&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;6&lt;/span&gt;월 정보처리기사 합격으로 이어졌고&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;기세를 몰아&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2025&lt;/span&gt;년 신년 목표를&lt;span&gt;&lt;span&gt;&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;hr data-end=&quot;424&quot; data-start=&quot;421&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;자격증 설명&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정보보안기사는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://namu.wiki/w/%ED%95%9C%EA%B5%AD%EB%B0%A9%EC%86%A1%ED%86%B5%EC%8B%A0%EC%A0%84%ED%8C%8C%EC%A7%84%ED%9D%A5%EC%9B%90&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;span&gt;한국방송통신전파진흥원&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;(KCA)&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;에서 시행하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;국가기술자격증&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;시험이며 정보보안&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;시스템&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;네트워크&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;애플리케이션 등&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;IT&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;인프라 전반의 보안 상태를 진단하고 침해 사고에 대응&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;능력을 두루 평가합니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1-1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;시험 과목 및 검정 방법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시험은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;1&lt;/span&gt;차 필기&lt;/b&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;2&lt;/span&gt;차 실기&lt;/b&gt;로 나뉘어 진행됩니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;필기 시험&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;객관식&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;4&lt;/span&gt;지 택일형으로 진행되며&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;과목당&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;20&lt;/span&gt;문항&lt;span&gt;(&lt;/span&gt;총&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;100&lt;/span&gt;문항&lt;span&gt;, 150&lt;/span&gt;분&lt;span&gt;)&lt;/span&gt;이 출제됩니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;630&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #e8e8e8;&quot; width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;과목명&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #e8e8e8;&quot; width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;주요 학습 내용&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;시스템 보안&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;span&gt;OS(Linux, Windows)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;보안&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;계정 관리&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;로그 분석&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;취약점 점검&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;네트워크 보안&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;span&gt;OSI 7 Layer, TCP/IP&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로토콜 분석&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;네트워크 공격&lt;span&gt;(DoS,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;스푸핑 등&lt;span&gt;),&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;장비 보안&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;어플리케이션 보안&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;span&gt;웹 보안&lt;span&gt;(OWASP Top 10), FTP/SMTP/DB&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;보안&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;전자상거래 보안&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;악성코드 분석&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;정보보안 일반&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;span&gt;암호학&lt;span&gt;(&lt;/span&gt;대칭키&lt;span&gt;/&lt;/span&gt;비대칭키&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;해시함수&lt;span&gt;),&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;접근통제 모델&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;인증 기술&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;정보보안 관리 및 법규&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;315&quot;&gt;&lt;span&gt;&lt;span&gt;ISMS-P&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;인증 제도&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;위험 관리&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;정보통신망법&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;개인정보 보호법 등&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;합격 기준&lt;span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;100&lt;/span&gt;점 만점 기준 과목당&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;40&lt;/span&gt;점 이상&lt;span&gt;(&lt;/span&gt;과락 기준&lt;span&gt;),&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;전 과목 평균&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;60&lt;/span&gt;점 이상&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;실기 시험&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;필답형&lt;span&gt;(&lt;/span&gt;주관식&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;으로 진행되며&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;시험 시간은&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;180&lt;/span&gt;분입니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;실기 시험은 총&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;18&lt;/span&gt;문제&lt;/b&gt;가 출제되지만&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;실무형에서&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1&lt;/span&gt;문제를 선택해 풀기 때문에 실제 수험생이 답안을 작성하는 문제는 총&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;17&lt;/span&gt;문제&lt;span&gt;(100&lt;/span&gt;점 만점&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;입니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #e8e8e8;&quot; width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;시험&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;유형&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #e8e8e8;&quot; width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;출제 문항&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #e8e8e8;&quot; width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문항당 배점&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;단답형&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;12&lt;/span&gt;문항&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;3&lt;/span&gt;점&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;x 12&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;서술형&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;문항&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;12&lt;/span&gt;점&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;x 4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;실무형&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;2&lt;/span&gt;문항 중&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;문항 선택&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;16&lt;/span&gt;점&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;x 1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;b&gt;합계&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;17&lt;/span&gt;문항&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;199&quot;&gt;&lt;span&gt;&lt;span&gt;100&lt;/span&gt;점&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;단답형&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;용어&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;명령어&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;설정 파일 경로&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;법률 조항 빈칸 채우기 등&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;서술형&lt;span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;공격 원리 설명&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;취약점 조치 방안&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;로그 분석 결과 해석 등&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;실무형&lt;span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;방화벽&lt;span&gt;/Snort&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;룰&lt;span&gt;(Rule)&lt;span&gt;&amp;nbsp;&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;합격 기준&lt;span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;100&lt;/span&gt;점 만점 기준&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;60&lt;/span&gt;점 이상&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1-2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;합격률 및 난이도 특징&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;필기는 평균&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;30% ~ 40%&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;합격률로 처음 공부를 시작하는 사람들에게는 어렵지만 시간을 두고 충분히 공부 후 문제 풀이를 진행했다면 어려움 없이 합격할 수 있습니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 실기는 국가기술자격증 중에서도&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;악명 높은 난이도&lt;/b&gt;를 자랑합니다&lt;span&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;예전에는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;0% ~ 10%&lt;/span&gt;의 평균 합격률&lt;/b&gt;이라는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;극악의 난이도&lt;/b&gt;를 자랑했지만&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://namu.wiki/w/%ED%95%9C%EA%B5%AD%EB%B0%A9%EC%86%A1%ED%86%B5%EC%8B%A0%EC%A0%84%ED%8C%8C%EC%A7%84%ED%9D%A5%EC%9B%90&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;span&gt;한국방송&lt;span&gt;통신전파진흥원&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;(KCA)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이관된 이후에는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;10% ~ 20%&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;대로 올라온 만큼 난이도가 예전에 비해 쉬워졌습니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하지만 가장&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;최근&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2026&lt;/span&gt;년&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;회차 실기 합격률이 다시&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;6%&lt;/span&gt;&lt;/b&gt;를 기록하는 등 여전히 타 자격증들의 비해서 매우 합격하기 어려운 자격증입니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;168&quot; data-end=&quot;265&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; data-start=&quot;421&quot; data-end=&quot;424&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot; data-start=&quot;426&quot; data-end=&quot;440&quot;&gt;&lt;b&gt;2. 필기 준비 과정&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;442&quot; data-end=&quot;603&quot;&gt;
&lt;li data-start=&quot;442&quot; data-end=&quot;462&quot;&gt;&lt;b&gt;소요 기간&lt;/b&gt;: 약 10일&lt;/li&gt;
&lt;li data-start=&quot;463&quot; data-end=&quot;537&quot;&gt;&lt;b&gt;공부 방법&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;479&quot; data-end=&quot;537&quot;&gt;
&lt;li data-start=&quot;479&quot; data-end=&quot;510&quot;&gt;알기사 정보보안기사 필기 1200제 문제편 1회독&lt;/li&gt;
&lt;li data-start=&quot;513&quot; data-end=&quot;537&quot;&gt;CBT 기준 최근 5년 기출문제 풀이&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;538&quot; data-end=&quot;603&quot;&gt;&lt;b&gt;최종 결과&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;554&quot; data-end=&quot;603&quot;&gt;
&lt;li data-start=&quot;554&quot; data-end=&quot;569&quot;&gt;합격 / 총점 62점&lt;/li&gt;
&lt;li data-start=&quot;572&quot; data-end=&quot;603&quot;&gt;과목별: 65 / 70 / 65 / 60 / 50&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;605&quot; data-end=&quot;675&quot;&gt;이론서를 정독하며 공부하고 싶었지만,&lt;br /&gt;집중력 문제와 시간적인 여유가 부족하여&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;문제 위주의 학습 방식&lt;/b&gt;을 선택했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;677&quot; data-end=&quot;765&quot;&gt;정보보안기사는 동일한 기출문제가 그대로 출제되는 경우가 거의 없기 때문에,&lt;br /&gt;문제편의 해설을 꼼꼼히 읽으며 관련 이론을 최대한 함께 정리하려고 노력했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;677&quot; data-end=&quot;765&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;767&quot; data-end=&quot;860&quot;&gt;특히 5과목 법규 영역은 문장 표현의 미묘한 차이로 혼동을 주는 문제가 많아 많이 헷갈렸고,&lt;br /&gt;실제 시험 결과에서도 법 과목 때문에 상당히 아슬아슬하게 합격했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;862&quot; data-end=&quot;943&quot;&gt;개인적으로 느낀 점은,&lt;br /&gt;필기 난이도가 결코 쉬운 편은 아니지만&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1200제 문제를 2회독 정도 한다면 합격 가능성은 충분하다&lt;/b&gt;는 것입니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; data-start=&quot;945&quot; data-end=&quot;948&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot; data-start=&quot;950&quot; data-end=&quot;964&quot;&gt;&lt;b&gt;3. 실기 준비 과정&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;966&quot; data-end=&quot;1103&quot;&gt;
&lt;li data-start=&quot;966&quot; data-end=&quot;988&quot;&gt;&lt;b&gt;소요 기간&lt;/b&gt;: 약 3개월 반&lt;/li&gt;
&lt;li data-start=&quot;989&quot; data-end=&quot;1074&quot;&gt;&lt;b&gt;공부 방법&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1005&quot; data-end=&quot;1074&quot;&gt;
&lt;li data-start=&quot;1005&quot; data-end=&quot;1028&quot;&gt;알기사 정보보안기사 실기 강의 수강&lt;/li&gt;
&lt;li data-start=&quot;1031&quot; data-end=&quot;1052&quot;&gt;알기사 실기 문제집 문제편 풀이&lt;/li&gt;
&lt;li data-start=&quot;1055&quot; data-end=&quot;1074&quot;&gt;전자책(기출문제) 반복 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;1075&quot; data-end=&quot;1103&quot;&gt;&lt;b&gt;최종 결과&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1091&quot; data-end=&quot;1103&quot;&gt;
&lt;li data-start=&quot;1091&quot; data-end=&quot;1103&quot;&gt;합격 / 67점&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1105&quot; data-end=&quot;1161&quot;&gt;필기를 합격한 후 여유가 없어 5개월이 흐른 후 공부를 시작했으며, 알기사 실기 강의를 구매하였습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1105&quot; data-end=&quot;1161&quot;&gt;알기사 실기 강의가 총 152강으로 구성되어 있어,&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1105&quot; data-end=&quot;1161&quot;&gt;약 3개월 동안은 강의 수강에만 집중했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1163&quot; data-end=&quot;1239&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1163&quot; data-end=&quot;1239&quot;&gt;이후 남은 약 2주 동안은&lt;br /&gt;실기 문제집과 구매한 전자책에 포함된 기출문제를 중심으로&lt;br /&gt;집중적으로 풀고 암기하며 시험을 준비했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1163&quot; data-end=&quot;1239&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1241&quot; data-end=&quot;1354&quot;&gt;공부를 하며 느낀 점은,&lt;br /&gt;요즘 정보보안기사는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;기출문제와 그와 연관된 내용을 100% 이해하고 있다면&lt;/b&gt;&lt;br /&gt;난이도가 다소 높게 출제되더라도 합격선 점수는 충분히 받을 수 있는 시험이라는 것입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1241&quot; data-end=&quot;1354&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1241&quot; data-end=&quot;1354&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;시험 후&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;예상 점수는&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;67~79&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;점이었습니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1241&quot; data-end=&quot;1354&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;제가 본 회차가 기출문제 비율이 높아 결과가 나오기 전에도 쉽게 합격을 예상할 수 있었습니다&lt;span&gt;.&lt;br /&gt;&lt;/span&gt;시험이 쉽게 나온만큼 채점의 기준이 높았는지 예상 점수에서 최저점을 받았습니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; data-start=&quot;1356&quot; data-end=&quot;1359&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot; data-start=&quot;1361&quot; data-end=&quot;1385&quot;&gt;&lt;b&gt;4. 실기 공부 방법 (개인적인 의견)&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1387&quot; data-end=&quot;1444&quot;&gt;실기 준비를 하며 느낀 공부 방법에 대한 개인적인 생각을 정리해봅니다.&lt;br /&gt;※ 지극히 개인적인 경험에 기반한 내용입니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;1446&quot; data-end=&quot;1462&quot;&gt;① 강의를 활용한 학습&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1464&quot; data-end=&quot;1484&quot;&gt;가장 정석적인 방법이라고 생각합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1464&quot; data-end=&quot;1484&quot;&gt;저는 기출만으로는 불안해서, 모든 유형의 문제에 대응하고자 강의를 구매해 공부를 시작했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1464&quot; data-end=&quot;1484&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1486&quot; data-end=&quot;1492&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1493&quot; data-end=&quot;1578&quot;&gt;
&lt;li data-start=&quot;1493&quot; data-end=&quot;1517&quot;&gt;기본 이론을 체계적으로 익힐 수 있음&lt;/li&gt;
&lt;li data-start=&quot;1518&quot; data-end=&quot;1547&quot;&gt;실습을 함께 진행해 주어 이해에 큰 도움이 됨&lt;/li&gt;
&lt;li data-start=&quot;1548&quot; data-end=&quot;1578&quot;&gt;기출문제뿐 아니라 다양한 문제 유형에 대비 가능&lt;/li&gt;
&lt;li data-start=&quot;1548&quot; data-end=&quot;1578&quot;&gt;강의의 기간이 있기 때문에 강제로 공부하게 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1633&quot; data-end=&quot;1639&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1640&quot; data-end=&quot;1737&quot;&gt;
&lt;li data-start=&quot;1640&quot; data-end=&quot;1662&quot;&gt;총 152강으로 분량이 매우 많음&lt;/li&gt;
&lt;li data-start=&quot;1663&quot; data-end=&quot;1695&quot;&gt;강의 하나하나 놓치지 않으려다 보니 체력적으로 부담&lt;/li&gt;
&lt;li data-start=&quot;1696&quot; data-end=&quot;1724&quot;&gt;시험 대비보다는 &amp;lsquo;보안 전반&amp;rsquo;을 다루는 느낌&lt;/li&gt;
&lt;li data-start=&quot;1725&quot; data-end=&quot;1737&quot;&gt;비용 부담이 큼&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;시간적&lt;span&gt;&amp;middot;&lt;/span&gt;금전적 여유가 있는 경우&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;인터넷 강의를 활용해 기본 개념을 뼈대부터 탄탄히 다진 뒤&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;기출문제를 꼼꼼하게 회독하는 방식을 추천합니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;b&gt;이론과 문제 풀이를 밸런스 있게 챙길 수 있어서 가장 안정적으로 합격권에 진입&lt;/b&gt;할 수 있는 정석적인 방법입니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;1744&quot; data-end=&quot;1757&quot;&gt;② 책 중심 독학&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1759&quot; data-end=&quot;1791&quot;&gt;책을 여러 번 정독하고 문제를 빠르게 반복하는 방식입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1793&quot; data-end=&quot;1799&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1800&quot; data-end=&quot;1893&quot;&gt;
&lt;li data-start=&quot;1800&quot; data-end=&quot;1819&quot;&gt;시험 위주 공부에 매우 적합&lt;/li&gt;
&lt;li data-start=&quot;1820&quot; data-end=&quot;1856&quot;&gt;자주 출제되는 유형(snort, 위험관리 등)에 집중 가능&lt;/li&gt;
&lt;li data-start=&quot;1857&quot; data-end=&quot;1879&quot;&gt;준비 시간이 짧은 경우 특히 추천&lt;/li&gt;
&lt;li data-start=&quot;1880&quot; data-end=&quot;1893&quot;&gt;비용 부담이 적음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1895&quot; data-end=&quot;1901&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1902&quot; data-end=&quot;1965&quot;&gt;
&lt;li data-start=&quot;1902&quot; data-end=&quot;1928&quot;&gt;정보보안기사는 신규 문제가 꾸준히 출제됨&lt;/li&gt;
&lt;li data-start=&quot;1929&quot; data-end=&quot;1965&quot;&gt;기출 위주 학습은 새로운 유형 대응에 한계가 있을 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&lt;b&gt;&lt;span&gt;시간적&lt;span&gt;&amp;middot;&lt;/span&gt;금전적 여유가 부족한 경우&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&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;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&lt;span&gt;곧바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;기출문제 풀이와 오답 노트에 집중하는&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;'&lt;/span&gt;선택과 집중&lt;span&gt;'&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;전략을 추천합니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&lt;span&gt;최근 시험 경향을 보면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;기출문제만 제대로 파고들어도 충분히 합격 점수를 넘길 수 있도록 출제&lt;/b&gt;되고 있기 때문에&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&lt;span&gt;이 방법&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;역시 승산이 매우 높습니다&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;82&quot; data-end=&quot;195&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;197&quot; data-end=&quot;343&quot;&gt;다만 무엇보다 중요한 것은,&lt;br /&gt;정해진 정답 같은 공부 방법이 아니라&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;자신에게 가장 잘 맞는 학습 방식&lt;/b&gt;을 찾는 것이라고 생각합니다.&lt;br /&gt;본인의 상황과 성향에 맞는 방법을 선택해 꾸준히 이어가는 것이&lt;br /&gt;결국 합격으로 이어지는 가장 현실적인 전략이었습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; data-start=&quot;1967&quot; data-end=&quot;1970&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot; data-start=&quot;1972&quot; data-end=&quot;1983&quot;&gt;&lt;b&gt;5. 시험 후기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1985&quot; data-end=&quot;2031&quot;&gt;정보보안기사를 취득했다고 해서 겉으로 보이는 변화가 생긴 것은 사실상 없습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;2033&quot; data-end=&quot;2113&quot;&gt;다만 합격 당일 느꼈던 성취감은 분명했고,&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;2033&quot; data-end=&quot;2113&quot;&gt;&amp;lsquo;언젠가는 꼭 따야 한다&amp;rsquo;는 마음속 부담에서 벗어났다는 점이 가장 큰 보상이었다고 느꼈습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;2115&quot; data-end=&quot;2176&quot;&gt;또한 이론적인 부분이 많이 정리되면서&lt;br /&gt;실무에서도 직&amp;middot;간접적으로 도움이 되고 있다는 점을 체감하고 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;2115&quot; data-end=&quot;2176&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;2178&quot; data-end=&quot;2254&quot;&gt;2026년에는 결혼을 잘 준비하면서,&lt;br /&gt;버그바운티 활동에 조금 더 집중해보고&lt;br /&gt;여유가 된다면 CPPG 자격증에도 도전해볼 생각입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;2256&quot; data-end=&quot;2311&quot;&gt;정보보안기사를 준비하며 가장 중요하다고 느낀 것은&lt;br /&gt;결국&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;꺾이지 않는 마음과 끈기&lt;/b&gt;였습니다.&lt;/p&gt;
&lt;hr data-end=&quot;1970&quot; data-start=&quot;1967&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;a style=&quot;color: #000000;&quot;&gt;6. 도움 자료들&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;필기&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;알기사 정보보안기사 필기 이론서&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ 1200&lt;/span&gt;제&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;정보보안기사 필기 기출문제&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;CBT&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.comcbt.com/xe/ccw&quot;&gt;https://www.comcbt.com/xe/ccw&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;실기&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;알기사 정보보안기사 실기 이론서&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;문제편&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;지안에듀 알기사 정보보안기사 정일영 교수님&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;156&lt;/span&gt;강&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;네이버 블로그&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;온계절&lt;span&gt;&amp;rsquo;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://blog.naver.com/stereok2&quot;&gt;https://blog.naver.com/stereok2&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;블로그&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;온계절&lt;span&gt;&amp;rsquo;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;님이 집필한 정보보안기사 전자책&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;네이버 카페&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;알기사&lt;span&gt;&amp;rsquo;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://cafe.naver.com/algisa&quot;&gt;https://cafe.naver.com/algisa&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <author>teppi</author>
      <guid isPermaLink="true">https://teppi.tistory.com/25</guid>
      <comments>https://teppi.tistory.com/25#entry25comment</comments>
      <pubDate>Mon, 3 Aug 2026 17:45:29 +0900</pubDate>
    </item>
    <item>
      <title>frida 버전 추천</title>
      <link>https://teppi.tistory.com/24</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;frida 버전은 16.2.5 버전을 다운 받으시는 것을 추천드립니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;frida-tools 는 13.7.0 버전을 다운 받으시는 것을 추천드립니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;충돌 회피를 위하고 원활한 동작을 제공하는 버전입니다.&lt;/p&gt;</description>
      <author>teppi</author>
      <guid isPermaLink="true">https://teppi.tistory.com/24</guid>
      <comments>https://teppi.tistory.com/24#entry24comment</comments>
      <pubDate>Mon, 3 Aug 2026 17:45:03 +0900</pubDate>
    </item>
    <item>
      <title>디스어셈블러 : 함수 앞 [+]와 [-] 기호의 의미와 루팅 우회 전략</title>
      <link>https://teppi.tistory.com/21</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;303&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bomH1H/dJMcahbJUrF/bdq4N6a7S2q4ToUStjEKn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bomH1H/dJMcahbJUrF/bdq4N6a7S2q4ToUStjEKn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bomH1H/dJMcahbJUrF/bdq4N6a7S2q4ToUStjEKn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbomH1H%2FdJMcahbJUrF%2Fbdq4N6a7S2q4ToUStjEKn0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;303&quot; height=&quot;406&quot; data-origin-width=&quot;303&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;5&quot;&gt;루팅 우회를 하다 보면, IDA Pro나 Ghidra 같은 디스어셈블러의 함수 목록에서 +[ClassName MethodName] 또는 -[ClassName MethodName]과 같은 독특한 표기법을 자주 접하게 됩니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;6&quot;&gt;이 기호들은 단순한 GUI 아이콘이 아니라, 해당 함수가 어떤 타입의 메서드인지, 그리고 바이너리가 주로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Objective-C&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;기반임을 알려주는 중요한 단서입니다. 이 표기법을 정확히 이해하는 것은 성공적인 후킹(Hooking) 및 분기문 우회 전략을 수립하는 첫걸음입니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. [+]와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;[-]&quot;&gt;[-]&lt;/span&gt;&amp;nbsp;기호, 그 근본적인 차이&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;8&quot;&gt;이 기호들은 **객체 지향 프로그래밍(OOP)**의 핵심 개념인 **클래스 메서드(Class Method)**와 **인스턴스 메서드(Instance Method)**를 나타냅니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-path-to-node=&quot;9&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;기호&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Objective-C 용어&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;OOP 개념&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td data-path-to-node=&quot;9,1,0,0&quot;&gt;&lt;b&gt;+&lt;/b&gt;&lt;/td&gt;
&lt;td data-path-to-node=&quot;9,1,1,0&quot;&gt;&lt;b&gt;클래스 메서드 (Class Method)&lt;/b&gt;&lt;/td&gt;
&lt;td data-path-to-node=&quot;9,1,2,0&quot;&gt;정적(Static) 메서드&lt;/td&gt;
&lt;td data-path-to-node=&quot;9,1,3,0&quot;&gt;&lt;b&gt;특정 객체(인스턴스)를 생성하지 않고&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;클래스 자체에 소속되어 호출되는 기능입니다. 환경 변수 확인, 공통 유틸리티 기능 등&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;전역적인&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;처리에 사용됩니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td data-path-to-node=&quot;9,2,0,0&quot;&gt;&lt;b&gt;-&lt;/b&gt;&lt;/td&gt;
&lt;td data-path-to-node=&quot;9,2,1,0&quot;&gt;&lt;b&gt;인스턴스 메서드 (Instance Method)&lt;/b&gt;&lt;/td&gt;
&lt;td data-path-to-node=&quot;9,2,2,0&quot;&gt;동적(Dynamic) 메서드&lt;/td&gt;
&lt;td data-path-to-node=&quot;9,2,3,0&quot;&gt;&lt;b&gt;반드시 객체(인스턴스)를 생성해야만&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;호출할 수 있는 기능입니다. 특정 객체의 내부 상태를 조작하거나 확인하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;개별적인&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;업무 처리에 사용됩니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;10&quot;&gt;&lt;b&gt;예시:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+[SystemUtil isJailBroken]는 SystemUtil 클래스에 &quot;전체 시스템 상태가 탈옥이니?&quot;라고 묻는 것이고, -[AFSDKChecksum calculateV2Sa...]는 특정 AFSDKChecksum 객체에게 &quot;너의 체크섬을 계산하라&quot;고 지시하는 것입니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. 분기문 우회(Hooking) 전략: 왜 [-]가 유리한가?&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;12&quot;&gt;&quot;분기문 우회는 - 메서드에 집중하는 것이 좋다&quot;는 조언은 매우 실용적입니다. 이는 Objective-C 런타임의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Method Swizzling&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;기법과 보안 로직의 특성 때문입니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;A. 후킹 기법의 용이성&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;14&quot;&gt;Objective-C 바이너리 후킹의 표준 기법인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Method Swizzling&lt;/b&gt;은 **인스턴스 메서드(-)**에 대해 가장 간결하고 표준적으로 적용될 수 있습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot; data-path-to-node=&quot;15&quot;&gt;
&lt;li&gt;&lt;b&gt;- 메서드:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;인스턴스 메서드는 objc_getClass 함수로 클래스를 얻어낸 후, 해당 클래스의 Method 포인터를 class_getInstanceMethod 함수로 쉽게 찾아 재정의할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;+ 메서드:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;클래스 메서드 역시 후킹이 가능하지만, 때때로 호출 방식이 다르거나 컴파일러에 의해 인라인(Inline) 최적화되어 있어 인스턴스 메서드보다 다소 복잡한 접근이 필요할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;B. 로직의 집중 지점&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;17&quot;&gt;보안 라이브러리(예: 안티-디버깅)는 종종&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;특정 객체&lt;/b&gt;를 생성하여 그 객체의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;상태&lt;/b&gt;를 이용해 보안 검증을 수행합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;18&quot;&gt;
&lt;li&gt;예를 들어, 보안 라이브러리가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;SecurityManager 객체&lt;/b&gt;를 만들고 -[SecurityManager isConfigurationSafe]와 같은 - 메서드를 통해 분기문을 발생시킵니다.&lt;/li&gt;
&lt;li&gt;이때 해당 - 메서드를 후킹하여 무조건 $\text{True}$를 반환하게 만들면, 객체의 상태를 &quot;안전함&quot;으로 속여 분기문을 손쉽게 통과할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. 우회 전략의 결론: 두 마리 토끼 잡기&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;20&quot;&gt;실제 우회 작업에서는 +와 -를 모두 고려해야 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot; data-path-to-node=&quot;21&quot;&gt;
&lt;li&gt;&lt;b&gt;1순위 (+):&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;전역적인 탈옥/디버깅 확인 함수&lt;/b&gt;에 주목하세요. +[SystemUtil isJailBroken], +[Codeguard isJailBroken] 등은 앱 실행&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;초기&lt;/b&gt;에 호출되어 앱을 즉시 종료시키는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Kill Switch&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;역할을 할 가능성이 높습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2순위 (-):&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;중요한 검증 로직 및 데이터 조작&lt;/b&gt;에 주목하세요. -[AFSDKChecksum calculate...]와 같이 체크섬이나 무결성 검증을 수행하는 - 메서드를 후킹하여 검증 로직이 요구하는 '정상 값'을 강제로 반환하게 만드는 것이 핵심 우회 작업이 됩니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;22&quot;&gt;[+]와 [-]는 단순한 구분이 아닌, 해당 함수의 책임 영역(Scope)을 나타내는 중요한 단서입니다. 이 정보를 활용하여 전략적으로 후킹 지점을 선택한다면, 리버스 엔지니어링 효율을 크게 높일 수 있을 것입니다.&lt;/p&gt;</description>
      <author>teppi</author>
      <guid isPermaLink="true">https://teppi.tistory.com/21</guid>
      <comments>https://teppi.tistory.com/21#entry21comment</comments>
      <pubDate>Mon, 3 Aug 2026 17:43:41 +0900</pubDate>
    </item>
    <item>
      <title>Android vs iOS : Frida가 동작하는 방식이 다른 이유</title>
      <link>https://teppi.tistory.com/18</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Frida는 동적 분석을 위한 강력한 도구지만, 플랫폼에 따라 실행 방식이 조금 다릅니다. 특히 Android에서는 adb shell로 직접 frida-server를 실행해야 하지만, iOS(탈옥 환경)에서는 별도 실행 없이 바로 사용이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Android : 직접 실행이 필요한 이유&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Android는 리눅스 기반의 보안 모델을 따릅니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-start=&quot;511&quot; data-end=&quot;533&quot;&gt;각 앱은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;독립된 UID&lt;/b&gt;로 실행&lt;/li&gt;
&lt;li data-start=&quot;534&quot; data-end=&quot;560&quot;&gt;기본적으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;앱 간 메모리 접근이 불가&lt;/b&gt;&lt;/li&gt;
&lt;li data-start=&quot;561&quot; data-end=&quot;589&quot;&gt;시스템 수준 접근은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;root 권한&lt;/b&gt;이 필요&lt;/li&gt;
&lt;li data-start=&quot;561&quot; data-end=&quot;589&quot;&gt;때문에 다음과 같은 과정이 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1785746546073&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;adb shell        # 디바이스에 접속
./frida-server   # root 권한으로 실행&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;즉,&amp;nbsp; Frida가 대상 프로세스를 후킹하려면 루트 권한으로 돌아가는 별도 백엔드 서버가 필요합니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. iOS: frida-server 실행이 필요 없는 이유&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;iOS는 기본적으로 매우 폐쇄적인 OS이지만, 탈옥(jailbreak) 상태에서는 다음과 같이 동작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-start=&quot;972&quot; data-end=&quot;995&quot;&gt;시스템 루트 권한 획득 (root)&lt;/li&gt;
&lt;li data-start=&quot;996&quot; data-end=&quot;1032&quot;&gt;&lt;b&gt;AMFI, Sandbox, Code Signing 우회&lt;/b&gt;&lt;/li&gt;
&lt;li data-start=&quot;1033&quot; data-end=&quot;1056&quot;&gt;시스템 데몬과 launchd 접근 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1785746546073&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Cydia / Sileo 등에서 설치
apt install frida&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탈옥 디바이스에서 frida 설치 시 frida-server가 launchd에 등록되어 자동 실행됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;즉, 별도로 frida-server를 실행하지 않아도, PC에서 바로 attach가 가능합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;Android vs iOS&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.5332%; height: 126px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;항목&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;&amp;nbsp;Android&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;iOS&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;기본 권한&lt;/td&gt;
&lt;td&gt;일반 사용자&lt;/td&gt;
&lt;td&gt;root&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;앱 간 접근&lt;/td&gt;
&lt;td&gt;X 불가능&lt;/td&gt;
&lt;td&gt;O 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;frida-server 실행&lt;/td&gt;
&lt;td&gt;수동 (adb shell로)&lt;/td&gt;
&lt;td&gt;자동 (설치 시 등록됨)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;루팅/탈옥 필요&lt;/td&gt;
&lt;td&gt;필요&lt;/td&gt;
&lt;td&gt;필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;설치 방식&lt;/td&gt;
&lt;td&gt;binary push&lt;/td&gt;
&lt;td&gt;.deb 패키지 설치&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot; data-start=&quot;1535&quot; data-end=&quot;1546&quot;&gt;3줄 요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1548&quot; data-end=&quot;1708&quot;&gt;
&lt;li data-start=&quot;1548&quot; data-end=&quot;1603&quot;&gt;&lt;b&gt;Android는&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;보안이 강력한 구조여서 frida-server를 따로 실행해야 한다.&lt;/li&gt;
&lt;li data-start=&quot;1604&quot; data-end=&quot;1669&quot;&gt;&lt;b&gt;iOS는&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;시스템에 루트 접근이 가능하고 launchd로 자동 실행되므로 별도 실행이 필요 없다.&lt;/li&gt;
&lt;li data-start=&quot;1670&quot; data-end=&quot;1708&quot;&gt;운영체제의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;보안 정책과 권한 모델 차이&lt;/b&gt;에서 비롯된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>teppi</author>
      <guid isPermaLink="true">https://teppi.tistory.com/18</guid>
      <comments>https://teppi.tistory.com/18#entry18comment</comments>
      <pubDate>Mon, 3 Aug 2026 17:42:32 +0900</pubDate>
    </item>
  </channel>
</rss>