<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Defense - Category - Mustakimur Khandaker</title>
        <link>https://www.mustakim.info/categories/defense/</link>
        <description>Defense - Category - Mustakimur Khandaker</description>
        <generator>Mustakim</generator><language>en</language><managingEditor>mustakcsecuet@gmail.com (Mustakimur Khandaker)</managingEditor>
            <webMaster>mustakcsecuet@gmail.com (Mustakimur Khandaker)</webMaster><lastBuildDate>Fri, 22 Feb 2019 23:20:34 -0400</lastBuildDate><atom:link href="https://www.mustakim.info/categories/defense/" rel="self" type="application/rss+xml" /><item>
    <title>Building Your Own Clang LibTool: A Step-by-Step Tutorial</title>
    <link>https://www.mustakim.info/posts/clang-libtool/</link>
    <pubDate>Fri, 22 Feb 2019 23:20:34 -0400</pubDate>
    <author>mustakcsecuet@gmail.com (Mustakimur Khandaker)</author>
    <guid>https://www.mustakim.info/posts/clang-libtool/</guid>
    <description><![CDATA[<p>Technically, Clang receives an Abstract Syntax Tree (AST), build by Clang Parser (clang/Parse/*), not the input C/C++ code (although Parser is part of Clang code base). There is obviously a Lexer in between this process, but neither Lexer nor Parser is our focus in this tutorial. Clang is responsible to convert the AST to LLVM IR which is implemented in Clang CodeGen. Once source code is translated to LLVM IR, all instrumentation have to be in LLVM IR. It is certainly easy to instrument in fine-grain language like LLVM-IR then complicated top-level source code. But in certain cases (e.g. code formatter, code documentation etc.), it is expected to modify the source code (overwrite the source file).</p>]]></description>
</item>
<item>
    <title>SVF: Interprocedural Static Value-Flow Analysis in LLVM</title>
    <link>https://www.mustakim.info/posts/svf-interprocedural-static-value-flow-analysis-in-llvm/</link>
    <pubDate>Sun, 09 Dec 2018 18:27:12 -0400</pubDate>
    <author>mustakcsecuet@gmail.com (Mustakimur Khandaker)</author>
    <guid>https://www.mustakim.info/posts/svf-interprocedural-static-value-flow-analysis-in-llvm/</guid>
    <description><![CDATA[<p>SVF is a static analysis framework implemented in LLVM that allows value-flow construction and pointer analysis to be performed in an iterative manner (sparse analysis – analysis conducted into stages, from overapproximate analysis to precise, expensive analysis). It uses (default) points-to information from Andersen’s analysis and constructs an interprocedural memory SSA (Static-Single Assignment) form where def-use chains of both top-level and address-taken variables are included. From the design perspective, the SVF can be seen as two modules: pointer analysis and memory SSA. To be capable of allowing another points-to analysis than Andersen’s, the design of pointer analysis is split into three parts: Graph, Rules, and Solver. To give control of scalability and precision, the memory SSA is designed to allow users to partition memory into a set of regions. Comparing to previous work, SVF takes a big leap by constructing an interprocedural value-flow graph. To identify bugs, it is an important requirement to be able to analyze a program across its procedural boundaries.</p>]]></description>
</item>
<item>
    <title>Intel Pin Tool</title>
    <link>https://www.mustakim.info/posts/intel_pin/</link>
    <pubDate>Thu, 04 May 2017 16:48:58 -0400</pubDate>
    <author>mustakcsecuet@gmail.com (Mustakimur Khandaker)</author>
    <guid>https://www.mustakim.info/posts/intel_pin/</guid>
    <description><![CDATA[<p>The most difficult part of doing research is prototyping. Especially when it’s about security, its a must one. A researcher has to prove the proposed system is legitimate. It’s true for both attack and defense. Researchers greatly depend on existing technology and software to implement their prototype. It cuts the development time to start from scratch. But on another hand, it is also complicated to work on others work. Most cases the technology is also a prototype from other researcher and presumably unstable, have not enough documentation and very limited feature. Luck sometimes favor for researcher too. Today I am going to discuss how I learned to use Intel Pin tool. It’s developed by Intel research team and well documented for reference. The only limitation is it is only usable for Intel architecture.</p>]]></description>
</item>
</channel>
</rss>
