<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tools on sylvie</title>
    <link>https://sylvie.fyi/tools/</link>
    <description>Recent content in Tools on sylvie</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 03 Feb 2025 20:35:36 -0500</lastBuildDate><atom:link href="https://sylvie.fyi/tools/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Kullback Test</title>
      <link>https://sylvie.fyi/tools/kullback/</link>
      <pubDate>Mon, 03 Feb 2025 20:35:36 -0500</pubDate>
      
      <guid>https://sylvie.fyi/tools/kullback/</guid>
      <description>&lt;p&gt;This is based on &lt;a href=&#34;https://corgi.rip/blog/kullback-in-ctf/&#34;&gt;corgo&amp;rsquo;s&lt;/a&gt; writeup explaining how the Kullback test can be useful for solving
cryptography CTF challenges.&lt;/p&gt;
&lt;p&gt;I wrote this using WebAssembly, all of the calculations are performed locally in your browser. The source code can be found on &lt;a href=&#34;https://github.com/sy1vi3/kullback-wasm&#34;&gt;my github&lt;/a&gt;.&lt;/p&gt;

 

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://sylvie.fyi/tools/kullback/kullback.css&#34;&gt;
&lt;script src=&#34;https://sylvie.fyi/tools/kullback/kullback.js&#34;&gt;&lt;/script&gt;
&lt;div class=&#34;kullback-container&#34;&gt;
    &lt;div class=&#34;data-input-box&#34;&gt;
        &lt;div class=&#34;input-type-choices&#34;&gt;
            &lt;span class=&#34;input-type-choice selected&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;utf-8&#34;&gt;utf-8&lt;/span&gt;
            &lt;span class=&#34;input-type-choice&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;hex&#34;&gt;hex&lt;/span&gt;
            &lt;span class=&#34;input-type-choice&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;base64&#34;&gt;base64&lt;/span&gt;
            &lt;span class=&#34;input-type-choice&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;binary&#34;&gt;binary&lt;/span&gt;
            &lt;span class=&#34;input-type-choice file&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;file&#34;&gt;file&lt;/span&gt;
        &lt;/div&gt;
        &lt;textarea id=&#34;kullback-input&#34; rows=&#34;5&#34; cols=&#34;50&#34; onkeyup=&#34;runKullback()&#34; placeholder=&#34;mrrp meow&#34;&gt;&lt;/textarea&gt;
        &lt;label for=&#34;fileInput&#34; class=&#34;file-input-label&#34;&gt;&lt;span class=&#34;file-label-text&#34;&gt;&lt;span class=&#34;file-name&#34;&gt;choose file&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;file-size&#34;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/label&gt;
        &lt;input type=&#34;file&#34; id=&#34;fileInput&#34;&gt;
        &lt;div class=&#34;options-collapse closed&#34;&gt;&lt;i class=&#34;fas fa-caret-right options-icon&#34;&gt;&lt;/i&gt; options&lt;/div&gt;
        &lt;div class=&#34;data-options&#34; style=&#34;height: 0px;&#34;&gt;
            &lt;div class=&#34;data-option max-length&#34;&gt;max key length: &lt;input type=&#34;number&#34; id=&#34;maxKeyLengthInput&#34; value=&#34;60&#34; onkeyup=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
            &lt;div class=&#34;data-option ignore-errors&#34;&gt;ignore errors: &lt;input type=&#34;checkbox&#34; id=&#34;ignoreErrors&#34; onclick=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
            &lt;div class=&#34;data-option show-peaks&#34;&gt;show peak labels: &lt;input type=&#34;checkbox&#34; id=&#34;alwaysOnCheckbox&#34; onclick=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
            &lt;div class=&#34;data-option label-threshold&#34;&gt;peak threshold: &lt;input type=&#34;number&#34; id=&#34;thInput&#34; value=&#34;0.85&#34; onkeyup=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;canvas id=&#34;graphCanvas&#34; onmousemove=&#34;onCanvasMouseMove(event)&#34; onmouseleave=&#34;onCanvasMouseLeave()&#34; class=&#34;hidden&#34;&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;script src=&#34;https://sylvie.fyi/tools/kullback/tool.js&#34;&gt;&lt;/script&gt;</description>
      <content>&lt;p&gt;This is based on &lt;a href=&#34;https://corgi.rip/blog/kullback-in-ctf/&#34;&gt;corgo&amp;rsquo;s&lt;/a&gt; writeup explaining how the Kullback test can be useful for solving
