<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AFL on Park, Geon (re-st)</title><link>https://re-st.github.io/blog/afl/</link><description>Recent content in AFL on Park, Geon (re-st)</description><generator>Hugo</generator><language>ko-kr</language><copyright>Copyright © 2026, Geon Park.</copyright><lastBuildDate>Wed, 29 Apr 2026 14:28:04 +0900</lastBuildDate><atom:link href="https://re-st.github.io/blog/afl/index.xml" rel="self" type="application/rss+xml"/><item><title>AFL (AFL++) 소스코드 수정 시 디버깅 - gdb 사용</title><link>https://re-st.github.io/log/afl-afl-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C-%EC%88%98%EC%A0%95-%EC%8B%9C-%EB%94%94%EB%B2%84%EA%B9%85-gdb-%EC%82%AC%EC%9A%A9/</link><pubDate>Mon, 06 Oct 2025 21:27:24 +0900</pubDate><guid>https://re-st.github.io/log/afl-afl-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C-%EC%88%98%EC%A0%95-%EC%8B%9C-%EB%94%94%EB%B2%84%EA%B9%85-gdb-%EC%82%AC%EC%9A%A9/</guid><description>GDB로 afl-fuzz 내부 크래시 파헤치기</description></item><item><title>AFL (AFL++) 디버깅 - setaffinity 문제와 해결 (bind_to_free_cpu에서 에러)</title><link>https://re-st.github.io/log/afl-afl-%EB%94%94%EB%B2%84%EA%B9%85-setaffinity-%EB%AC%B8%EC%A0%9C%EC%99%80-%ED%95%B4%EA%B2%B0-bind_to_free_cpu%EC%97%90%EC%84%9C-%EC%97%90%EB%9F%AC/</link><pubDate>Mon, 22 Sep 2025 12:00:00 +0900</pubDate><guid>https://re-st.github.io/log/afl-afl-%EB%94%94%EB%B2%84%EA%B9%85-setaffinity-%EB%AC%B8%EC%A0%9C%EC%99%80-%ED%95%B4%EA%B2%B0-bind_to_free_cpu%EC%97%90%EC%84%9C-%EC%97%90%EB%9F%AC/</guid><description>&lt;p&gt;&lt;strong&gt;문제 예시&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&lt;/span&gt;&lt;span&gt;&amp;gt; ./afl-fuzz &lt;span style="color:#666"&gt;(&lt;/span&gt;후략&lt;span style="color:#666"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&lt;/span&gt;&lt;span&gt;afl-fuzz 2.57b by &amp;lt;lcamtuf@google.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style="color:#666"&gt;[&lt;/span&gt;+&lt;span style="color:#666"&gt;]&lt;/span&gt; You have &lt;span style="color:#40a070"&gt;64&lt;/span&gt; CPU cores and &lt;span style="color:#40a070"&gt;2&lt;/span&gt; runnable tasks &lt;span style="color:#666"&gt;(&lt;/span&gt;utilization: 3%&lt;span style="color:#666"&gt;)&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style="color:#666"&gt;[&lt;/span&gt;+&lt;span style="color:#666"&gt;]&lt;/span&gt; Try parallel &lt;span style="color:#007020"&gt;jobs&lt;/span&gt; - see docs/parallel_fuzzing.txt.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style="color:#666"&gt;[&lt;/span&gt;*&lt;span style="color:#666"&gt;]&lt;/span&gt; Checking CPU core loadout...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style="color:#666"&gt;[&lt;/span&gt;+&lt;span style="color:#666"&gt;]&lt;/span&gt; Found a free CPU core, binding to &lt;span style="color:#60a0b0;font-style:italic"&gt;#0.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style="color:#666"&gt;[&lt;/span&gt;-&lt;span style="color:#666"&gt;]&lt;/span&gt; SYSTEM ERROR : sched_setaffinity failed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&lt;/span&gt;&lt;span&gt; Stop location : bind_to_free_cpu&lt;span style="color:#666"&gt;()&lt;/span&gt;, afl-fuzz.c:1134
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&lt;/span&gt;&lt;span&gt; OS message : Invalid argument
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;해결&lt;/strong&gt;
이를 우회하기 위한 환경변수인 &lt;code&gt;AFL_NO_AFFINITY&lt;/code&gt;를 설정한다.&lt;/p&gt;</description></item><item><title>AFL (AFL++) 디버깅 - ASAN으로 instrument하고 돌리기</title><link>https://re-st.github.io/howto/afl-afl-%EB%94%94%EB%B2%84%EA%B9%85-asan%EC%9C%BC%EB%A1%9C-instrument%ED%95%98%EA%B3%A0-%EB%8F%8C%EB%A6%AC%EA%B8%B0/</link><pubDate>Wed, 03 Sep 2025 14:00:00 +0900</pubDate><guid>https://re-st.github.io/howto/afl-afl-%EB%94%94%EB%B2%84%EA%B9%85-asan%EC%9C%BC%EB%A1%9C-instrument%ED%95%98%EA%B3%A0-%EB%8F%8C%EB%A6%AC%EA%B8%B0/</guid><description>&lt;p&gt;목차&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;AFL&lt;/li&gt;
&lt;li&gt;AFL++&lt;/li&gt;
&lt;li&gt;입힌 뒤 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="afl---makefile의-cflags를-수정한다"&gt;AFL - Makefile의 CFLAGS를 수정한다.&lt;/h1&gt;
&lt;p&gt;Makefile의 CFLAGS부분에 &lt;code&gt;-fsanitize=address&lt;/code&gt;을 추가한다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-Makefile" data-lang="Makefile"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#bb60d5"&gt;CFLAGS&lt;/span&gt;     &lt;span style="color:#666"&gt;+=&lt;/span&gt; -fsanitize&lt;span style="color:#666"&gt;=&lt;/span&gt;address -Wall -D_FORTIFY_SOURCE&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#40a070"&gt;2&lt;/span&gt; -g -Wno-pointer-sign &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;        &lt;span style="color:#bb60d5"&gt;-DAFL_PATH&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#4070a0;font-weight:bold"&gt;\&amp;#34;\(&lt;/span&gt;&lt;span style="color:#666"&gt;(&lt;/span&gt;HELPER_PATH&lt;span style="color:#666"&gt;)&lt;/span&gt;&lt;span style="color:#4070a0;font-weight:bold"&gt;\&amp;#34;&lt;/span&gt; -DDOC_PATH&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#4070a0;font-weight:bold"&gt;\&amp;#34;\)&lt;/span&gt;&lt;span style="color:#666"&gt;(&lt;/span&gt;DOC_PATH&lt;span style="color:#666"&gt;)&lt;/span&gt;&lt;span style="color:#4070a0;font-weight:bold"&gt;\&amp;#34;&lt;/span&gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt;        &lt;span style="color:#bb60d5"&gt;-DBIN_PATH&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#4070a0;font-weight:bold"&gt;\&amp;#34;&lt;/span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;$(&lt;/span&gt;BIN_PATH&lt;span style="color:#007020;font-weight:bold"&gt;)&lt;/span&gt;&lt;span style="color:#4070a0;font-weight:bold"&gt;\&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="실패담"&gt;실패담&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;export AFL_USE_ASAN=1&lt;/code&gt; 은 왜인지 먹지 않는다.&lt;/p&gt;
&lt;h1 id="afl---asan_build-환경변수를-설정한다"&gt;AFL++ - ASAN_BUILD 환경변수를 설정한다.&lt;/h1&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;cd&lt;/span&gt; ./AFLplusplus &lt;span style="color:#666"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#bb60d5"&gt;ASAN_BUILD&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#4070a0"&gt;&amp;#34;1&amp;#34;&lt;/span&gt; make clean all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="asan-crashlog에-줄-번호가-나오지-않을-것이다-addr2line을-쓰자"&gt;ASAN crashlog에 줄 번호가 나오지 않을 것이다. addr2line을 쓰자.&lt;/h2&gt;
&lt;p&gt;ASAN crashlog에 나온 포인터를 addr2line으로 확인한다.&lt;/p&gt;</description></item><item><title>Implementation on AFL++ has cons too</title><link>https://re-st.github.io/essay/implementation-on-afl-has-cons-too/</link><pubDate>Thu, 24 Jul 2025 00:00:00 +0900</pubDate><guid>https://re-st.github.io/essay/implementation-on-afl-has-cons-too/</guid><description>&lt;p&gt;&lt;a href="https://re-st.github.io/category/%EB%82%B4-%EC%97%90%EC%84%B8%EC%9D%B4/"&gt;[분류] 에세이&lt;/a&gt;&lt;/p&gt;</description></item><item><title>trace_bits</title><link>https://re-st.github.io/research/trace_bits/</link><pubDate>Mon, 01 Jul 2024 12:00:00 +0900</pubDate><guid>https://re-st.github.io/research/trace_bits/</guid><description>AFL 퍼징이 사용하는 매 실행 커버리지 기록 도구</description></item><item><title>virgin_bits</title><link>https://re-st.github.io/research/virgin_bits/</link><pubDate>Mon, 24 Jun 2024 12:00:00 +0900</pubDate><guid>https://re-st.github.io/research/virgin_bits/</guid><description>AFL 퍼징이 사용하는 역대 실행 커버리지 기록 도구</description></item><item><title>퍼징에서의 큐 컬링 (인풋 줄세우기)</title><link>https://re-st.github.io/research/%ED%8D%BC%EC%A7%95%EC%97%90%EC%84%9C%EC%9D%98-%ED%81%90-%EC%BB%AC%EB%A7%81-%EC%9D%B8%ED%92%8B-%EC%A4%84%EC%84%B8%EC%9A%B0%EA%B8%B0/</link><pubDate>Fri, 01 Sep 2023 12:00:00 +0900</pubDate><guid>https://re-st.github.io/research/%ED%8D%BC%EC%A7%95%EC%97%90%EC%84%9C%EC%9D%98-%ED%81%90-%EC%BB%AC%EB%A7%81-%EC%9D%B8%ED%92%8B-%EC%A4%84%EC%84%B8%EC%9A%B0%EA%B8%B0/</guid><description>퍼징에서 다음 시드를 선택하는 알고리즘</description></item></channel></rss>