<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>My email bounced back. Retrying with the public mailing list.</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>"Sean Park (RD-AU)" <<a href="mailto:spark@trendmicro.com">spark@trendmicro.com</a>><br>
<span style="font-weight:bold">Date: </span>Monday, 18 January 2016 10:02 am<br>
<span style="font-weight:bold">To: </span>angr <<a href="mailto:angr@lists.cs.ucsb.edu">angr@lists.cs.ucsb.edu</a>><br>
<span style="font-weight:bold">Subject: </span>Angr performance<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Hi All,</div>
<div><br>
</div>
<div>I know angr was not designed specifically for malware analysis. Iím just trying to figure out what angr component actually impacts the performance since I saw it takes about 1 min to XOR-decode 660bytes of data with no symbolic initial condition set at
 the entry point. In real life, malware unpacks tens or hundreds of kilobytes at runtime in multiple layers at arbitrary locations. So this performance overhead is difficult to tolerate from malware analysis standpoint.</div>
<ul>
<li>Does the performance overhead mainly stem from IR translation at each instruction (also with SYMBOLIC_INITIAL_VALUES flag) ?</li><li>TRACK_ACTION_HISTORY flag is not enabled by default. So taint tracking (DO_XXX, TRACK_MEMORY_XXX, TRACK_REGISTER_XXX<span style="font-style: italic;">)</span> isnít the major contributor of this overhead. Please comment.</li><li>Is it TRACK_CONSTRAINT_ACTIONS that causes this overhead?</li></ul>
<div>It will be much appreciated if you enlighten me with the cause of performance overhead. Iím only trying to understand the problem.</div>
<div><br>
</div>
<div>Sean</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>"Sean Park (RD-AU)" <<a href="mailto:spark@trendmicro.com">spark@trendmicro.com</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, 13 January 2016 9:35 am<br>
<span style="font-weight:bold">To: </span>Yan <<a href="mailto:zardus@gmail.com">zardus@gmail.com</a>>, Fish Wang <<a href="mailto:fish@cs.ucsb.edu">fish@cs.ucsb.edu</a>><br>
<span style="font-weight:bold">Cc: </span>"Sean Park (RD-AU)" <<a href="mailto:spark@trendmicro.com">spark@trendmicro.com</a>>, angr <<a href="mailto:angr@lists.cs.ucsb.edu">angr@lists.cs.ucsb.edu</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [angr] CFG for self-modifying code<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Thanks for your comment, Yan.</div>
<div><br>
</div>
<div>I am trying to create CFG for an arbitrary piece of malware or shellcode, in which case you wouldnít know at which point the code will be unpacked or how many layers there are. I would go with Fishís suggestion since thatís a more strategic approach. I
 will figure it out and let you know guys how I go.</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Sean</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Yan <<a href="mailto:zardus@gmail.com">zardus@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, 12 January 2016 1:54 pm<br>
<span style="font-weight:bold">To: </span>Fish Wang <<a href="mailto:fish@cs.ucsb.edu">fish@cs.ucsb.edu</a>><br>
<span style="font-weight:bold">Cc: </span>"Sean Park (RD-AU)" <<a href="mailto:spark@trendmicro.com">spark@trendmicro.com</a>>, angr <<a href="mailto:angr@lists.cs.ucsb.edu">angr@lists.cs.ucsb.edu</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [angr] CFG for self-modifying code<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">If you know when the shellcode is fully unpacked (if such a point exists), you can push the memory contents back into CLE (Andrew can probably give you some pointers on doing this) and then simply treat it as a separate program with a different
 entry point. It could be cool to have official API support for such an action, actually (if you want to get your hands dirty and send along a PR!).