cryptography CTF challenges.&lt;/p&gt;
&lt;p&gt;I wrote this using WebAssembly, all of the calculations are performed locally in your browser. The source code can be found on &lt;a href=&#34;https://github.com/sy1vi3/kullback-wasm&#34;&gt;my github&lt;/a&gt;.&lt;/p&gt;

 

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://sylvie.fyi/tools/kullback/kullback.css&#34;&gt;
&lt;script src=&#34;https://sylvie.fyi/tools/kullback/kullback.js&#34;&gt;&lt;/script&gt;
&lt;div class=&#34;kullback-container&#34;&gt;
    &lt;div class=&#34;data-input-box&#34;&gt;
        &lt;div class=&#34;input-type-choices&#34;&gt;
            &lt;span class=&#34;input-type-choice selected&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;utf-8&#34;&gt;utf-8&lt;/span&gt;
            &lt;span class=&#34;input-type-choice&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;hex&#34;&gt;hex&lt;/span&gt;
            &lt;span class=&#34;input-type-choice&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;base64&#34;&gt;base64&lt;/span&gt;
            &lt;span class=&#34;input-type-choice&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;binary&#34;&gt;binary&lt;/span&gt;
            &lt;span class=&#34;input-type-choice file&#34; onclick=&#34;inputTypeChange(this)&#34; value=&#34;file&#34;&gt;file&lt;/span&gt;
        &lt;/div&gt;
        &lt;textarea id=&#34;kullback-input&#34; rows=&#34;5&#34; cols=&#34;50&#34; onkeyup=&#34;runKullback()&#34; placeholder=&#34;mrrp meow&#34;&gt;&lt;/textarea&gt;
        &lt;label for=&#34;fileInput&#34; class=&#34;file-input-label&#34;&gt;&lt;span class=&#34;file-label-text&#34;&gt;&lt;span class=&#34;file-name&#34;&gt;choose file&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;file-size&#34;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/label&gt;
        &lt;input type=&#34;file&#34; id=&#34;fileInput&#34;&gt;
        &lt;div class=&#34;options-collapse closed&#34;&gt;&lt;i class=&#34;fas fa-caret-right options-icon&#34;&gt;&lt;/i&gt; options&lt;/div&gt;
        &lt;div class=&#34;data-options&#34; style=&#34;height: 0px;&#34;&gt;
            &lt;div class=&#34;data-option max-length&#34;&gt;max key length: &lt;input type=&#34;number&#34; id=&#34;maxKeyLengthInput&#34; value=&#34;60&#34; onkeyup=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
            &lt;div class=&#34;data-option ignore-errors&#34;&gt;ignore errors: &lt;input type=&#34;checkbox&#34; id=&#34;ignoreErrors&#34; onclick=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
            &lt;div class=&#34;data-option show-peaks&#34;&gt;show peak labels: &lt;input type=&#34;checkbox&#34; id=&#34;alwaysOnCheckbox&#34; onclick=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
            &lt;div class=&#34;data-option label-threshold&#34;&gt;peak threshold: &lt;input type=&#34;number&#34; id=&#34;thInput&#34; value=&#34;0.85&#34; onkeyup=&#34;reRunTest()&#34;/&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;canvas id=&#34;graphCanvas&#34; onmousemove=&#34;onCanvasMouseMove(event)&#34; onmouseleave=&#34;onCanvasMouseLeave()&#34; class=&#34;hidden&#34;&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;script src=&#34;https://sylvie.fyi/tools/kullback/tool.js&#34;&gt;&lt;/script&gt;


</content>
    </item>
    
  </channel>
</rss>