<div><br>
</div>
<div>- Yan</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Jan 11, 2016 at 6:51 PM, Fish Wang <span dir="ltr">
<<a href="mailto:fish@cs.ucsb.edu" target="_blank">fish@cs.ucsb.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="ZH-CN" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Hi Sean,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">CFG does not support self-modifying code right now (since itís pure static analysis). You might want to use symbolic execution in angr
 to execute or dump all the shellcode being executed. With that information, itís very easy to show addresses, instructions, and even states of everything along the path. If you want to generate a CFG for self-modifying code, you really have to loyally simulate
 the execution, which is difficult for a static analysis to do.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Weíve done it for some CTF challenges (that has some simple unpacking or self-modification mechanisms). They are not included in the
 angr-doc repo though, sorry :-(<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Best,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Fish<u></u><u></u></span></p>
<p class="MsoNormal"><a name="-2011488250__MailEndCompose"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><u></u> <u></u></span></a></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span lang="EN-US" style="font-size: 11pt; font-family: Calibri, sans-serif;"> angr [mailto:<a href="mailto:angr-bounces@lists.cs.ucsb.edu" target="_blank">angr-bounces@lists.cs.ucsb.edu</a>]
<b>On Behalf Of </b><a href="mailto:spark@trendmicro.com" target="_blank">spark@trendmicro.com</a><br>
<b>Sent:</b> Monday, January 11, 2016 7:58 PM<br>
<b>To:</b> <a href="mailto:angr@lists.cs.ucsb.edu" target="_blank">angr@lists.cs.ucsb.edu</a><br>
<b>Subject:</b> [angr] CFG for self-modifying code<u></u><u></u></span></p>
</div>
</div>
<div>
<div class="h5">
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Hi people,<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">I was trying to get CFG for a self-modifying shellcode. I used the following code.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><u></u> <u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">project = angr.Project('shellcode.exe', support_selfmodifying_code=True, load_options={'auto_load_libs':False})<u></u><u></u></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">cfg = project.analyses.CFG(keep_state=True, enable_symbolic_back_traversal=True)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">It appears angr creates a CFG for the original code instead of the modified code. Is there any way to get a CFG by symbolically executing the
 code? Any example code to do this showing address and disassembly for each path will be much appreciated.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Regards,<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Sean<u></u><u></u></span></p>
</div>
<table border="0" cellpadding="0">
<tbody>
<tr>
<td style="background:white;padding:.75pt .75pt .75pt .75pt">
<table border="0" cellpadding="0">
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<pre><span lang="EN-US"><u></u> <u></u></span></pre>
<pre><span lang="EN-US">TREND MICRO EMAIL NOTICE<u></u><u></u></span></pre>
<pre><span lang="EN-US">The information contained in this email and any attachments is confidential <u></u><u></u></span></pre>
<pre><span lang="EN-US">and may be subject to copyright or other intellectual property protection. <u></u><u></u></span></pre>
<pre><span lang="EN-US">If you are not the intended recipient, you are not authorized to use or <u></u><u></u></span></pre>
<pre><span lang="EN-US">disclose this information, and we request that you notify us by reply mail or<u></u><u></u></span></pre>
<pre><span lang="EN-US">telephone and delete the original message from your mail system.<u></u><u></u></span></pre>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
angr mailing list<br>
<a href="mailto:angr@lists.cs.ucsb.edu">angr@lists.cs.ucsb.edu</a><br>
<a href="https://lists.cs.ucsb.edu/mailman/listinfo/angr" rel="noreferrer" target="_blank">https://lists.cs.ucsb.edu/mailman/listinfo/angr</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</span></div>
</div>
</span></div>
</div>
</span>
</body>
</html>

<table><tr><td bgcolor=#ffffff><font color=#000000><pre><table class="TM_EMAIL_NOTICE"><tr><td><pre>
TREND MICRO EMAIL NOTICE
The information contained in this email and any attachments is confidential 
and may be subject to copyright or other intellectual property protection. 
If you are not the intended recipient, you are not authorized to use or 
disclose this information, and we request that you notify us by reply mail or
telephone and delete the original message from your mail system.
</pre></td></tr></table></pre></font></td></tr></table>