<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14114712</id><updated>2012-01-28T04:51:17.183-08:00</updated><category term='debug'/><category term='embedded'/><category term='vpn'/><category term='cisco'/><category term='vulnerability researc'/><category term='netscreen'/><title type='text'>ADD / XOR / ROL</title><subtitle type='html'>A blog about reverse engineering, mathematics, politricks and some more ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default?start-index=101&amp;max-results=100'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>130</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14114712.post-3058966329116482645</id><published>2011-09-09T02:37:00.000-07:00</published><updated>2011-09-09T02:56:40.971-07:00</updated><title type='text'>Short note on static analysis and lobbying</title><content type='html'>After getting annoyed with Twitters 140-char limit to make a sane point, I switch back to an old-school medium that allows actual arguments ;)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was commenting on the dishonesty in lobbying for legally mandated static analysis with "cyber security" as an underlying argument.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think this is a total bullshit argument.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Static analysis is good at removing a large number of low-hanging fruit when it comes to both reliability and security bugs. But: Static analysis alone fails to significantly increase the resilience of real-world systems against determined attacks (although it may increase the resilience to really casual attacks).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I think it is good &amp;amp; sane to mandate static analysis for some pieces of code for reliability reasons. I'd rather fly in an airplane with formally verified avionics code. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The reality is though that even the most sophisticated static analysis systems nowadays are not terribly good at dealing with dynamically allocated memory, suffer from grotesque overapproximation as a result of summarizing dynamically allocated memory, and in general don't deal with many common programming patterns very well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Avionics code without dynamic memory allocation and a team of people getting a static analyzer going profits a lot from static analysis. The browser that I am typing this in profits much less: It uses a gazillion programming idioms that are notoriously hard to analyze. No existing and generally available static analysis will significantly impact the difficulty of finding a remotely exploitable bug in this browser. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, in short: Using SA can have great benefits in particular scenarios. Verifying an avionics system is a great example. Verifying a microkernel that allows me to safely sandbox my terribly buggy browser is another example. Mandating SA for general software development is insanity, though: The current state of research (let's not even speak about available products) isn't capable of impacting the resiliency (against determined attack) of a browser or document viewer significantly. Let's not kid ourselves: The technology just isn't there, and won't be for another few years. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3058966329116482645?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3058966329116482645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3058966329116482645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3058966329116482645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3058966329116482645'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2011/09/short-note-on-static-analysis-and.html' title='Short note on static analysis and lobbying'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3391457471315561664</id><published>2011-03-01T13:29:00.000-08:00</published><updated>2011-03-01T13:35:47.822-08:00</updated><title type='text'>Wow ...</title><content type='html'>&lt;span class="Apple-style-span" &gt;The company that produces your favourite security researchers' favourite tools has been acquired by Google. You, dear reader, have every right to be surprised; we ourselves are still recovering from the happy surprise.&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: medium; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;"In mathematics, you don't understand things. You just get used to them."&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: medium; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;-- John von Neumann&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Old Jonny was right, but you might substitute "mathematics" with "life" in the above.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;zynamics was never designed to be acquired. To be quite honest, zynamics wasn't designed at all -- it mostly just "happened". We never had a plan outside of "build the tools that we want to have, others will then want to have them too". We never took venture capital, and the only business plan I ever created was a half-baked attempt made with wizard software. It was never updated. The fact that we exceeded the forecasts was mostly due to me being an overly pessimistic planner.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Calling our structure engineering-centric would be an understatement; our everything-to-engineering ratio is roughly 7% (if I may still count myself as an engineer).&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;As we grew, the problems that we wanted to solve grew too -- at a much faster rate than our resources to solve them. The result was that I spent more and more time running around managing, doing sales, and acquiring resources so that my team could do the technical work that I love and am good at. I wanted the chance to focus on technical issues again.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;So at some point in this process we started talking with Google, much to our own surprise. We had not anticipated this -- we are not web-centric, we are far away from their core business: At first glance the acquisition seemed like a strange choice for both sides.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Yes, we have excellent technology and a core of great engineers; we were just surprised about the fact that Google would be interested. It was certainly not an obvious pick.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Then again, Google shares an engineering-centric culture, and has just the resources we're lacking.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: medium; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;"The purpose of computing is insight, not numbers."&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: medium; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;-- Richard Hamming&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;A friend of mine (rightfully) mocked me for trying to perform serious computation on something that strongly resembles a pocket calculator. According to him, there's roughly one and a half computers in this world -- and Google happens to have one of them. I tend to concur.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;So, as of today, I can say that the entire zynamics team has joined Google. I am looking forward to tackling problems with the resources that Google can provide.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;While there will be some changes, our products are not going away - on the contrary !&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: medium; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;"Et si tu me demandes quel est donc ce 'propos' que je poursuis a longeur a mille pages, je repondrai: c'est de faire le recit, et par la-meme la decouverte, de l'aventure interieure qu'a ete et qu'est ma vie."&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: medium; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;-- Alexandre Grothendiek&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-size: 11pt; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Running zynamics with my team was an exciting experience, but I have no doubt that the future will be every bit as exciting.&lt;/span&gt;&lt;/span&gt;&lt;div style="background-color: transparent; "&gt;&lt;span style="font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; " &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent; "&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3391457471315561664?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3391457471315561664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3391457471315561664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3391457471315561664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3391457471315561664'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2011/03/wow.html' title='Wow ...'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-8623296979330020118</id><published>2010-03-02T10:00:00.000-08:00</published><updated>2010-03-02T10:09:37.076-08:00</updated><title type='text'>Trainings class with SP and me at CSW !</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;SP and me will be teaching a trainings class this year at CanSecWest. If you have some background in reverse engineering and want to&lt;br /&gt;&lt;ul&gt;&lt;li&gt;become a more efficient reverse engineer&lt;/li&gt;&lt;li&gt;become a more efficient bug hunter&lt;/li&gt;&lt;li&gt;become better at understanding stuff like Acrobat's JScript Engine&lt;/li&gt;&lt;/ul&gt;this class is for you. We will teach you stuff including but not limited to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quickly find where the interesting parts of the executable are: Who is parsing user input ? Who is responsible for the crypto ?&lt;/li&gt;&lt;li&gt;Save time: Identify what open-source libraries are statically linked into the executable. Why audit binary when you can read source ?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Want to understand what Acrobat is doing ? Or most C++ programs nowadays ? Generate UML diagrams from binaries, showing you all the classes and their hierarchy.&lt;/li&gt;&lt;/ul&gt;Anyhow, follow &lt;a href="http://cansecwest.com/dojoreveng.html"&gt;this link&lt;/a&gt; if you are interested. I think it's going to be a blast.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-8623296979330020118?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/8623296979330020118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=8623296979330020118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8623296979330020118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8623296979330020118'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2010/03/trainings-class-with-sp-and-me-at-csw.html' title='Trainings class with SP and me at CSW !'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4753159888842469997</id><published>2010-02-08T14:02:00.000-08:00</published><updated>2010-02-08T14:31:43.454-08:00</updated><title type='text'>Tax evasion and welfare fraud</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;now that all the technical stuff is going to the &lt;a href="http://blog.zynamics.com"&gt;zynamics company blog&lt;/a&gt; , I will have some room here for writing about other topics. Beware: Politics might be involved, or just general rants.&lt;br /&gt;&lt;br /&gt;Tonight I will write a little bit about tax evasion and welfare fraud. I somehow wound up in a discussion about the topic, and the end result was that I spent 20 minutes doing a bit of research on the topic.&lt;br /&gt;&lt;br /&gt;Background: The German government was offered a CD containing data of people that have moved money into swiss bank accounts, presumably to evade taxes. The person offering the CD claims that it contains almost exclusively data of tax evaders, and demands a fee of 2.5 million EU to provide the CD to German authorities.&lt;br /&gt;&lt;br /&gt;This situation has spawned a debate about the legality of the situation: Is it "right" for the German government to buy data that was obtained in a presumably illicit fashion ? (I intentionally avoid "illegal" here -- the person that obtained the data might be in breach of contract with his employer, but it is unclear whether he broke any criminal laws)&lt;br /&gt;&lt;br /&gt;Clearly, it is a tricky question - but the difficulty of this question is not the topic of this blog post.&lt;br /&gt;&lt;br /&gt;Recently, a German politician (who, ironically, was repeatedly involved in corruption affairs, most notably in the CDU-party-donations affair) by the name of "Roland Koch" argued that welfare fraud is a serious problem in Germany, and that 15% of all welware recipients do not actually want to work. He argued for annuling benefits of these 15% in a large conservative newspaper (the FAZ).&lt;br /&gt;&lt;br /&gt;So in todays discussion, the question came up: What is actually the "bigger" crime (in terms of financial damage): Tax evasion of welfare fraud ?&lt;br /&gt;&lt;br /&gt;It is relatively straightforward to calculate the cost of welfare fraud: Germany spent 21.7 billion EU in 2008 on the "Hartz-4" system. This includes administrative overhead. Assuming that Mr. Kochs claim has merit, and assuming that overhead is also inflated due to fraud, ~3.3 billion EU are lost annually to welfare fraud.&lt;br /&gt;&lt;br /&gt;It is much more difficult to calculate the cost of tax evasion. There are many numbers that are difficult to justify, and most appear to be made up arbitrarily. The only halfways reliable number I could find was from &lt;a href="http://www.sueddeutsche.de/wirtschaft/634/433383/text/"&gt;this article:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The amount of money generated from tax investigations that followed evasion was ~1.6 billion EU in 2004. Inflation-adjusted to 2008 at 2% inflation, this ends up being ~1.73 billion.&lt;br /&gt;&lt;br /&gt;This implies something rather interesting:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Assuming that every third tax evader is caught (which I deem more realistic, just by gut feeling, e.g. without any scientific base), tax evasion is already a much bigger problem than welfare fraud.&lt;/li&gt;&lt;/ol&gt;The question of course is: What is the actual rate of tax evasion to "getting caught" ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4753159888842469997?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4753159888842469997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4753159888842469997' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4753159888842469997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4753159888842469997'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2010/02/tax-evasion-and-welfare-fraud.html' title='Tax evasion and welfare fraud'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3866239890338916192</id><published>2010-01-19T03:15:00.000-08:00</published><updated>2010-01-19T03:17:39.935-08:00</updated><title type='text'>The new, shiny, reverse-engineering-centric zynamics blog !</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;for all those that have almost gotten sick of me posting only rarely on this blog:&lt;br /&gt;&lt;br /&gt;We have a shiny new reverse-engineering-centric blog up on &lt;a href="http://blog.zynamics.com"&gt;http://blog.zynamics.com&lt;/a&gt; ! :)&lt;br /&gt;&lt;br /&gt;The entire team will post RE-related issues there, so I think it'll be a rather good read :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3866239890338916192?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3866239890338916192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3866239890338916192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3866239890338916192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3866239890338916192'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2010/01/new-shiny-reverse-engineering-centric.html' title='The new, shiny, reverse-engineering-centric zynamics blog !'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6733067895627409592</id><published>2009-12-18T15:14:00.000-08:00</published><updated>2009-12-18T15:17:35.827-08:00</updated><title type='text'>Interesting Blog Posts</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;so while you, dear reader, are still waiting on me finally fullfilling my promise about blogging more, I have some interesting links for you :)&lt;br /&gt;&lt;br /&gt;Vincenzo Iozzo has been blogging about some cool stuff he has been doing using NaviPython, REIL, MonoREIL etc. recently, and you can read about it here:&lt;br /&gt;&lt;a href="http://viozzo.wordpress.com/2009/12/11/scripting-with-binnavi-cyclomatic-complexity/"&gt;&lt;br /&gt;http://viozzo.wordpress.com/2009/12/11/scripting-with-binnavi-cyclomatic-complexity/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://viozzo.wordpress.com/2009/12/18/finding-interesting-loops-using-monoreil/"&gt;http://viozzo.wordpress.com/2009/12/18/finding-interesting-loops-using-monoreil/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6733067895627409592?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6733067895627409592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6733067895627409592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6733067895627409592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6733067895627409592'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/12/interesting-blog-posts.html' title='Interesting Blog Posts'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6410306684834843092</id><published>2009-11-15T23:52:00.000-08:00</published><updated>2009-11-16T00:00:51.647-08:00</updated><title type='text'>Clarification to the previous post</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I thought I need to clarify something about the previous post: I was trying to explain the fact that people reacted harshly to&lt;span style="font-weight: bold;"&gt; the hin&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;t &lt;/span&gt;that a new standard is being drafted, without knowing anything about it. So I talked about the historical perspective on the old OIS draft, and what my thoughts about it were, and what I think the reasons are that researchers usually do not bother with these things much.&lt;br /&gt;&lt;br /&gt;This was &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; meant as a reaction to the ISO standard under discussion. Katie Moussouris clarifies a lot of important points &lt;a href="http://blogs.msdn.com/katie_moussouris/archive/2009/11/15/iso-what-you-did-last-summer.aspx"&gt;here&lt;/a&gt; -- and what she writes is completely sensible.&lt;br /&gt;&lt;br /&gt;Anyhow, enough of this :-). The upside of the entire discussion: I really like the pun in the above link. Yes, I know that I have a weird sense of humor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6410306684834843092?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6410306684834843092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6410306684834843092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6410306684834843092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6410306684834843092'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/11/clarification-to-previous-post.html' title='Clarification to the previous post'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2483809992277160625</id><published>2009-11-15T12:22:00.000-08:00</published><updated>2009-11-15T12:41:21.958-08:00</updated><title type='text'>Why are most researchers not a fan of standards on "responsible disclosure"</title><content type='html'>I usually try to stay away from the politics of vulnerability disclosure, mostly because I think (to paraphrase Feynman) that politics of vulnerability disclosure are as useful to the vulnerability researcher as ornithology is to birds.&lt;br /&gt;&lt;br /&gt;But it seems that the entire discussion is not going away. The intensity of the reactions to k8em0's twitter post might be partially explained by the history of this all. I'll try to refresh what I remember:&lt;br /&gt;&lt;br /&gt;A lot of the older vulnerability researchers remember the ghastly OIS attempt at forcing a standard written by a bunch of non-researchers down the throats of the research community. From the outside, it looked mostly like an attempt to kiss up to some vendors that were spending a lot of money on security review during that time.&lt;br /&gt;&lt;br /&gt;I might be stepping on some people's toes, but to me it looked like a high-school class where the dimmest students drew up guidelines on how smart students "should" behave, and gave that to the teacher in order to earn brownie points - including clauses like 'not contradicting the teacher'.&lt;br /&gt;&lt;br /&gt;Unfortunately, most of the research community prefers to &lt;span style="font-weight: bold;"&gt;do&lt;/span&gt; work instead of discussing with people that have little interesting to say about how the researchers should work. The result of this is that researchers were rarely ever involved in the entire discussion. Not for lack of opportunity, but mostly lack of interest -- if I can actually go and surf, why would I discuss with a bunch of people sitting in an office about the right way to come back to the beach ?&lt;br /&gt;&lt;br /&gt;The entire discussion has always been somewhat phony. The entire "responsible/irresponsible" angle is sligthly fraudulent. The way I see it is the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It is acceptable for AV companies to charge for signatures, which are in essence "information about malware"&lt;/li&gt;&lt;li&gt;It is acceptable for AV companies to not publish, nor provide, malware to other parties, or to charge for it&lt;/li&gt;&lt;li&gt;It is acceptable for software vendors to charge so I can use their software. It is also acceptable for them to charge more so that I can read their source code.&lt;/li&gt;&lt;li&gt;Why again should a researcher be obliged to provide information to vendors free of charge again ? &lt;/li&gt;&lt;li&gt;If anyone argues it's "responsible" to make everyone safer, I say: I'll give all my bugs to all vendors the same day that all security companies of the world provide free licenses for everyone for their software.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;But well. Honestly, I am not sure whether I should post this. I do not really feel like spending too much time discussing this. But perhaps that's part of the problem...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2483809992277160625?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2483809992277160625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2483809992277160625' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2483809992277160625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2483809992277160625'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/11/why-are-most-researchers-not-fan-of.html' title='Why are most researchers not a fan of standards on &quot;responsible disclosure&quot;'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-8038180038847319406</id><published>2009-11-10T08:44:00.001-08:00</published><updated>2009-11-10T08:48:14.276-08:00</updated><title type='text'>Low blogging frequency</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;first of all, I seriously have to apologize for the low frequency of blog posts nowadays. We have been doing a bunch of interesting things at &lt;a href="http://www.zynamics.com"&gt;work&lt;/a&gt; that I will post about shortly. Amongst the&lt;br /&gt;things on my "to-post" list are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rants on our experiences distributing VxClass&lt;/li&gt;&lt;li&gt;A method to perform exact directed graph comparison in O(1) (with some caveats ;) -- we have been sitting on this for a year or three, but were caught up in other things so writing it up fell by the wayside&lt;/li&gt;&lt;li&gt;Automated generation of byte signatures from the VxClass results&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Anyhow, expect a higher blogging frequency from this blog in the next weeks. I will restrict my use of twitter for this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-8038180038847319406?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/8038180038847319406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=8038180038847319406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8038180038847319406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8038180038847319406'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/11/low-blogging-frequency.html' title='Low blogging frequency'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-5452818450592916203</id><published>2009-10-22T08:16:00.000-07:00</published><updated>2009-10-22T08:17:28.502-07:00</updated><title type='text'>Looking for Memoryze dumps of malware</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I am looking for Memoryze dumps of various pieces of malware -- the more the merrier. Does anyone here have some ?&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-5452818450592916203?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/5452818450592916203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=5452818450592916203' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5452818450592916203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5452818450592916203'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/10/looking-for-memoryze-dumps-of-malware.html' title='Looking for Memoryze dumps of malware'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4529290199592514958</id><published>2009-09-21T11:14:00.000-07:00</published><updated>2009-09-21T11:55:08.226-07:00</updated><title type='text'>Adventures in choosing what to vote</title><content type='html'>accidental posting, not ready yet&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4529290199592514958?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4529290199592514958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4529290199592514958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4529290199592514958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4529290199592514958'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/09/adventures-in-choosing-what-to-vote.html' title='Adventures in choosing what to vote'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7092927297671206488</id><published>2009-09-05T12:24:00.000-07:00</published><updated>2009-09-05T12:42:00.343-07:00</updated><title type='text'>Restaurant Review: "Le Surfing", Les Estagnots</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I know it is a bit odd to post restaurant reviews on this RE-centric blog, but ... err ... I'll do it anyhow.&lt;br /&gt;&lt;br /&gt;So I am currently on my vacation (yay) in southwestern france -- close to Seignosse/Hossegor. On my search for wifi, I ran into a place called "Le Surfing", which is a small ... well ... surf-bar (?) at the beach "Les Estagnots".&lt;br /&gt;&lt;br /&gt;The place is definitely pretty damn relaxed -- it seems that a bunch of folks that want to be at the beach decided the easiest way to finance it is through this bar. When I first walked in, I was greeted with "hey, there's a customer, we need someone behind the bar".&lt;br /&gt;&lt;br /&gt;So tonight I decided to eat here. After trying to order the Thai-style beef salad, the waitress convinced me that it's saturday, and on saturdays they have sushi, and I absolutely have to eat their sushi. So I ordered their sushi.&lt;br /&gt;&lt;br /&gt;And I didn't regret it. It's rather unorthodox -- e.g. it features rice, raw fish, nori, wasabi, and soy sauce, but I wouldn't describe it as traditional sushi. Not that this is bad: I had a stellar roll that consisted of crab meat, a mild goat cream cheese, cucumer, and bell pepper. There was some tuna, fresh crevettes, an onion-heavy-salad, and various other things.&lt;br /&gt;&lt;br /&gt;All in all, it was really good. Seriously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7092927297671206488?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7092927297671206488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7092927297671206488' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7092927297671206488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7092927297671206488'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/09/restaurant-review-le-surfing-les.html' title='Restaurant Review: &quot;Le Surfing&quot;, Les Estagnots'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2906396019155297290</id><published>2009-08-20T15:47:00.000-07:00</published><updated>2009-08-20T15:53:37.483-07:00</updated><title type='text'>Open position :-)</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;we have an open full-time position in our office in Bochum, Germany -- in essence, a vuln-dev-using-BinDiff-and-BinNavi-position.&lt;br /&gt;&lt;br /&gt;What are the tasks in this job ?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use BinNavi and BinDiff to find bugs in software &amp;amp; write exploits&lt;/li&gt;&lt;li&gt;Test BinNavi/BinDiff features. Test them some more.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Provide feedback to the developers about the tools&lt;/li&gt;&lt;li&gt;Write up your results&lt;/li&gt;&lt;li&gt;(Potentially) train clients in the use of the tools&lt;/li&gt;&lt;/ul&gt;We're looking for someone that has some experience in RE and vuln-dev.&lt;br /&gt;&lt;br /&gt;What we can offer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A no-bullshit environment&lt;/li&gt;&lt;li&gt;Small team, good mood in the office :-)&lt;/li&gt;&lt;li&gt;Direct influence over the development of the tools&lt;/li&gt;&lt;li&gt;Probably more than that, but it is late and I am tired&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; If you're interested, please send email to halvar.flake@zynamics.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2906396019155297290?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2906396019155297290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2906396019155297290' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2906396019155297290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2906396019155297290'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/08/open-position.html' title='Open position :-)'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7849697482026648695</id><published>2009-07-24T16:56:00.000-07:00</published><updated>2009-07-24T17:17:06.687-07:00</updated><title type='text'>Klartext please !</title><content type='html'>&lt;span style="font-size:100%;"&gt;Hey all,&lt;br /&gt;&lt;br /&gt;I won't comment too much here right now (I am kinda busy with work), but imaginably in relation to my last blog post:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/security/bulletin/ms09-jul-ans.mspx"&gt;http://www.microsoft.com/technet/security/bulletin/ms09-jul-ans.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now my favourite quote from &lt;a href="http://blogs.technet.com/msrc/"&gt;http://blogs.technet.com/msrc/&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;"&lt;/span&gt;&lt;span style=";font-family:'Calibri','sans-serif';font-size:100%;"  &gt;&lt;span style=";font-family:'Calibri','sans-serif';" &gt;While we can’t go into specifics about the issue prior to release, we can say that the Visual Studio bulletin will address an issue that can affect certain types of applications."&lt;br /&gt;&lt;br /&gt;I would be tempted to say that "if you can't say anything useful, say nothing at all", but I am often guilty of writing useless things, so I won't.&lt;br /&gt;&lt;br /&gt;The above formulation inspired me though:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:'Calibri','sans-serif';font-size:100%;"  &gt;&lt;span style=";font-family:'Calibri','sans-serif';" &gt;"While I have no clue what this out-of-band patch is all about, it will address an issue that has to do with a programming mistake."&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:'Calibri','sans-serif';font-size:100%;"  &gt;&lt;span style=";font-family:'Calibri','sans-serif';" &gt;"While going into the specifics would be dangerous to the safety of the world, the issue that will be addressed is an issue that can affect computers."&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:'Calibri','sans-serif';font-size:100%;"  &gt;&lt;span style=";font-family:'Calibri','sans-serif';" &gt;Sigh. &lt;a href="http://en.wikipedia.org/wiki/Newspeak"&gt;Newspeak&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There is a German expression called "Klartext reden" (literally translated 'to speak clear text'). If you know a german, grab him, and ask him to explain the meaning of the word to you. I wish there was more of this around.&lt;br /&gt;&lt;br /&gt;So my 2 cents of speculation:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;MS will patch a bunch of libraries (the ATL ?) in Visual Studio&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A "certain type" of application is affected and will need recompiling. The msvidctl thingie was an ActiveX component. Anybody wants to add 2 and 2 together ?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;I really need to get back to work though.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7849697482026648695?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7849697482026648695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7849697482026648695' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7849697482026648695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7849697482026648695'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/07/klartext-please.html' title='Klartext please !'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-606893327197178622</id><published>2009-07-09T13:04:00.000-07:00</published><updated>2009-07-09T15:35:19.539-07:00</updated><title type='text'>Poking around MSVIDCTL.DLL</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I have to admit that I did not follow the msvidctl.dll situation all that closely, except for my short tweet that this bug was apparently reported more than a year ago. Yesterday, my old friend Dennis Elser piqued my interest: He had isolated the bug down to a function called ATL::CComVariant::ReadFromStream. He had determined that the function in question made a rather strange mistake: Instead of passing a pointer to a data buffer to IStream::Read, it took the address of a (small) local variable, and passes this address as output buffer to IStream::Read, along with a length read from the stream previously.&lt;br /&gt;&lt;br /&gt;Somebody clearly got confused.&lt;br /&gt;&lt;br /&gt;So Dennis and me sat down tonight and did a bit of digging around and tried to clarify what was going on. So we dug in a bit deeper, and ended up with the following understanding of the situation:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If the stuff that is supposed to be deserialized does not contain the proper value in the first 2 bytes, 8 more bytes are read, and SafeArrayCreate is used to create a new array with a 4-byte size obtained from these bytes.  &lt;/li&gt;&lt;li&gt;A pointer to the allocated memory is obtained by ways of calling SafeArrayAccessData. This function places a pointer to the memory in question into a memory cell pointed to by it's second argument.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Instead of passing the CONTENTS of the memory cell pointed to by the second argument to IStream::Read, the code in question passes the address of this variable in. This happens to be the re-used memory for the first argument of ReadFromStream, hence it is on the stack. Memory corruption hilarity ensues.&lt;/li&gt;&lt;/ol&gt;This is a cute little bug. First of all, it is a beautiful example of a single excess "&amp;amp;" in the source code. But what is most amusing about this bug is the centrality of it -- it is, after all, in a method of a class from the ATL.&lt;br /&gt;&lt;br /&gt;Everybody loves bugs in libraries. Few things fill my heart with quite as much amusement as bugs in heavily-used, statically-linked libraries. OpenSSL (and libeay) was good for many laughs in the past, zlib was a favourite for a long time, too.&lt;br /&gt;&lt;br /&gt;So what we have here is a bug in a component that is used fairly widely, and that has the property of being statically linked (yay templates !).&lt;br /&gt;&lt;br /&gt;Now, a quick search of my harddisk turned out that a lot of third-party components (flash) contain the same function -- but in old and non-vulnerable versions (for an extra dash of irony, the function used to be safe before all this SafeArray-stuff was added). Only a small fraction of the files that use the ATL and contain this function appear to contain it in a vulnerable version.&lt;br /&gt;&lt;br /&gt;We ended up building a really naive / stupid / false-negative-and-false-positive-prone regexp to scan for the vulnerable basic block. This is of course going to fail if anyone has tweaked their optimization settings etc., but it would still be interesting to find out how many files contain this "trivial" byte string.&lt;br /&gt;&lt;br /&gt;So I searched my windows directory for the following regexp pattern:&lt;br /&gt;&lt;br /&gt;pattern = "\x8B\x07\x6A\x00\xFF\x75\x2E\x8D\x4D\x2E\x51\x57\xFF\x50\x0C\x53"&lt;br /&gt;r = re.compile( pattern, re.DOTALL )&lt;br /&gt;&lt;br /&gt;There were a few files in which this pattern was found (XP):&lt;br /&gt;&lt;br /&gt;Found pattern in file c:\Windows\system32\ieframe.dll&lt;br /&gt;Found pattern in file c:\Windows\system32\mstscax.dll&lt;br /&gt;Found pattern in file c:\Windows\system32\msvidctl.dll&lt;br /&gt;Found pattern in file c:\Windows\system32\wmp.dll&lt;br /&gt;Found pattern in file c:\Windows\system32\wmpdxm.dll&lt;br /&gt;&lt;br /&gt;Dennis searched for the same pattern on his disk (Vista) and found:&lt;br /&gt;﻿&lt;span style="font-size:100%;"&gt;&lt;br /&gt;c:\windows\system32\cic.dll&lt;br /&gt;c:\windows\system32\comsnap.dll&lt;br /&gt;c:\windows\system32\comsvcs.dll&lt;br /&gt;c:\windows\system32\ieframe.dll&lt;br /&gt;c:\windows\system32\mmcndmgr.dll&lt;br /&gt;c:\windows\system32\mstscax.dll&lt;br /&gt;c:\windows\system32\MSVidCtl.dll&lt;br /&gt;c:\windows\system32\puiobj.dll&lt;br /&gt;c:\windows\system32\rdpencom.dll&lt;br /&gt;c:\windows\system32\shdocvw.dll&lt;br /&gt;c:\windows\system32\wiaaut.dll&lt;br /&gt;c:\windows\system32\wmp.dll&lt;br /&gt;c:\windows\system32\wmpdxm.dll&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why the difference ? Well, amusingly, shdocvw.dll on my XP machine doesn't have this SafeArray-stuff in it yet -- it is probably compiled using an older, not vulnerable variant of the ATL -- wheras Dennis variant of the same DLL is much newer, compiled with the 'broken' variant of the ATL.&lt;br /&gt;&lt;br /&gt;So, where does this leave us ?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The bug is actually much "deeper" than most people realize.&lt;/li&gt;&lt;li&gt;The killbit-fix is clearly insufficient, as there are bound to be many other ways of triggering the issue.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The bug might have weaseled it's way into third-party components, IF anyone outside of Microsoft had access to the broken ATL versions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If this has happened, MS might have accidentally introduced security vulnerabilities into third-party products.&lt;/li&gt;&lt;li&gt;Depending on the optimization settings applied to the executables, it might require a bit of an effort to find out whether a vulnerable or non-vulnerable version of the code is present.&lt;/li&gt;&lt;li&gt;There might be a lot of recompiling next week.&lt;/li&gt;&lt;li&gt;IF this has gotten into third-party-products, I would bet that only a tiny fraction of software vendors will push out proper/timely updates.&lt;/li&gt;&lt;/ol&gt;It just seems that spending time to improve &lt;a href="http://addxorrol.blogspot.com/2008/09/improving-binary-comparison-and-its.html"&gt;BinDiffs ability to find statically linked libraries&lt;/a&gt; might have been worth it :-)&lt;br /&gt;&lt;br /&gt;Anyhow, I really need to get to sleep -- I have a train to catch in a bit more than 4 hours.&lt;br /&gt;&lt;br /&gt;A lot of credit for this post has to go to Dennis Elser -- he did most of the hard work before we sat down.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-606893327197178622?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/606893327197178622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=606893327197178622' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/606893327197178622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/606893327197178622'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/07/poking-around-msvidctldll.html' title='Poking around MSVIDCTL.DLL'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-8690109742973216046</id><published>2009-07-06T02:38:00.001-07:00</published><updated>2009-07-06T02:42:21.244-07:00</updated><title type='text'>Las Vegas / Blackhat / DefCon</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;the annual Blackhat / DefCon thing is coming up again, and I just wanted to announce here that I will be in Las Vegas from the 24th of July to the 2nd of August. I will be busy teaching classes until the 28th of July, but thereafter I am mostly free (e.g. roaming the conference). If you wish to schedule a demo for any of our products (BinDiff, BinNavi, VxClass) or just generally have a chat about all things related to reverse engineering, vulnerability analysis, malware classification, deobfuscation, math or business, do not hesitate to contact me beforehand :-)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-8690109742973216046?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/8690109742973216046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=8690109742973216046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8690109742973216046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8690109742973216046'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/07/las-vegas-blackhat-defcon.html' title='Las Vegas / Blackhat / DefCon'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1344831907114325668</id><published>2009-07-01T01:29:00.000-07:00</published><updated>2009-07-01T01:46:15.158-07:00</updated><title type='text'>Strange Cellphone Behavior</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I know this blog post is a bit weird, but I reckon I'd share this: For some reason that is quite unknown to me, my cellphones have a habit of developing strange behaviors. I used to use a Nokia N73, which developed the following habit:&lt;br /&gt;&lt;br /&gt;When in foreign time zones (Japan, Norway, USA) the phone would send more-or-less random old text messages to more-or-less random people from my address book. There would be a merry mix &amp;amp; match between the two, leading to more than one amusing misunderstanding that needed clearing up.&lt;br /&gt;&lt;br /&gt;Then, at some point last fall, I switched to the silly shiny Apple telephony device (perhaps people do better QA on their backdoors on that platform). For a few months, the problems went away.&lt;br /&gt;This changed last week -- now, when I send text messages to certain numbers, the phone seems to send a more-or-less random old text messages that has already been sent to the same number along with the message. This is a bit nicer (as it will not mix &amp;amp; match), but still annoying.&lt;br /&gt;&lt;br /&gt;So .. uhm ... I am trying to come up with plausible explanations for this behavior. Can anyone offer one ? My total-guess-in-the-dark ideas would be:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Current behavior is caused by international text message routing weirdness -- e.g. text messages I sent a few days ago in the US get duplicated for some reason and re-sent&lt;/li&gt;&lt;li&gt;Both current and N73 behavior is triggered by shoddy QA on lawful intercept systems&lt;/li&gt;&lt;li&gt;Both current and N73 behavior is triggered by shoddy QA on the side of the parties that backdoor my phones&lt;/li&gt;&lt;/ol&gt;Now, I don't know if anyone else has ever suffered from this, or if there is a perfectly valid and proper explanation, or if there is an easy way to do diagnostics, but:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If you backdoor my phone, fix your software. Kthx.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you write LI software, fix your software. Kthx.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If there are multiple people backdooring my phone, please test for interoperability between your tools.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So, any other theories on what might be going on ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1344831907114325668?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1344831907114325668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1344831907114325668' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1344831907114325668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1344831907114325668'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/07/strange-cellphone-behavior.html' title='Strange Cellphone Behavior'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-5356296309982457711</id><published>2009-03-09T07:55:00.000-07:00</published><updated>2009-03-09T08:04:07.760-07:00</updated><title type='text'>Reverse Engineering / Bug hunting trainings in Amsterdam</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I haven't given a reverse engineering trainings class in Amsterdam for a few years, but this year is different :-) -- I will be at BH Amsterdam, and there are still seats open in the trainings class for April 14th and 15th.&lt;br /&gt;&lt;br /&gt;What will be done in the course ? Well, for one thing, we'll go bug-hunting in some interesting piece of code. Furthermore, we'll talk quite a bit about C++ and it's effects in the binary. We'll do a fair bit of differential debugging, some more bug-hunting, and a lot of IDA automation. Questions like&lt;br /&gt;&lt;ul&gt;&lt;li&gt;given a C++ executable, how do I recover an inheritance diagram of the classes ?&lt;/li&gt;&lt;li&gt;given a big and ugly executable, how do I find the interesting places to focus on ?&lt;/li&gt;&lt;li&gt;how do I make sure IDAPython and NaviPython make my life easier ?&lt;/li&gt;&lt;/ul&gt;will be treated thoroughly.&lt;br /&gt;&lt;br /&gt;So, if you still have some trainings/travel budget left in spite of the crisis, you can find more&lt;br /&gt;details &lt;a href="http://www.blackhat.com/html/bh-europe-09/train-bh-eu-09-hf.html"&gt;here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-5356296309982457711?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/5356296309982457711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=5356296309982457711' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5356296309982457711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5356296309982457711'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/03/reverse-engineering-bug-hunting.html' title='Reverse Engineering / Bug hunting trainings in Amsterdam'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7684828242901105463</id><published>2009-03-04T12:01:00.000-08:00</published><updated>2009-03-04T13:29:35.747-08:00</updated><title type='text'>Diffing x86 vs ARM code</title><content type='html'>I posted a while ago about the new DiffDeluxe comparison engine, and that we'd release it in Q1 2009. Well, we're almost there, the engine is now in beta. If you are a BinDiff user and wish to give the new engine a try, send mail to info@zynamics.com :-)&lt;br /&gt;&lt;br /&gt;I mentioned in my last post on the topic that DiffDeluxe was designed to facilitate symbol porting, and to allow comparisons between executables that are "far away" from each other.&lt;br /&gt;&lt;br /&gt;In the last post I wrote about Mozilla JS engine vs. Acrobat EScript.dll. Today I am going to try something slightly crazier: In order to evaluate how well these matching algorithms work, we will be diffing an executable that was compiled for ARM against a very similar executable compiled for x86.&lt;br /&gt;&lt;br /&gt;My coworker Vincenzo is a big fan of all things OSX, and he brought up the idea of comparing x86 and ARM versions of the OSX dynamic loader -- namely the disassembly of dyld on the iphone against the disassembly of dyld on OSX.&lt;br /&gt;&lt;br /&gt;Now, the first voices are going to yell: "You have names for all functions, BinDiffing is easy then!". Well, true, but we will run DiffDeluxe &lt;span style="font-weight: bold;"&gt;without&lt;/span&gt; taking the names into account, and then just using the names to validate the results.&lt;br /&gt;&lt;br /&gt;The two executables have 704 (x86) and 618 (ARM) functions respectively. Without name&lt;br /&gt;matching, we match 345 functions. Inspecting the symbols, we see that we have matched&lt;br /&gt;160 of these functions in full accordance with the symbols. Let's have a look at some of the details:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/Sa7u8YLxOYI/AAAAAAAAAG0/e76hQSFjS2I/s1600-h/iphon1..PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_e24imFzpOVw/Sa7u8YLxOYI/AAAAAAAAAG0/e76hQSFjS2I/s320/iphon1..PNG" alt="" id="BLOGGER_PHOTO_ID_5309443731767769474" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/Sa7vDK3Fz3I/AAAAAAAAAG8/8u1yD-6lS0g/s1600-h/iphon2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_e24imFzpOVw/Sa7vDK3Fz3I/AAAAAAAAAG8/8u1yD-6lS0g/s320/iphon2.png" alt="" id="BLOGGER_PHOTO_ID_5309443848450461554" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;Cute, eh ? Let's look at some more...&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/Sa7vPduiN-I/AAAAAAAAAHE/JwOZ8A9xwDo/s1600-h/iphon3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_e24imFzpOVw/Sa7vPduiN-I/AAAAAAAAAHE/JwOZ8A9xwDo/s320/iphon3.png" alt="" id="BLOGGER_PHOTO_ID_5309444059673278434" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/Sa7vdJvTEYI/AAAAAAAAAHM/y9DnJ48_JCY/s1600-h/iphon4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_e24imFzpOVw/Sa7vdJvTEYI/AAAAAAAAAHM/y9DnJ48_JCY/s320/iphon4.png" alt="" id="BLOGGER_PHOTO_ID_5309444294825939330" border="0" /&gt;&lt;/a&gt;It is almost surprising how far one can get without actually looking at the instruction semantics.&lt;br /&gt;&lt;br /&gt;If we take the names into account, matching functions becomes easy, but matching basic blocks properly ends up the difficulty. With name matching enabled, DiffDeluxe matches 3809 basic blocks, out of 7904 respective 5196.&lt;br /&gt;&lt;br /&gt;So to summarize: The structural comparison is sufficiently strong to yield some useful results even accross two different CPUs. While there is still (a good amount) of room for improvement, I am quite happy with these results so far :-)&lt;br /&gt;&lt;br /&gt;So, if you want to beta, and you already use BinDiff, drop us a line !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7684828242901105463?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7684828242901105463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7684828242901105463' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7684828242901105463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7684828242901105463'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/03/diffing-x86-vs-arm-code.html' title='Diffing x86 vs ARM code'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e24imFzpOVw/Sa7u8YLxOYI/AAAAAAAAAG0/e76hQSFjS2I/s72-c/iphon1..PNG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-810943343939788545</id><published>2009-02-05T09:41:00.000-08:00</published><updated>2009-02-05T09:48:30.241-08:00</updated><title type='text'>Washington DC, Trainings, Demos :-)</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I will be in Washington DC from the 16th to the 20th of February. Amongst other things, I will be teaching a &lt;a href="http://www.blackhat.com/html/bh-dc-09/train-bh-dc-09-hf.html"&gt;course&lt;/a&gt; at Blackhat DC. The economic crisis is clearly hitting -- e.g. there are still seats available. We will also get around to using some of the nice features of BinNavi v2 in class, which I am looking forwards to.&lt;br /&gt;&lt;br /&gt;Now, aside from the course: If you are in the DC area and interested in a product demo for BinDiff (and the upcoming DiffDeluxe), BinNavi v2 (including REIL), or the latest VxClass (now available as service and virtual appliance), do not hesitate to drop a line to &lt;a href="mailto:info@zynamics.com"&gt;info@zynamics.com&lt;/a&gt; :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-810943343939788545?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/810943343939788545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=810943343939788545' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/810943343939788545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/810943343939788545'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/02/washington-dc-trainings-demos.html' title='Washington DC, Trainings, Demos :-)'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6456479691874428241</id><published>2009-01-05T01:49:00.000-08:00</published><updated>2009-01-05T01:50:53.733-08:00</updated><title type='text'>Correction: Clam *does* have some unpacking support</title><content type='html'>Correction of my last post: It appears that Clam has *some* unpacking support. It is not as comprehensive as some of us would like, but progress is being made :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6456479691874428241?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6456479691874428241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6456479691874428241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6456479691874428241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6456479691874428241'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/01/correction-clam-does-have-some.html' title='Correction: Clam *does* have some unpacking support'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3102335840249419831</id><published>2009-01-04T09:41:00.000-08:00</published><updated>2009-01-04T09:42:56.352-08:00</updated><title type='text'>ClamAV and unpackers</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;this might be a rather odd question, but given the (unfortunate) fact that ClamAV can't unpack&lt;br /&gt;even the simplest packers, has nobody ever contemplated writing packer-specific unpackers&lt;br /&gt;for ClamAV ?&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3102335840249419831?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3102335840249419831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3102335840249419831' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3102335840249419831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3102335840249419831'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2009/01/clamav-and-unpackers.html' title='ClamAV and unpackers'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-632952614661875229</id><published>2008-12-26T16:06:00.000-08:00</published><updated>2008-12-26T16:09:32.093-08:00</updated><title type='text'>TAOSSA blog post I didn't see but will comment on :-)</title><content type='html'>http://taossa.com/index.php/2008/10/13/bugs-vs-flaws/#more-83&lt;br /&gt;&lt;br /&gt;I didn't see this post beforehand, and I would like to comment on it (mainly because commenting on his blog post might be the easiest way of getting into a conversation with Mr. McDonald these days ;), but I don't have time right now. Will fix this later this week hopefully.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-632952614661875229?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/632952614661875229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=632952614661875229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/632952614661875229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/632952614661875229'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/12/taossa-blog-post-i-didnt-see-but-will.html' title='TAOSSA blog post I didn&apos;t see but will comment on :-)'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4881965364223146820</id><published>2008-12-26T12:31:00.000-08:00</published><updated>2008-12-26T12:46:04.490-08:00</updated><title type='text'>Sometimes, diffing can remove obfuscation (albeit rarely)</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;apologies for the sensationalist title, but I found another amusing example today where the same function was present in two different executables -- in two differently obfuscated forms. Amusingly, DiffDeluxe identified the "common components" between these two functions, effectively removing a lot of the obfuscation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/SVVAP7afZMI/AAAAAAAAAF0/BBzeHt2_dE0/s1600-h/XPWorkVM+%40+2008-12-26+21:01:29.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_e24imFzpOVw/SVVAP7afZMI/AAAAAAAAAF0/BBzeHt2_dE0/s320/XPWorkVM+%40+2008-12-26+21:01:29.png" alt="" id="BLOGGER_PHOTO_ID_5284200380180161730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;While this is clearly not a typical case, it nonetheless made me smile.&lt;br /&gt;&lt;br /&gt;Merry Christmas everyone !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4881965364223146820?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4881965364223146820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4881965364223146820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4881965364223146820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4881965364223146820'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/12/sometimes-diffing-can-remove.html' title='Sometimes, diffing can remove obfuscation (albeit rarely)'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e24imFzpOVw/SVVAP7afZMI/AAAAAAAAAF0/BBzeHt2_dE0/s72-c/XPWorkVM+%40+2008-12-26+21:01:29.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-133994293205489887</id><published>2008-11-15T07:56:00.000-08:00</published><updated>2008-11-15T07:58:09.123-08:00</updated><title type='text'>A good protocol attack ...</title><content type='html'>... is like a good joke. &lt;a href="http://www.cpni.gov.uk/Docs/Vulnerability_Advisory_SSH.txt"&gt;This one&lt;/a&gt;, while requiring special circumstances to succeed with high probability, was responsible for a lot of laughter on my side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-133994293205489887?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/133994293205489887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=133994293205489887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/133994293205489887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/133994293205489887'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/11/good-protocol-attack.html' title='A good protocol attack ...'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6241471192006120078</id><published>2008-11-11T12:56:00.001-08:00</published><updated>2008-11-11T12:58:11.145-08:00</updated><title type='text'>BinDiff / BinNavi User Forum</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;we have re-activated the BinDiff / BinNavi User Forum under&lt;br /&gt;&lt;a href="https://zynamics.fogbugz.com/default.asp?BinNavi"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a&gt;https://zynamics.fogbugz.com/default.asp?BinNavi&lt;/a&gt;&lt;a href="https://zynamics.fogbugz.com/default.asp?BinDiff"&gt;&lt;br /&gt;https://zynamics.fogbugz.com/default.asp?BinDiff&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is not a whole lot there at the moment, but that should change soon :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6241471192006120078?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6241471192006120078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6241471192006120078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6241471192006120078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6241471192006120078'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/11/bindiff-binnavi-user-forum.html' title='BinDiff / BinNavi User Forum'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6672310540416301766</id><published>2008-11-11T07:09:00.001-08:00</published><updated>2008-11-11T07:11:22.793-08:00</updated><title type='text'>Malicious Office/PDFs</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;for some research that I'm doing, I'm looking for a collection of malicious Office/PDF documents. If anyone has such documents (e.g. because he was targeted in an attack, or because he found one somewhere), I'd much appreciate submissions ! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6672310540416301766?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6672310540416301766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6672310540416301766' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6672310540416301766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6672310540416301766'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/11/malicious-officepdfs.html' title='Malicious Office/PDFs'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7614569430591677587</id><published>2008-11-10T04:57:00.001-08:00</published><updated>2008-11-10T05:01:37.706-08:00</updated><title type='text'>BinNavi v2 and PHP !</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;we have written about the SQL storage format for BinNavi quite a few times on this blog, and how we'd like to encourage third parties to use it. I am quite happy to say that Stefan Esser of&lt;br /&gt;&lt;a href="http://www.sektioneins.de/"&gt;SektionEins GmbH&lt;/a&gt; has built code to export PHP byte code into the database format. The (cute) results can be seen under&lt;br /&gt;&lt;a href="http://www.suspekt.org/2008/11/05/php-bytecode-in-binnavi-20/"&gt;&lt;br /&gt;http://www.suspekt.org/2008/11/05/php-bytecode-in-binnavi-20/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7614569430591677587?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7614569430591677587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7614569430591677587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7614569430591677587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7614569430591677587'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/11/binnavi-v2-and-php.html' title='BinNavi v2 and PHP !'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4215299101963044694</id><published>2008-11-08T14:34:00.001-08:00</published><updated>2008-11-08T17:11:22.764-08:00</updated><title type='text'>German ways of expressing optimism</title><content type='html'>One of my favourite things when travelling and interacting people from other cultures is observing differences in conversational conventions -- and (most importantly) different forms and perceptions of "conversational humor".  Aside from comedic protocol screw-ups (e.g. literally translating an essentially untranslateable expression to another language, earning -- at best -- puzzled looks and -- at worst -- thoroughly offending the conversation partner), it often provides interesting insights into one's own culture and habits.&lt;br /&gt;&lt;br /&gt;This weeks special: German forms of expressing optimism.&lt;br /&gt;&lt;br /&gt;There are many expressions in German that are horribly difficult to translate.&lt;br /&gt;&lt;br /&gt;One of my favourites that could cause confusion is the German custom of wishing people luck by wishing them "Hals- und Beinbruch!" (literally: 'broken neck and broken leg') or 'Kopf- und Bauchschuss' (literally: 'shot in the head and stomach') or (for sailors) 'Mast- und Schotbruch' (literally: 'broken mast and ripped sail') upon parting.&lt;br /&gt;A common reply for this would be "wird schon schiefgehen" (literally: 'I have no doubt it's going to go badly'). Counterintuitively, the semantics of this is optimistic -- e.g. whoever says that things are going to turn out badly indicates by this that he is not worried, and that he actually expects that things will be fine.&lt;br /&gt;&lt;br /&gt;In essence, one expresses optimism by claiming that an improbably horrible outcome is a near-certainty.&lt;br /&gt;&lt;br /&gt;Even though I try hard to not have an all-too-obvious German accent any more, I do catch myself all the time in using the above pattern, even though it does not translate. I (deservedly) earned puzzled looks today by clumsily attempting to use the following German saying to indicate my optimism about the future:&lt;br /&gt;&lt;br /&gt;"Lächle und sei froh, sagten sie mir, denn es könnte schlimmer kommen. Und ich lächelte und war froh, und es kam schlimmer."&lt;br /&gt;&lt;br /&gt;This has a certain elegance in German, which is totally lost in my clumsy translation:&lt;br /&gt;&lt;br /&gt;"Smile and be happy, they told me, because things could be a lot worse. So I smiled and was happy, and things got a lot worse."&lt;br /&gt;&lt;br /&gt;Aside from the clumsiness of the expression when translated, the semantics (e.g. the intention to express optimism) was thoroughly lost -- the effect was a thoroughly puzzled and slightly worried look by my conversation partner. I think it is situations like these where Germans earn their bad reputation for being thoroughly unfunny.&lt;br /&gt;&lt;br /&gt;Other things that are good for causing confusion between a native English speaker who interacts with someone from the German-speaking world are differences when it comes to acceptable replies to the question "How are you ?". The usual form of this in German is "Wie gehts ?", essentially "How is it going ?". In the English speaking world, acceptable replies seem to be restricted to "good", "good good", or "great".&lt;br /&gt;&lt;br /&gt;Proper replies to the question "How is it going" over here would be:&lt;br /&gt;"Muss." -- literal translation: 'it has to somehow'&lt;br /&gt;"Naja, ganz ok." -- 'well... ok ...'&lt;br /&gt;"Könnte schlechter/besser gehen" -- 'could be worse/better'&lt;br /&gt;"Bergauf" or "Bergab" -- uphill / downhill&lt;br /&gt;&lt;br /&gt;If the other party feels inclined to have a longer chat, they could reply with&lt;br /&gt;"Yesterday, we stood on a cliff. Today we have advanced by a significant step."&lt;br /&gt;or "Katastrophe". This is usually followed with a short anecdote or complaint about something work-related. From a social perspective, this does wonders as an ice-breaker.&lt;br /&gt;&lt;br /&gt;Whenever I catch myself in such a situation, I realize that no matter how much one travels, and no matter how much time one spends in a different cultural climate, certain components of the social interaction are nigh-impossible to change.&lt;br /&gt;&lt;br /&gt;Anyhow, time to go to sleep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4215299101963044694?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4215299101963044694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4215299101963044694' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4215299101963044694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4215299101963044694'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/11/german-ways-of-expressing-optimism.html' title='German ways of expressing optimism'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-5017907592393636304</id><published>2008-10-26T15:07:00.000-07:00</published><updated>2008-10-26T15:26:17.788-07:00</updated><title type='text'>The joys of the Volkswagen Caddy Natural Gas car</title><content type='html'>So I do own a car (contrary to what most people expect). About a year ago, I bought a VW Caddy EcoFuel. It runs on natural gas in normal mode and only uses the gasoline tank for starting (and when the natural gas has run out).&lt;br /&gt;&lt;br /&gt;Up until 4 weeks or so ago I was pretty happy with it, but one morning, the car refused to start unless I hit the gas heavily while starting. I brought the car to the repair shop that belongs to the same place where I bought the car. After a few days of tinkering, they told me that&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The particular car I own doesn't lock the tank when the rest of the car is locked and&lt;/li&gt;&lt;li&gt;Somebody poured an unidentifiable liquid into my tank causing the problems&lt;/li&gt;&lt;li&gt;Because this is not a problem with the car itself, warranty doesn't cover it&lt;/li&gt;&lt;li&gt;Removing the tank and the fuel pump and cleaning everything is going to cost 1200 EU&lt;/li&gt;&lt;/ol&gt;I am somewhat annoyed by some punk pouring an unidentifiable liquid into my tank and agree to pay the money. I also ask for the shop to retain a sample of the tank contents so I can at least find out &lt;span style="font-weight: bold;"&gt;what&lt;/span&gt; was poured into the tank, and perhaps get money back from my insurance.&lt;br /&gt;&lt;br /&gt;They agree. When I come to pick up the car, the guys at the shop for some bizarre reason cannot find the sample. I sit and wait for ~1 hour, and they finally produce an unlabelled can from somewhere. Ok. I ask them to sign a piece of paper certifying that this sample is coming from my tank, and they tell me they will send it to me via regular mail the next day. So far so good.&lt;br /&gt;&lt;br /&gt;So two weeks pass, and I call back 3 times for that piece of paper. At the beginning of the third week, I have to take my guinea pigs to the vet in the morning (yes, I don't only own a car, I also have guinea pigs).  On my way back from the vet, the natural gas runs out, and the car switches to gasoline mode -- while I am going about 130km/h with a large truck behind me. The only complication: My engine switches off. Awesome.&lt;br /&gt;&lt;br /&gt;So I manage to stop the car safely on the side of the autobahn and get towed to the next Volkswagen shop. About 2 hours after I leave my car there, I get a call from the repair guy there, telling me that they can see in the VW database which repairs were done on my car recently, but from what they can tell, these repairs &lt;span style="font-weight: bold;"&gt;never happened&lt;/span&gt;. They call in an expert that is certified to appear in court to take pictures &amp;amp; write a report, and he also confirms: The tank was never removed, the gasoline pump never replaced, and the 1200 EU were apparently charged without any of the stuff ever happening.&lt;br /&gt;&lt;br /&gt;Clearly, I am somewhat surprised. To my dismay, I am also told that the actual repairs will cost about 2000 EU, and that there is still unidentified stuff in my tank.&lt;br /&gt;&lt;br /&gt;So all in all, I am currently stuck with&lt;br /&gt;&lt;ol&gt;&lt;li&gt;1200 EU for repairs that never happened&lt;/li&gt;&lt;li&gt;2000 EU for repairs that are happening now&lt;/li&gt;&lt;li&gt;2 * 300 EU for chemical analysis of the two samples taken&lt;/li&gt;&lt;li&gt;unspecified legal costs (most likely covered by my insurance) to deal with the situation&lt;/li&gt;&lt;/ol&gt;All in all, I am quite dissatisfied with VW on this front -- IMO they should've warned me that the tank doesn't lock, and they shouldn't have "VW Certified Repair Shops" that appear to attempt to defraud customers. I have trouble imagining that not actually performing the repairs was an "honest mistake" (although I usually live by the motto that "one should not attribute anything to malice that can be attributed to incompetence").&lt;br /&gt;&lt;br /&gt;Anyhow, let's see how this plays out. As if I don't have other stuff to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-5017907592393636304?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/5017907592393636304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=5017907592393636304' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5017907592393636304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5017907592393636304'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/10/joys-of-volkswagen-caddy-natural-gas.html' title='The joys of the Volkswagen Caddy Natural Gas car'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-572826707360736357</id><published>2008-10-15T02:51:00.000-07:00</published><updated>2008-10-15T02:56:38.235-07:00</updated><title type='text'>For those playing with the printer bug...</title><content type='html'>... I can't help but post this small PNG. And since blogger rescales/blurs the picture, &lt;a href="http://www.zynamics.com/files/ipp.png"&gt;here is a link to the "full" one.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/SPW9ZWtew8I/AAAAAAAAAEI/6Zaq7jKXBMk/s1600-h/sp.test.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e24imFzpOVw/SPW9ZWtew8I/AAAAAAAAAEI/6Zaq7jKXBMk/s320/sp.test.png" alt="" id="BLOGGER_PHOTO_ID_5257316383315641282" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-572826707360736357?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/572826707360736357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=572826707360736357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/572826707360736357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/572826707360736357'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/10/for-those-playing-with-printer-bug.html' title='For those playing with the printer bug...'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e24imFzpOVw/SPW9ZWtew8I/AAAAAAAAAEI/6Zaq7jKXBMk/s72-c/sp.test.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7502611548839696793</id><published>2008-10-05T13:33:00.000-07:00</published><updated>2008-10-05T14:23:47.648-07:00</updated><title type='text'>My bro's comments on the financial crisis</title><content type='html'>My brother wrote an article injecting some reality into the discussion about the banking crisis on Spiegel Online. The german version can be seen &lt;a href="http://www.spiegel.de/wirtschaft/0,1518,581446,00.html"&gt;here&lt;/a&gt;. I'll share a short summary of his arguments here (and he'll complain about my distortions later ;).&lt;br /&gt;&lt;br /&gt;Short version: The article describes why the situation is less dire than many pundits claim, and explains logical fallacies in commonly-heard arguments.&lt;br /&gt;&lt;br /&gt;In the following, here's a summary of his arguments, in the form of "Myth --&gt; Reality"&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The US government is taking on a total of 7000bn in liabilities -- about 5500bn by agreeing to step in for Fannie Mae / Freddie Mac, and about 700bn in papers bought by doing the bailout. This equates to roughly half of US GDP, and since the US is already in debt by about 65% of GDP, this would push the total indebtedness of the US to be clearly past 100% of GDP. As a result, serious doubts would have to be cast on the US governments ability to repay debts and service interest on debt.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reality:&lt;/span&gt; Most of the 5500bn are backed by "proper" mortgages with decent quality. It is unclear whether the US gov will lose money on the Fannie Mae / Freddie Mac deal at all. Even the 700bn in "toxic assets" the US is willing to buy have some underlying value. Realistic expectations at the total loss for the US government in this deal runs in the area of 500bn, which would be less than 3% of GDP -- and therefore not a significant source of problems.&lt;/li&gt;&lt;li&gt;The liquidity that central banks are injecting into the markets should lead to hyperinflation. &lt;span style="font-weight: bold;"&gt;Reality:&lt;/span&gt; The measures to help liquidity in the markets do not increase the money supply in the long run. They are usually short-term credits given to struggling banks for a limited amount of time -- weeks or months. After this time, the creditors have to repay the loans, and the money disappears. At the same time, the willingness by existing banks to lend decreases, thus decreasing the money supply in the economy. The statistics by central banks show that the actual money supply M2 is growing a lot less slowly at the moment in spite of all the liquidity injections. Since the money supply is only growing very slowly at the moment, the inflationary pressures are low.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The banking crisis is responsible for the overall slowdown in the EU's economy, and the German government is thus not responsible for having to adjust their growth estimates downwards sharply.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reality: &lt;/span&gt;Most indicators show that the slowdown started way before the crisis reached it's current urgence.  The indicators started pointing down much earlier as a result of the heavy increase in energy costs, the appreciation of the euro (and the resulting loss in competitiveness), and Germany's botched reform of accounting rules for writing down investments in equipment. The banking crisis is just the latest "kick" -- but the three previous ones were all known early (and could've been partially corrected). &lt;/li&gt;&lt;li&gt;This is the mother of all financial crises. This banking crisis is the worst crisis in several generations, up to the 1930's crash. &lt;span style="font-weight: bold;"&gt;Reality:&lt;/span&gt; Dramatic banking crises are more common than we think. Since 1970, the IWF has counted 42 crashes in countries like Argentina, Indonesia, China, Japan, Finland or Norway. In comparison to these crises, the current crisis isn't even very deep or expensive: The Paulson-bailout comes at a cost of 700bn, not even 5% of GDP, and only a fraction of this will be actually lost. According to the IWF, the average banking crisis in a country came at the cost of 13% of GDP for that country's tax payer. The Indonesian crisis even came in at four times this. The big difference to the other crises is that this one has caught on in the world's biggest economy, and as such reaches unknown dimensions in absolute terms.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7502611548839696793?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7502611548839696793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7502611548839696793' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7502611548839696793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7502611548839696793'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/10/my-bros-comments-on-financial-crisis.html' title='My bro&apos;s comments on the financial crisis'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7186004498843116183</id><published>2008-10-01T07:48:00.000-07:00</published><updated>2008-10-01T07:57:24.212-07:00</updated><title type='text'>A few things I forgot to mention :-)</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I forgot to mention a few things in the previous post:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;We're going to release BinDiff v2.1 on the 15th of October 2008. This is still the "old" diffing engine, albeit with a number of speed &amp;amp; reliability improvements.&lt;/li&gt;&lt;li&gt;We're going to release BinNavi v2.0 on the 15th of October 2008. The number of new features in this release is huge -- it's really quite significant. You can read about it in detail on &lt;a href="http://www.the-interweb.com/serendipity/index.php?/archives/112-BinNavi-2.0-Preview.html"&gt;SP's blog.&lt;/a&gt;&lt;br /&gt;I will post some more information myself in the next days. Just a few mouth-watering keywords: Plugin API to extend Navi from Java/JRuby/Jython/JavaScript, built-in intermediate language, hierarchical tagging / namespaces for structuring large disassemblies, cross-module-graphing, managing multiple address spaces in one project, many user interface improvements, faster IDA-&gt;SQL export etc. etc. etc.&lt;/li&gt;&lt;li&gt;The DiffDeluxe engine will be part of the next BinDiff release thereafter, probably no later than February 2008. If you are an existing BinDiff customer and would like to try the DiffDeluxe engine in order to provide us with feedback, do not hesitate to contact us -- it's available for testing &lt;span style="font-weight: bold;"&gt;now&lt;/span&gt;. We're especially interested in finding instances where DiffDeluxe performs &lt;span style="font-weight: bold;"&gt;worse&lt;/span&gt; than BinDiff v2.1. Switching the core diffing engine is a significant change, and I would not want to know of any instances where the new engine is worse than the old one.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7186004498843116183?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7186004498843116183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7186004498843116183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7186004498843116183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7186004498843116183'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/10/few-things-i-forgot-to-mention.html' title='A few things I forgot to mention :-)'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-216789509622738085</id><published>2008-09-29T00:39:00.000-07:00</published><updated>2008-10-01T06:01:08.500-07:00</updated><title type='text'>Improving Binary Comparison (and it's implication for malware classification)</title><content type='html'>I am at Virus Bulletin in Ottawa -- if anyone wants to meet to see our new stuff, please drop mail to info@zynamics.com ! :)&lt;br /&gt;&lt;br /&gt;It has been a while since I posted here -- partially because I had a lot of work to finish, partially because, after having finished all this work, I took my first long vacation in a ... very long while.&lt;br /&gt;&lt;br /&gt;So I am back, and there are a number of things that I am happy to blog about. First of all, I now have in writing that I am officially an MSc in Mathematics. For those that care about obscure things like extending the euclidian algorithm to the ring of boolean functions, you can check the thesis here:&lt;br /&gt;&lt;a href="http://www.zynamics.com/files/Diplomarbeit.Thomas.Dullien.Final.pdf"&gt;http://www.zynamics.com/files/Diplomarbeit.Thomas.Dullien.Final.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For those that are less crazy about weird computational algebra: Our team here at zynamics has made good progress on improving the core algorithms behind BinDiff further. Our stated goal was to make BinDiff more useful for &lt;span style="font-weight: bold;"&gt;symbol porting&lt;/span&gt;: If you have an executable and you suspect that it might contain a statically linked library for which you have source access (or which you have analyzed before), we want BinDiff to be able to port the symbols into the executable you have, &lt;span style="font-weight: bold;"&gt;even if the compiler versions and build environments differ&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; significantly&lt;/span&gt;, and &lt;span style="font-weight: bold;"&gt;even if the versions of the library are not quite the same&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Why is this important ? Let's say you're disassembling some piece of network hardware, and you find an OpenSSL-string somewhere in the disassembled image. Let's say you're disassembling an old PIX image (6.34 perhabs) and see the string&lt;br /&gt;&lt;br /&gt;OpenSSL 0.9.5a 1 Apr 2000&lt;br /&gt;&lt;br /&gt;This implies that PIX contains OpenSSL, and that the guys at Cisco probably backported any fixes to OpenSSL to the 0.9.5a version. Now, it would be fantastic if we could do the following: Compile OpenSSL 0.9.5a with full symbols on our own machine, and then "pull-in" these symbols into our PIX disassembly.&lt;br /&gt;&lt;br /&gt;While this was sometimes possible with the BinDiff v2.0 engine (and v2.1, which is still essentially the same engine), the results were often lacking in both speed and accuracy. A few months back, Soeren and I went back to the drawing board and thought about the next generation of our diffing engine -- with specific focus on the ability to compare executables that are "far from each other", that differ significantly in build environments etc. and that only share small parts of their code. The resulting engine (dubbed "DiffDeluxe" by Soeren) is significantly stronger at this task.&lt;br /&gt;&lt;br /&gt;Why did the original BinDiff v2 engine perform poorly ? There are a number of reasons to this, but primarily because of the devastating impact that a "false match" can have on further matches in the diffing process, and due to the fact that in the described scenarios, most of the executable is completely different, and only small portions match. The old engine had a tendency to match a few of the "unrelated components" of each executable, and these initial incorrect matches led to further bad matching down the road.&lt;br /&gt;&lt;br /&gt;This doesn't mean the BinDiff v2 engine isn't probably the best all-round diffing engine you can find (I think it is, even if some early builds of the v2.0 suffered from silly performance issues -- those of you that are still plagued by this please contact support@ for a fix !) -- but for this particular problem some old architectural assumptions had to be thrown overboard.&lt;br /&gt;&lt;br /&gt;Anyhow, to cut a long story short: While the results generated by DiffDeluxe aren't perfect yet, they are very promising. Let's follow our PIX/OpenSSL scenario:&lt;br /&gt;&lt;br /&gt;DiffDeluxe operates with two "fuzzy" values for each function match: "Similarity" and "Confidence". Similarity indiciates how successful the matching algorithm was in matching basic blocks and instructions within the two functions, and confidence indicates how "certain" DiffDeluxe is that this match is a correct one. This is useful to sort the "good" and "bad" matches, and to inspect results before porting comments/names. Anyhow, let's look at some high-confidence matches:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/SONvZAuuaEI/AAAAAAAAADo/AoHtZ2_4G08/s1600-h/bindiff.pix.screen.3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e24imFzpOVw/SONvZAuuaEI/AAAAAAAAADo/AoHtZ2_4G08/s320/bindiff.pix.screen.3.png" alt="" id="BLOGGER_PHOTO_ID_5252164065927522370" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/SONv5-FCf0I/AAAAAAAAADw/69noI8P77eg/s1600-h/bindiff.pix.screen.4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e24imFzpOVw/SONv5-FCf0I/AAAAAAAAADw/69noI8P77eg/s320/bindiff.pix.screen.4.png" alt="" id="BLOGGER_PHOTO_ID_5252164632151490370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well, one doesn't need to be a rocket scientist to see that these functions match. But in many situations, the similarity between two functions is not 100% evident: The following is a matched function with only 72% similarity (but 92% confidence):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/SONwPeStT2I/AAAAAAAAAD4/k6Ar60St4o4/s1600-h/bindiff.pix.screen.1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e24imFzpOVw/SONwPeStT2I/AAAAAAAAAD4/k6Ar60St4o4/s320/bindiff.pix.screen.1.png" alt="" id="BLOGGER_PHOTO_ID_5252165001576009570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/SONwPhbmzZI/AAAAAAAAAEA/1c4UaMHuU8Y/s1600-h/bindiff.pix.screen.2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e24imFzpOVw/SONwPhbmzZI/AAAAAAAAAEA/1c4UaMHuU8Y/s320/bindiff.pix.screen.2.png" alt="" id="BLOGGER_PHOTO_ID_5252165002418638226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So what is the overall result ? Out of the 3977 functions which we had in libcrypto.so, we were able to match 1780 in our Pix disassembly -- &lt;span style="font-weight: bold;"&gt;but &lt;/span&gt;with a big caveat: A significant number of these have very low similarity and confidence scores. This isn't surprising: The differences between the compiler used upon compile time of our Pix image (sometime 6 years ago ?) and the compiler we used (gcc 4.1, -O3) is drastic. All in all, we end up with around 250 high-confidence matches -- which is not too bad considering that we don't know how many functions from OpenSSL the Pix code actually contains.&lt;br /&gt;&lt;br /&gt;In order to have a more clear idea of how well these algorithms perform, we need an example of which we know that essentially the entire library has been statically linked in. For this, luckily, we have Adobe Reader :-)&lt;br /&gt;&lt;br /&gt;With all the Adobe patches coming up, let's imagine we'd like to have a look at the Javascript implementation in Acrobat Reader. It can be found in Escript.api. Now, I always presume that everybody else is as lazy as me, so I can't imagine Adobe wrote their own Javascript implementation. But when Adobe added Javascript to Acrobat Reader, there were few public implementations of Javascript around -- essentially only the engine that is nowadays known as "SpiderMonkey", e.g. the Mozilla Javascript engine. So I compiled SpiderMonkey into "libjs.so" on my Linux machine and disassembled Escript.api. Then I ran DiffDeluxe. The result:&lt;br /&gt;&lt;br /&gt;Escript contains about 9100 functions, libjs.so contains about 1900. After running the diff, we get 1542 matches. Let's start verifying how "good" these matches are. As discussed above, DiffDeluxe uses a "similarity" and "confidence" score to rate matches. We get 203 matches with similarity and confidence above 90% -- for these functions, we can more or less blindly assume the matches are correct. If we have any doubts, we can inspect them:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/SONhwqugQ5I/AAAAAAAAADI/Av0tkmIx3Ac/s1600-h/bindiff.escript.screen.1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_e24imFzpOVw/SONhwqugQ5I/AAAAAAAAADI/Av0tkmIx3Ac/s320/bindiff.escript.screen.1.png" alt="" id="BLOGGER_PHOTO_ID_5252149079175086994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e24imFzpOVw/SONii1hMsgI/AAAAAAAAADQ/tdAKDVyAmec/s1600-h/bindiff.escript.screen.2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_e24imFzpOVw/SONii1hMsgI/AAAAAAAAADQ/tdAKDVyAmec/s320/bindiff.escript.screen.2.png" alt="" id="BLOGGER_PHOTO_ID_5252149941065527810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, there is little question that this match was accurate.&lt;br /&gt;&lt;br /&gt;The interesting question is really: How low can we go similarity- and confidence-wise before the results start deteriorating too badly ? Let's go low -- for similarities below 40%. For example the js_ConcatStrings match.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/SONkpgt4_WI/AAAAAAAAADY/qjgD6hbcJUc/s1600-h/bindiff.escript.screen.3.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_e24imFzpOVw/SONkpgt4_WI/AAAAAAAAADY/qjgD6hbcJUc/s320/bindiff.escript.screen.3.png" alt="" id="BLOGGER_PHOTO_ID_5252152254763957602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/SONk-Sscl5I/AAAAAAAAADg/R1N836ZMdek/s1600-h/bindiff.escript.screen.4.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_e24imFzpOVw/SONk-Sscl5I/AAAAAAAAADg/R1N836ZMdek/s320/bindiff.escript.screen.4.png" alt="" id="BLOGGER_PHOTO_ID_5252152611777058706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Manual inspection of the screenshot on the right will show that the code performs equivalent tasks, but that hardly any instructions remain identical.&lt;br /&gt;&lt;br /&gt;Proceeding further down the list of matches, it turns out that results start deteriorating once both confidence and similarity drop below 0.3 -- but we have around 950 matches with higher scores, e.g. we have successfully identified 950 functions in Escript.api. While this is signifcantly less than the 1900 functions that we perhabs could have identified, it is still pretty impressive: After all, we do not know which exact version of SpiderMonkey was used to compile Escript.api, and significant changes could have been made to the code.&lt;br /&gt;&lt;br /&gt;Clearly, we're a long way from matching 95% -- but we're very close to the 50% barrier, and will work hard to improve the 50% to 75% and beyond :-)&lt;br /&gt;&lt;br /&gt;Anyhow, what does all this have to do with automatic classification and correlation of malware ?&lt;br /&gt;&lt;br /&gt;I think the drastic differences induced by platform/compiler changes make it pretty clear that statistical measures that do not focus on the structure and semantics of the executable, but on some "simple" measure like instruction frequencies, fail. All the time. Behaviorial methods might have a role to play, but they will not help you one bit if you acquire memory from a compromised machine, and are trivially obfuscated by adding random noisy OS interaction.&lt;br /&gt;&lt;br /&gt;I am happy to kill two birds with one stone: By improving the comparison engine, I am making my life easier when I have to disassemble Pix -- and at the same time, I am improving the our malware classification engine. Yay :-)&lt;br /&gt;&lt;br /&gt;Anyhow, as mentioned above: I am at the Virus Bulletin conference -- if anyone wishes to have a chat or have our products demo'ed, please do not hesitate to send mail to info@zynamics.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-216789509622738085?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/216789509622738085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=216789509622738085' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/216789509622738085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/216789509622738085'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/09/improving-binary-comparison-and-its.html' title='Improving Binary Comparison (and it&apos;s implication for malware classification)'/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e24imFzpOVw/SONvZAuuaEI/AAAAAAAAADo/AoHtZ2_4G08/s72-c/bindiff.pix.screen.3.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6229658350831213140</id><published>2008-07-31T02:20:00.000-07:00</published><updated>2008-07-31T02:22:07.668-07:00</updated><title type='text'></title><content type='html'>My 100th blog post, and why my blog entries never have titles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hey all, this is my 100th blog post. And again, it has no title. This is not due to me feeling too cool to provide one, it's simply a matter of my "create" window in blogger not having a title field. I don't know why.&lt;br /&gt;&lt;br /&gt;Anyhow, the real reason for the blog post: As of today, I'm done with my exams. Which makes me very happy, and will hopefully mean I will get around to blogging more often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6229658350831213140?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6229658350831213140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6229658350831213140' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6229658350831213140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6229658350831213140'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/my-100th-blog-post-and-why-my-blog.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3741811269191367428</id><published>2008-07-25T23:20:00.000-07:00</published><updated>2008-07-25T23:21:10.882-07:00</updated><title type='text'></title><content type='html'>I think everybody should read &lt;a href="http://www.recurity-labs.de/head.html#n15"&gt;FX's excellent post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3741811269191367428?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3741811269191367428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3741811269191367428' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3741811269191367428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3741811269191367428'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/i-think-everybody-should-read-fxs.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3960678494499539798</id><published>2008-07-22T14:33:00.000-07:00</published><updated>2008-07-22T14:56:31.167-07:00</updated><title type='text'></title><content type='html'>A few short notes on what's being reported:&lt;br /&gt;&lt;br /&gt;It seems that after my previous speculation, a few unforeseen things happened:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Apparently, my post, while partially incorrect, was somewhere close to the truth&lt;/li&gt;&lt;li&gt;A third party accidentally posted full details on the issue, which corrected my mistakes. Shortly after posting these details, the post was pulled down again, but was archived by search engines (and those that had subscribed to the blog where it was posted).&lt;/li&gt;&lt;/ul&gt;There have been a number of slightly incorrect press reports which I'd like to clarify:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I posted a &lt;span style="font-weight: bold;"&gt;partially incorrect, but close,&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;guess&lt;/span&gt; on what the DNS issue might be. That is not the same as "publishing a reliable way to poison DNS". It is guessing how it might be done.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I did &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; pull down any posts from my blog.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I do not think anything I have posted takes away from Dan's superb work on this issue. Some people are of the opinion that I "stole his thunder" for his Blackhat talk, and I disagree strongly: Dan's talk is a full hour on DNS, and all the interesting things within DNS. My post was a vague guess.&lt;br /&gt;&lt;br /&gt;Imagine: A world-renowned particle physics expert decides to give a one-hour lecture in your hometown, and on your way there some guy on the street tells you "I think he will talk about (...30 seconds of physics here...)". Would you decide that listening to the physics expert talk is no longer necessary because the guy on the street told you everything ?&lt;br /&gt;&lt;br /&gt;Also: Guessing how something &lt;span style="font-weight: bold;"&gt;is done&lt;/span&gt; knowing &lt;span style="font-weight: bold;"&gt;it can be done&lt;/span&gt; is easy. Dan did the hard part: Coming up with a clever attack in a protocol that is relied on everywhere. My guess doesn't come close to comparing to what Dan has done: He spotted something that everyone else missed beforehand. He also handled the entire situation with a lot of endurance, patience, and determination. We disagree on whether people have a right (or even duty) to discuss what the issue might be, but that doesn't mean that I do not have the greatest respect for Dan. And his talk will contain much more of interest than my silly 30 lines.&lt;br /&gt;&lt;br /&gt;I think (German news site) &lt;a href="http://www.heise-online.co.uk/news/DNS-security-problem-details-released--/111145"&gt;Heise&lt;/a&gt; summed it up well:&lt;br /&gt;"In fact, all of Dullien's hunches had already been &lt;a target="_blank" href="http://www.kb.cert.org/vuls/id/800113" rel="external"&gt;sketched out the day that US-CERT published a vulnerability note&lt;/a&gt; on the security hole."&lt;br /&gt;&lt;br /&gt;I guessed. I was close, perhabs closer than others, but no cigar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3960678494499539798?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3960678494499539798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3960678494499539798' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3960678494499539798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3960678494499539798'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/few-short-notes-on-whats-being-reported.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4444348861149115121</id><published>2008-07-21T01:17:00.000-07:00</published><updated>2008-07-21T01:22:59.143-07:00</updated><title type='text'></title><content type='html'>On Dan's request for "no speculation please"&lt;br /&gt;&lt;br /&gt;I know that Dan asked the public researchers to "not speculate publicly" about the vulnerability, in order to buy people time. This is a commendable goal. I respect  Dans viewpoint, but I disagree that this buys anyone time (more on this below). I am fully in agreement with the entire way he handled the vulnerability (e.g. getting the vendors on board, getting the patches made and released, and I understand his decision not to disclose extra information) except the proposed "discussion blackout".&lt;br /&gt;&lt;br /&gt;In a strange way, if nobody speculates publicly, we are pulling wool over the eyes of the general public, and ourselves. Consider the following:&lt;br /&gt;&lt;br /&gt;Let's assume that the DNS problem is sufficiently complicated that an average person that has _some_ background in security, but little idea of protocols or DNS, would take N days to figure out what is problem is.&lt;br /&gt;So clearly, the assumption behind the "discussion blackout" is that no evil person will figure it out before the end of the N days.&lt;br /&gt;&lt;br /&gt;Let's say instead of having an average person with _some_ background in security, we have a particularly bright evil person. Perhaps someone whose income depends on phishing, and who is at the same time bright enough to build a reasonably complicated rootkit. This person is smart, and has a clear financial incentive to figure this out. I'd argue that it would take him N/4 days.&lt;br /&gt;&lt;br /&gt;By asking the community not to publicly speculate, we make sure that we have no idea what N actually is. We are not buying anybody time,  we are buying people a warm and fuzzy feeling.&lt;br /&gt;&lt;br /&gt;It is imaginable that N is something like 4 days. We don't know, because there's no public speculation.&lt;br /&gt;&lt;br /&gt;So in that case, we are giving people 29 days of "Thank us for buying you time.", when in fact we have bought them a false perception of having time. The actual time they have is N/4th, and we're just making sure they think that N/4th &gt; 30. Which it might not be. It might be ... 1.&lt;br /&gt;&lt;br /&gt;It all reminds me of a strange joke I was told last week. It's a russian joke that makes fun of the former east german government, so it might not be funny to everyone. I apologize up front: I am both german and a mathematician, so by definition the following can't be funny.&lt;br /&gt;&lt;br /&gt;"Lenin travels with the train through Russia, and the train grinds to a halt. Engine failure. Lenin sends all workers in the factory that might be responsible to a labor camp.&lt;br /&gt;&lt;br /&gt;Stalin travels with the train through Russia a few years later, and the train grinds to a halt. Engine failure. Stalin has all workers in the factory that might be responsible shot.&lt;br /&gt;&lt;br /&gt;Honecker (the former head of State of the GDR) travels with the train through Russia. The train grinds to a halt. Engine failure. Honecker has a brilliant idea: "The people that are responsible should be forced to rock the train, so we can sit inside and feel like it is still running." "&lt;br /&gt;&lt;br /&gt;It feels like we're all trying to rock the train.&lt;br /&gt;&lt;br /&gt;If there was public speculation, we'd at least get a lower boundary on the "real" N, not the N we wish for.&lt;br /&gt;&lt;br /&gt;So I will speculate.&lt;br /&gt;&lt;br /&gt;The last weeks I was in the middle of preparing for an exam, so I really didn't have time to spend on the DNS flaw. I couldn't help myself though and spent a few minutes every other evening or so reading a DNS-for-dummies-text. I have done pretty much no protocol work in my life, so I have little hope for having gotten close to the truth.&lt;br /&gt;&lt;br /&gt;As such, anyone with a clue will probably laugh at my naive ideas. Here's my speculation:&lt;br /&gt;&lt;br /&gt;Mallory wants to poison DNS lookups on server ns.polya.com for the domain www.gmx.net. The nameserver&lt;br /&gt;for gmx.net is ns.gmx.net. Mallory's IP is 244.244.244.244.&lt;br /&gt;&lt;br /&gt;Mallory begins to send bogus requests for www.ulam00001.com, www.ulam00002.com ... to ns.polya.com.&lt;br /&gt;ns.polya.com doesn't have these requests cached, so it asks a root server "where can I find the .com NS?"&lt;br /&gt;It then receives a referral to the .com NS. It asks the nameserver for .com where to find the nameserver for ulam00001.com, ulam00002.com etc.&lt;br /&gt;&lt;br /&gt;Mallory spoofs referrals claiming to come from the .com nameserver to ns.polya.com. In these referrals, it says that the nameserver responsible for ulamYYYYY.com is a server called ns.gmx.net and that this server is located at 244.244.244.244. Also, the time to live of this referral is ... long ...&lt;br /&gt;&lt;br /&gt;Now eventually, Mallory will get one such referral spoofed right, e.g. the TXID etc. will be guessed properly.&lt;br /&gt;&lt;br /&gt;ns.polya.com will then cache that ns.gmx.net can be found at ... 244.244.244.244. Yay.&lt;br /&gt;&lt;br /&gt;The above is almost certainly wrong. Can someone with more insight into DNS tell me why it won't work ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4444348861149115121?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4444348861149115121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4444348861149115121' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4444348861149115121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4444348861149115121'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/on-dans-request-for-no-speculation.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-867388075044006314</id><published>2008-07-13T09:59:00.000-07:00</published><updated>2008-07-13T10:14:43.040-07:00</updated><title type='text'></title><content type='html'>*Blogspam*&lt;br /&gt;Advanced Reverse Engineering Trainings Class&lt;br /&gt;&lt;br /&gt;We still have a number of seats in our advanced RE class available. The class&lt;br /&gt;will be held on the following three days:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Wednesday the 1st of October&lt;/li&gt;&lt;li&gt;Thursday the 2nd of October&lt;/li&gt;&lt;li&gt;Friday the 3rd of October&lt;/li&gt;&lt;/ol&gt;The class will be held in Frankfurt(Main) in Germany. &lt;br /&gt;The class is limited to 17 students and will cover a lot of interesting ground. Amongst the things we will be teaching are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What a C++ compiler does and how to recognize these things in a binary:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;How to recover classes and inheritance,&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;What templates will do in the binary&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Using the helping hand of MS RTTI to recover classnames and generate inheritance diagrams from the binary&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;Getting the most out of the RE-DB SQL schema -- storing disassemblies in a uniform way in a database&lt;/li&gt;&lt;li&gt;Differential debugging and isolation of security-critical features (e.g. "where in the world is the encryption code again ?")&lt;/li&gt;&lt;li&gt;Crafting malicious input to reach target program locations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Working on network infrastructure:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Loading ROM images into IDA: IOS, Netscreen etc.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Generic methods of identifying the base address&lt;/li&gt;&lt;li&gt;Debugging IOS (and other network infrastructure) using BinNavi and the GDB protocol&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Using BinDiff to full advantage:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Patch Diffing&lt;/li&gt;&lt;li&gt;Porting comments &amp;amp; names&lt;/li&gt;&lt;li&gt;Porting symbols of statically linked libraries (such as OpenSSL) back into your disassembly&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;A reverse engineer's guide to static analysis:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The reverse engineering intermediate language REIL&lt;/li&gt;&lt;li&gt;Monotone frameworks, lattices, and fun things to do with them&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Lots and lots of fun things to do with Python&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The class will be taught by me (Halvar Flake), Ero Carrera, and Felix 'Fx' Lindner.&lt;br /&gt;&lt;br /&gt;The class will be held in a small Hotel called "Villa Orange" -- which has about 20 rooms, so usually the entire Hotel consists of reverse engineers.&lt;br /&gt;&lt;br /&gt;For more info, visit&lt;br /&gt;    &lt;a href="http://www.zynamics.com/index.php?page=trainings"&gt;http://www.zynamics.com/index.php?page=trainings&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;br /&gt;PS: It might be of interest to some readers that the Oktoberfest is from the 20th of September to the 5th of October this year -- this means you can either attend Octoberfest before or after the trainings class (although we recommend the latter).&lt;br /&gt;*End of Blogspam*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-867388075044006314?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/867388075044006314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=867388075044006314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/867388075044006314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/867388075044006314'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/blogspam-advanced-reverse-engineering.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-5317906670549509804</id><published>2008-07-13T04:37:00.000-07:00</published><updated>2008-07-13T04:40:59.242-07:00</updated><title type='text'></title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&gt; Supplemental note to Halvar &amp;amp; everybody else who has said, in effect, "this&lt;br /&gt;&gt; is why SSL was invented" -- there's more to internet security than the route&lt;br /&gt;&gt; from your computer to your online bank.  Have you thought about what this&lt;br /&gt;&gt; bug implies for NTLM?  Or every virgin OS installation on the planet?  Or&lt;br /&gt;&gt; Google's entire business model?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;just to clarify: I did not say this bug wasn't relevant, and I don't want my blog post to be construed&lt;br /&gt;in that manner. What I did say was:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The average user always has to assume that his GW is owned, hence nothing changes for him. Specifically: He does not need to worry more than usual. Check SSL certificates, check host fingerprints. Don't use plaintext    protocols.&lt;/li&gt;&lt;li&gt;For those providing DNS services, it is clearly preferrable to patch. A DNS system without trivial poisoning is preferrable to one with trivial poisoning.&lt;/li&gt;&lt;li&gt;In living memory, we have survived repeated Bind remote exploits, SSH remote exploits, a good number of OpenSSL remote exploits etc. -- I argue that the following inequality holds:&lt;/li&gt;&lt;li&gt;OpenSSL remote &gt;= OpenSSH remote &gt; Bind remote &gt; easy DNS poisoning&lt;/li&gt;&lt;li&gt;I argue this because the left-hand side usually implies the right-hand side given some time &amp;amp; creativity.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The net has survived much worse.&lt;br /&gt;&lt;br /&gt;So I guess summary is: Good find, definitely useful for an attacker, but we have survived much worse without a need for the great-vendor-coordination jazz.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;br /&gt;PS: I am aware that my sangfroid could be likened to a russian roulette player, that after winning 4 games concludes: "This game clearly isn't dangerous."&lt;br /&gt;PPS: It seems that we will find many more critical issues in DNS over the next weeks - it's the first time in years that a significant quantity of people look at the protocol / implementations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-5317906670549509804?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/5317906670549509804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=5317906670549509804' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5317906670549509804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5317906670549509804'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/hey-all-googles-entire-business-model.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4126988598305779966</id><published>2008-07-10T10:09:00.000-07:00</published><updated>2008-07-10T10:31:58.607-07:00</updated><title type='text'></title><content type='html'>All this DNS ...&lt;br /&gt;&lt;br /&gt;I am taking a very brief break from my books to write a few thoughts about this entire DNS thing that everybody seems to be writing about. And reading all this, I can't help but feel like the only one in the room that doesn't understand the joke.&lt;br /&gt;&lt;br /&gt;So Dan Kaminsky found a serious flaw in the implementation of the DNS protocol, apparently allowing DNS cache poisoning. This is good work.&lt;br /&gt;&lt;br /&gt;I fail to understand the seriousness with which this bug is handled though. Anybody who uses the Internet has to assume that his gateway is owned. That is why we have SSL, that is why we have certificates, that is why SSH tells you when the host key changes. DNS can never be trusted - you always have to assume that your ISP's admin runs a broken filesharing server on the same box with BIND.&lt;br /&gt;&lt;br /&gt;If it were legitimate to operate under the assumption that your gateway is not owned, you would not need SSH, or SSL. If I could operate under the assumption that my gateway wasn't owned, I could TELNET everywhere, and transmit my credit card details in the clear.&lt;br /&gt;&lt;br /&gt;I am not saying that Dan's bug doesn't have utility for an attacker -- it's definitely more comfortable/less time consuming to do DNS poisoning than to own the gateway. But for the user, nothing changes, &lt;span style="font-weight: bold;"&gt;irrespective&lt;/span&gt; of whether the patch was applied or not. The basic assumption is always &lt;span style="font-weight: bold;"&gt;my gateway is controlled by my opponent&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I personally think we've seen much worse problems than this in living memory. I'd argue that the Debian Debacle was an order of magnitude (or two) worse, and I'd argue that OpenSSH bugs a few years back were worse.&lt;br /&gt;&lt;br /&gt;So, let's calm down everybody. And I'd even argue that installing the patches is a lot less time-critical (for the user) than in most other scenarios. If you act under the assumption of "my gateway is owned", this should be no risk to you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4126988598305779966?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4126988598305779966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4126988598305779966' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4126988598305779966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4126988598305779966'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/all-this-dns.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2158045987435606128</id><published>2008-07-02T07:26:00.001-07:00</published><updated>2008-07-02T07:38:53.312-07:00</updated><title type='text'></title><content type='html'>The security book that I'd like to see written (and which I'd buy)&lt;br /&gt;&lt;br /&gt;Good security books are few and far between. But IF someone writes the following book, I'll pre-order it immediately, even if it costs a hundred dollars:&lt;br /&gt;&lt;br /&gt;"100 UNIX commands to issue on other people's systems"&lt;br /&gt;&lt;br /&gt;Generally, I am horrible at all things *nix, and there are few enough good books around which teach you clever things to do with a shell. Unfortunately, there is no book that teaches people what to do with a shell on someone else's box.&lt;a href="javascript:void(0)" tabindex="10" onclick="return false;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Someone from Matasano told me they'd post their favourite commands if I wrote this blog post - so let's see it ! :)&lt;br /&gt;&lt;br /&gt;(I'd like to start this by posting, but honestly -- I wouldn't be asking if I knew anything I'd not be embarrassed about. I mentioned above that I suck at all things *nix)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2158045987435606128?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2158045987435606128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2158045987435606128' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2158045987435606128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2158045987435606128'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/07/security-book-that-id-like-to-see.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6355902050302415142</id><published>2008-06-28T10:05:00.000-07:00</published><updated>2008-06-28T10:09:14.521-07:00</updated><title type='text'></title><content type='html'>The RE-DB database format for storing disassemblies&lt;br /&gt;&lt;br /&gt;For those of you that are interested in the disassembly database schema discussed &lt;a href="http://blog.dkbza.org/2007/05/ida2sql-exporting-idas-dissasemblies-to.html"&gt;here&lt;/a&gt; (amongst other places), there is a mailing list for discussion of it now. More information about the ML:&lt;br /&gt;&lt;pre wrap=""&gt;  &lt;a class="moz-txt-link-freetext" href="http://lists.immunityinc.com/mailman/listinfo/re-db"&gt;http://lists.immunityinc.com/mailman/listinfo/re-db&lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6355902050302415142?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6355902050302415142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6355902050302415142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6355902050302415142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6355902050302415142'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/06/re-db-database-format-for-storing.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2607868956221867716</id><published>2008-06-15T21:03:00.000-07:00</published><updated>2008-06-15T21:42:37.077-07:00</updated><title type='text'></title><content type='html'>Intuition, Experience, and the value of getting Pwned&lt;br /&gt;&lt;br /&gt;The following is to be taken mostly proverbially. Names have been changed, primarily to protect my bruised ego.&lt;br /&gt;&lt;br /&gt;There are few things that I hate more than looking stupid or incompetent. At the same time I like trying new things (and this rarely happens without falling flat on your face a couple of dozen times). As a result, I usually do not advertise that I do something before I haven't gotten some confidence in at least not being significantly worse than average.&lt;br /&gt;&lt;br /&gt;So tonight, I had my first free evening in a few weeks. I decided I'd go follow one of my not-publicly-advertised hobbies. I found a place to go, and thought that I was good enough to play.&lt;br /&gt;&lt;br /&gt;I got pwned, and it wasn't pretty.&lt;br /&gt;&lt;br /&gt;There are many different ways of competing and losing. Whenever this happens, it happens with a certain "delta" -- the skill gap between you and your opponent(s). Small deltas usually trigger a reaction of "get up, try again" in me.&lt;br /&gt;&lt;br /&gt;Tonight, the delta between me and the weakest competitor was such a gulf that - within minutes - it was clear that I should practice a few more years before I contemplate coming back. I will not even describe what the delta between me and the stronger competitors was.&lt;br /&gt;&lt;br /&gt;Getting knocked down has one great benefit: After you have been knocked down and realized that there is no sense in getting up quickly, you have a few minutes of extraordinary calm to contemplate the situation - your skill level, your competitors' skill level, the value of experience and intuition.&lt;br /&gt;&lt;br /&gt;No matter how much work you put into something, and no matter how much talent you have, intuition and experience have tremendous value. And they are nigh-impossible to teach, and to accumulate quickly.&lt;br /&gt;&lt;br /&gt;What is intuition ? What is its relation to experience ?&lt;br /&gt;&lt;br /&gt;Intuition is what one bases decisions on when knowledge fails. In any field, there are situations where decisions have to be made with very imperfect and incomplete information. Intuition is what we rely on when we &lt;span style="font-style: italic;"&gt;don't know&lt;/span&gt; anything.&lt;br /&gt;&lt;br /&gt;Intuition is usually based on experience - but whereas one can easily talk about "experiences" (they can be recalled usually), talking about the reasoning behind an intuition is often difficult. If one believes in the theory of two brain hemispheres, intuition lives deeply in the nonverbal part of your brain.&lt;br /&gt;&lt;br /&gt;When I teach classes, or do collaborative code audits, or when I do some sorts of math, I end up in situations where I have a "feeling" about how things "should" be. This feeling is both tremendously useful and horribly frustrating for students and coworkers. The difficulty of verbalizing all the bits that feed an intuition makes it difficult to follow.&lt;br /&gt;&lt;br /&gt;If someone has sufficient experience in a field, some of the things he does seem like magic. My competitors this evening clearly did things I had never seen before, and did so quite well.&lt;br /&gt;&lt;br /&gt;Perhabs a skill can be described as a simple real-valued function.&lt;br /&gt;&lt;br /&gt;Your innate talent and your work investment influence the slope, and the value of the function at a particular point tells you your current direct "knowledge" of a field. Intuition must then be something that is based on the accumulated area under the curve.&lt;br /&gt;&lt;br /&gt;In many situations, it might be possible to catch up with someone experienced on a particular topic in a limited timeframe - but catching up with the value of your "function" is only half the game. You'll have to outperform someone for quite a while before your accumulated "area" exceeds his.&lt;br /&gt;&lt;br /&gt;Anyhow, the one thing that I tell myself to get over this is that I was the youngest man in the room by a gap of about 10 years. So I'd like to tell myself that, given that extra 10 years, I could actually compete.&lt;br /&gt;&lt;br /&gt;There's one caveat though: There were several women that were younger than me, and the delta to them was no less than to any of the men.&lt;br /&gt;&lt;br /&gt;I apologize for the excessive vagueness of this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2607868956221867716?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2607868956221867716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2607868956221867716' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2607868956221867716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2607868956221867716'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/06/intuition-experience-and-value-of.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1458676137825088235</id><published>2008-06-15T08:42:00.001-07:00</published><updated>2008-06-15T08:43:12.085-07:00</updated><title type='text'></title><content type='html'>Travelling &amp;amp; Dopplr&lt;br /&gt;&lt;br /&gt;Btw, how many people that travel a lot are using Dopplr ? It seems like&lt;br /&gt;a somewhat clever idea (as I am stuck in silly hotel rooms a lot and&lt;br /&gt;often wonder wether anyone I know is nearby).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1458676137825088235?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1458676137825088235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1458676137825088235' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1458676137825088235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1458676137825088235'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/06/travelling-dopplr-btw-how-many-people.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-8387392369882795139</id><published>2008-06-12T10:24:00.000-07:00</published><updated>2008-06-13T11:46:00.277-07:00</updated><title type='text'></title><content type='html'>Zynamics Canada Tour, Complex analysis and my stupidity&lt;br /&gt;&lt;br /&gt;Hey all -- I know I've been mostly quiet the last weeks. This was principally due to the combination of lots of work at work (the secretary is on vacation) and me having to take a couple of exams.&lt;br /&gt;&lt;br /&gt;I can proudly proclaim that I passed my complex analysis / riemann surfaces exam today. I am not so proud of my performance -- some of the mistakes I made deserve getting my shins kicked. The final grade was pretty ok, I just really hate looking stupid in front of people I deem smart.&lt;br /&gt;&lt;br /&gt;Anyhow, on to other news:&lt;br /&gt;&lt;br /&gt;It's RECon time, and while I cannot attend due to a number of other obligations :-( our BinNavi lead developer Sebastian is attending. So if anyone that is attending RECon would like to have a demo of BinNavi v1.5 OR discuss the cool new things that BinNavi v2 will bring, make sure to drop info@zynamics.com a mail so that we can schedule something.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-8387392369882795139?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/8387392369882795139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=8387392369882795139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8387392369882795139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8387392369882795139'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/06/zynamics-canada-tour-complex-analysis.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-8372938129237539510</id><published>2008-04-28T15:26:00.000-07:00</published><updated>2008-04-29T07:14:35.539-07:00</updated><title type='text'></title><content type='html'>There's a lot of hoopla in German media about the german SIGINT folks having to admit that they &lt;a href="http://www.spiegel.de/international/germany/0,1518,550212,00.html"&gt;trojanized&lt;/a&gt; Afghanistan's Ministry of Commerce and Industry.&lt;br /&gt;&lt;br /&gt;The entire situation is hilarious, as Mrs. Merkel &lt;a href="http://www.timesonline.co.uk/tol/news/world/europe/article2332130.ece"&gt;criticized the chinese&lt;/a&gt; for having sponsored hacking sprees into German government institutions last year - I guess she is not overly happy about all this stuff hitting the press now.&lt;br /&gt;&lt;br /&gt;The first article is actually quite interesting. It is terribly hard to get any information about InfoSec stuff in Europe (we'd need a Mr. Bamford around here I fear), so the article is really amongst the only data points to be found.&lt;br /&gt;&lt;blockquote&gt;In 2006, Division 2 consisted of 13 specialist departments and a management team (Department 20A), employing about 1,000 people. The departments are known by their German acronyms, like MOFA (mobile and operational telecommunications intelligence gathering), FAKT (cable telecommunications intelligence gathering) and OPUS (operational support and wiretapping technology).&lt;br /&gt;&lt;/blockquote&gt;So there are people working on this sort of stuff in Germany after all. I wonder why one never meets any at any security conferences - they either have excellent covers or no budget to travel to any conferences.&lt;br /&gt;&lt;br /&gt;Another amusing tidbit:&lt;br /&gt;&lt;blockquote&gt;Perhaps it will never be fully clear why the BND chose this particular ministry and whether other government agencies in Kabul were also affected -- most of the files relating to the case have apparently been destroyed.&lt;br /&gt;&lt;/blockquote&gt;I find the regularity with which important files regarding espionage or KSK misbehavior are &lt;a href="http://images.zeit.de/text/online/2007/27/Bundeswehr-Loeschaffaere"&gt;destroyed&lt;/a&gt; or lost a little bit ... peculiar.&lt;br /&gt;&lt;br /&gt;There's a bit in the article about emails that have a .de domain ending being automatically discarded by their surveillance tools. Hilarious.&lt;br /&gt;&lt;br /&gt;The issue came to light because during the surveillance a German reporter had her email read, too (she was communicating with an Afghan official whose emails were being read). This is a violation of the freedom of the press here in Germany, and normally, the BND should've dealt with this by reporting their breach to the parliamentary subcommittee for intelligence oversight, which they somehow didn't. A whistleblower inside the BND then sent a letter to a bunch of politicians, making the situation public.&lt;br /&gt;&lt;br /&gt;It's always hard to make any judgements in cases as these, as the public information is prone to being unreliable, but it is encouraging that a whistleblower had the guts to send a letter out. I am a big fan of the notion that everyone is personally responsible for his democracy.&lt;br /&gt;&lt;br /&gt;The topic of intelligence and democracies is always difficult: If one accepts the necessity of intelligence services (which, by their nature, operate in dodgy terrain, and which, due to their requirements for secrecy, are difficult to control democratically), then one has to make sure that parliamentary oversight works well. This implies that the intelligence agencies properly inform the parliamentary committee, and it also implies that the parliamentary committee keeps the information provided confidential.&lt;br /&gt;&lt;br /&gt;There seem to be only two ways to construct parliamentary oversight in a democracy: Pre-operation or post-operation. Pre-operation would have the committee approve of any potentially problematic operation ahead of it being performed. If things go spectacularly wrong, the fault is to be blamed on the committee. The problem with this is secrecy: Such a committee is big, and for operational security it seems dangerous to disseminate any information this widely.&lt;br /&gt;&lt;br /&gt;This appears to be the reason why most democracies seem to opt for a "post-operation" model: The services have in-house legal experts, and these legal experts judge on the 'legality' of a certain operation. The the operation takes place, and the committee is notified after the fact if something goes spectacularly wrong.&lt;br /&gt;&lt;br /&gt;The trouble with this model appears to be that the intelligence service doesn't have much incentive to report any problems: They can always hope the problem goes away by itself. It is the higher-ups in the hierarchy that have to report to the committee, and they are the ones whose heads will roll if things go wrong.&lt;br /&gt;&lt;br /&gt;It appears to be an organisational problem: Information is supposed to flow upwards in the organisational hierarchy, but at the same time, the messenger might be shot. This is almost certain to lead to a situation where important information is withheld.&lt;br /&gt;&lt;br /&gt;I guess it's any managers nightmare that his "subordinates" (horrible word -- this should mean "the guys doing the work and understanding the issues") in the organisation start feeding him misinformation. Organisations start rotting quickly if the bottom-up flow of information is disrupted. The way things are set up here in Germany seems to encourage such disruptions. And if mid-level management is a failure but blocks this information from upper management, the guys in the trenches have not only the right, but the duty to send a letter to upper management.&lt;br /&gt;&lt;br /&gt;I have no clue if there is any country that has these things organized in a better way -- it seems these problems haunt most democracies.&lt;br /&gt;&lt;br /&gt;Anyhow, if anyone happens to stumble across the particular software used in this case, I think it would make for a terribly interesting weekend of reverse engineering -- I am terribly nosy to what sort of stuff the tool was capable of :)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-8372938129237539510?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/8372938129237539510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=8372938129237539510' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8372938129237539510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8372938129237539510'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/04/theres-lot-of-hoopla-in-german-media.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1491704476532841510</id><published>2008-04-25T05:54:00.000-07:00</published><updated>2008-04-25T07:29:49.004-07:00</updated><title type='text'></title><content type='html'>Patch obfuscation etc.&lt;br /&gt;&lt;br /&gt;So it seems the &lt;a href="http://www.cs.cmu.edu/%7Edbrumley/pubs/apeg.html"&gt;APEG paper&lt;/a&gt; is getting a lot of attention these days, and some of the conclusions that are (IMO falsely) drawn from it are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;patch time to exploit is approaching zero&lt;/li&gt;&lt;li&gt;patches should be obfuscated&lt;/li&gt;&lt;/ul&gt;Before I go into details, a short summary of the paper:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;BinDiff-style algorithms are used to find changes between the patched and unpatched version&lt;/li&gt;&lt;li&gt;The vulnerable locations are identified. &lt;/li&gt;&lt;li&gt;Constraint formulas are generated from the code via three different methods:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Static: A graph of all basic blocks on code paths between the vulnerability and the data input into the application is generated, and a constraint formula is generated from this graph.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;Dynamic: An execution trace is taken, and if the vulnerability occurs on a program path that one can already execute. Constraints are generated from this path.&lt;/li&gt;&lt;li&gt;Dynamic/Static: Instead of going from data input to target vulnerability (as in the static approach), one can use an existing path that comes "close" to the vulnerability as starting point from which to proceed with the static approach. &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;The (very powerful) solver STP is used for solving these constraint systems, generating inputs that exercise a particular code path that triggers the vulnerability.&lt;/li&gt;&lt;li&gt;A number of vulnerabilities are discussed which were successfully triggered using the methods described in the paper&lt;/li&gt;&lt;li&gt;The conclusion is drawn that within minutes of receiving a patch, attackers can use automatically generated exploits to compromise systems.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;In essence, the paper implements automated input crafting. The desire to do this has been described before -- Sherri Sparks' talk on "Sidewinder" (using genetic algorithms to generate inputs to exercise a particular path) comes to mind, and many discussions about generating a SAT problem from a particular program path to be fed into a SAT solver (or any other solver for that matter).&lt;br /&gt;&lt;br /&gt;What the APEG paper describes is impressive -- using STP is definitely a step forwards, as it appears that STP is a much superior solver to pretty much everything else that's publically available.&lt;br /&gt;&lt;br /&gt;It is equally important to keep the limitations of this approach in mind  - people are reacting in a panicked manner without necessarily understanding what this can and cannot do.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Possible NP-hardness of the problem. Solving for a particular path is essentially an instance of SAT, and we know that this &lt;span style="font-weight: bold;"&gt;can&lt;/span&gt; be NP-hard. It doesn't have to be, but the paper indicates many formulas STP cannot solve in reasonable time. While this doesn't imply that these formulas are in fact hard to solve, it shows how much this depends on the quality of your solver and the complexity of the formulas that are generated.&lt;/li&gt;&lt;li&gt;The method described in the paper does &lt;span style="font-weight: bold;"&gt;not generate exploits&lt;/span&gt;. It &lt;span style="font-weight: bold;"&gt;triggers vulnerabilities&lt;/span&gt;. Anyone who has worked on even a moderately complex issue in the past knows that there is often a long and painful path between triggering an overflow and making use of it. The paper implies that the results of APEG are immediately available to compromise systems. This is, plainly, not correct. If APEG is successful, the results can be used to cause a crash of a process, and I refuse to call this a "compromise". Shooting a foreign politician is not equal to having your intelligence agency compromise him.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Semantic issues. All vulnerabilities for which this method worked were extremely simple. The actual interesting IGMP overflow Alex Wheeler had discovered, for example, would not be easily dealt with by these methods -- because program state has to be modified for that exploit in a non-trivial way. In essence, a patch can tell you that "this value YY must not exceed XX", but if YY is not direct user data but indirectly calculated through other program events, it is not (yet) possible to automatically set YY.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So in short one could say that APEG will succeed in &lt;span style="font-weight: bold;"&gt;triggering&lt;/span&gt; a vulnerability if the following conditions are met:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The program path between the vulnerability and code that one already knows how to execute is comparatively simple&lt;/li&gt;&lt;li&gt;The generated equation systems are not too complex for the solver&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The bug is "linear" in the sense that no complicated manipulation of program state is required to trigger the vulnerability&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;This is still &lt;span style="font-weight: bold;"&gt;very impressive&lt;/span&gt; stuff, but it reads a lot less dramatic than "one can generate an exploit automatically from an arbitrary patch". All in all, great work, and I do not cease to be amazed by the results that STP has brought to code analysis in general. It confirms that better solvers ==&gt; better code analysis.&lt;br /&gt;&lt;br /&gt;What the paper gets wrong IMO are the conclusions about what should be done in the patching process. It argues that because "exploits can be generated automatically, the patching process needs fixing". This is a flawed argument, as ... uhm ... useful exploits can't (yet) be generated automatically. Triggering a vulnerability is not the same as exploiting it, especially under modern operating systems (due to ASLR/DEP/Pax/GrSec).&lt;br /&gt;&lt;br /&gt;The paper proposes a number of ways of fixing the problems with the current patching process:&lt;br /&gt;&lt;br /&gt;1. Patch obfuscation. The proposal that zombie-like comes back every few years: Let's obfuscate security patches, and all will be good. The problems with this are multifold, and quite scary:&lt;br /&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;Obfuscated executables make debugging for MS ... uhm ... horrible, unless they can undo it themselves&lt;/li&gt;&lt;li&gt;Obfuscated patches remove an essential liberty for the user: The liberty to have a look at a patch and make sure that the patch isn't in fact a malicious backdoor.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We don't have good obfuscation methods that do not carry a horrible performance impact.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Obfuscation methods have the property that they need to be modified whenever attackers break them automatically. The trouble is: Nobody would know if the attackers have broken them. &lt;span style="font-weight: bold;"&gt;It is thus safe to assume that after a while, the obfuscation would be broken, but nobody would be aware of it.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Summary: Obfuscation would probably a) impact the user by making his code slower and b) impact the user by disallowing him from verifying that a patch is not malicious and c) create support nightmares for MS because they will have to debug obfuscated code. At the same time, it will not provide long-term security.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;2. Patch encryption: Distributing encrypted patches, and then finally distributing the encryption key so all systems update at once. This proposal seems to assume that bandwidth is the limiting factor in patch installation, which, as far as I can tell, it is not. This proposal does less damage than obfuscation though -- instead of creating certain disaster with questionable benefit, this proposal just "does nothing" with questionable benefit.&lt;br /&gt;&lt;br /&gt;3. Faster patch distribution. A laudable goal, nothing wrong with this.&lt;br /&gt;&lt;br /&gt;Anyhow, long post, short summary: The APEG paper is really good, but it uses confusing terminology (exploit ~= vulnerability trigger) which leads to it's impact on patch distribution being significantly overstated. It's good work, but the sky isn't falling, and we are far away from generating reliable exploits automatically from arbitrary patches. APEG does generate usable vulnerability triggers for vulnerabilities of a certain form. And STP-style solvers are important.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1491704476532841510?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1491704476532841510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1491704476532841510' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1491704476532841510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1491704476532841510'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/04/patch-obfuscation-etc.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-477961021056335825</id><published>2008-04-25T03:18:00.000-07:00</published><updated>2008-04-25T04:47:20.802-07:00</updated><title type='text'></title><content type='html'>I have not been blogging nor following the news much in recent months, as I am frantically trying to get all my university work sorted. While I have been unsuccessful at getting everything sorted at the schedule I had set myself, I am making progress, and expect to be more visibly active again in fall.&lt;br /&gt;&lt;br /&gt;Today, I found out that my blog entry on the &lt;a href="http://blogs.technet.com/bluehat/archive/2007/09/28/vista-and-vigilance.aspx"&gt;BlueHat blog&lt;/a&gt; drew more feedback than I had thought. I am consistently surprised that people read the things that I write.&lt;br /&gt;&lt;br /&gt;Reading my blog post again, I find it so terse I feel I have to apologize for it and explain how it ended up this way. It was the last day of Bluehat, and I was very tired. Those that know me know me well know that my sense of humor is difficult at the best of times. I have a great talent of sounding bitter and sarcastic when in fact I am trying to be funny and friendly (this had lead to many unfortunate situations in my life :-). So I sat down and tried to write a funny blog post. I was quite happy with it when it was done.&lt;br /&gt;&lt;br /&gt;In an attack of unexpected sanity, I decided that someone else should read over the post, so I asked Nitin, a very smart (and outrageously polite) MS engineer. He read it, and told me (in his usual very polite manner) ... that the post sucked. I have to be eternally thankful to him, because truly, it did. Thanks Nitin !&lt;br /&gt;&lt;br /&gt;So I deleted it, and decided that writing down just the core points of the first post. I removed all ill-conceived attempts at humor, which made the post almost readable. It also limited the room for potential misunderstandings.&lt;br /&gt;&lt;br /&gt;I would like to clarify a few things that seem to have been misunderstood though:&lt;br /&gt;&lt;br /&gt;I did not say "hackers &lt;span style="font-weight: bold;"&gt;have&lt;/span&gt; to" move to greener pastures. I said "hackers &lt;span style="font-weight: bold;"&gt;will&lt;/span&gt; move to greener pastures for a while". This is a very important distinction. In order to clarify this, I will have to draw a bit of a larger arc:&lt;br /&gt;&lt;br /&gt;Attackers are, at their heart, opportunists. Attacks go by the old basketball saying about jumpshot technique: "Whoever scores is right". There is no "wrong" way of compromising a system. Success counts, and very little else.&lt;br /&gt;&lt;br /&gt;When attackers pick targets, they consider the following dimensions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Strategic position of the target&lt;/span&gt;. I will not go into this (albeit important) point too deeply. Let's just assume that, since we're discussing Vista (a desktop OS), the attacker has made up his mind and wishes to compromise a client machine.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Impact by market share&lt;/span&gt;: The more people you can hack, the better. A widely-installed piece of software beats a non-widely installed piece of software in most cases. There's many ways of doing this (Personal estimates, Gartner reports, internet-wide scans etc.).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Wiggle Room: &lt;/span&gt;How many ways are there for the attacker to interact with the software ? How much functionality does the software have that operates on potentially attacker-supplied data ? If there are many ways to interact with the application, the odds of being able to turn a bug into a usable attack are greatly increased, and the odds of being able to reach vulnerable code locations are greatly increased. Perhabs the more widely used term is "attack surface", but that term fails to convey the importance of "wiggle room" for exploit reliability. Any interaction with the program is useful.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Estimated quality of code&lt;/span&gt;: Finding &lt;span style="font-weight: bold;"&gt;useful&lt;/span&gt; bugs is actually quite time consuming. With some experience, a few glances at the code will give an experienced attacker some sort of "gut feeling" about the overall quality of the code.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;From these four points, it is clear why IE and MSRPC got hammered so badly in the past: They pretty much had optimal scores on Impact -- they were everywhere. They provided plenty of "Wiggle Room": IE with client-side scripting (yay!), MSRPC through the sheer number of different RPC calls available. The code quality was favourable to the attacker up until WinXP SP2, too.&lt;br /&gt;&lt;br /&gt;MS has put more money into SDL than most other software vendors. This holds true both in absolute and in relative terms. MS is in a very strong position economically, so they can afford things other vendors (who, contrastingly, are exposed to market forces) cannot.&lt;br /&gt;&lt;br /&gt;The code quality has improved markedly, decreasing the score on the 4th dimension. Likewise, there has been some reduction in attack surface, decreasing the score on the 3rd dimension. This is enough to convince attackers that their time is better spent on 'weaker' targets. The old chestnut about "you don't have to outrun the bear, you just have to outrun your co-hikers" holds true in security more than anywhere else.&lt;br /&gt;&lt;br /&gt;In the end, it is much more attractive to attack Flash (maximum score on all dimensions) or any other browser plugins that are widely used.&lt;br /&gt;&lt;br /&gt;I stand by my quote that "Vista is arguably the most secure closed-source OS available on the market".&lt;br /&gt;&lt;br /&gt;This doesn't mean it's flawless. It just means it's more secure than previous versions of Windows, and more secure than OS X.&lt;br /&gt;&lt;br /&gt;There was a second part to my blog post, where I mentioned that attackers are waiting for MS to become complacent again. I have read that many people inside Microsoft cannot imagine becoming complacent on security again. While I think this is true on the engineering level, it is imaginable that security might be scaled down by management.&lt;br /&gt;&lt;br /&gt;The sluggish adoption of Vista by end-users is a clear sign that security does not necessarily sell. People buy features, and they cannot judge the relative security of the system. It is thus imaginable that people concerned with the bottom line decide to emphasize features over security again -- in the end, MS is a business, and the business benefits of investing in making code more secure have yet to materialize.&lt;br /&gt;&lt;br /&gt;We'll see how this all plays out :-)&lt;br /&gt;&lt;br /&gt;Anyhow, the next BlueHat is coming up. I won't attend this time, but I am certain that it will be an interesting event.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-477961021056335825?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/477961021056335825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=477961021056335825' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/477961021056335825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/477961021056335825'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/04/i-have-not-been-blogging-nor-following.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7180190866284487951</id><published>2008-04-02T11:37:00.000-07:00</published><updated>2008-04-02T11:39:58.793-07:00</updated><title type='text'></title><content type='html'>My valued coworker, SP, has just released his "pet project", Hexer. Hexer is a platform-independent Java-based extendible hex editor and can be downloaded under &lt;a href="http://www.zynamics.com/files/Hexer-1_0_0.rar"&gt;http://www.zynamics.com/files/Hexer-1_0_0.rar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's also a good idea to visit &lt;a href="http://www.the-interweb.com/serendipity/"&gt;his blog&lt;/a&gt; where he'll write more about it's features and capabilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7180190866284487951?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7180190866284487951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7180190866284487951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7180190866284487951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7180190866284487951'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/04/my-valued-coworker-sp-has-just-released.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-9154113433285509782</id><published>2008-04-01T16:30:00.001-07:00</published><updated>2008-04-01T16:36:00.583-07:00</updated><title type='text'></title><content type='html'>Oh, before I forget: Ero &amp;amp; me will be presenting on our work on structural malware classification at RSA next week. If anyone wishes to schedule a meeting/demo of any of our things (VxClass/BinDiff/BinNavi), please do not hesitate to contact info@zynamics.com.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/R_LF9nSA8XI/AAAAAAAAADA/qPWiTtDEuKk/s1600-h/reil.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e24imFzpOVw/R_LF9nSA8XI/AAAAAAAAADA/qPWiTtDEuKk/s320/reil.png" alt="" id="BLOGGER_PHOTO_ID_5184423783364096370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Some small eye candy: The screenshot shows BinNavi with our intermediate representation (REIL) made visible. While REIL is still very beta-ish, it should be a standard (and accessible) part of BinNavi at some point later this year.&lt;br /&gt;&lt;br /&gt;Having a good IR which properly models side effects is a really useful thing to have: The guys over at the BitBlazer project in Berkeley have shown some really useful things that can be done using a good IR and a good constraint solver :-). I am positively impressed by several papers they have put out.&lt;br /&gt;&lt;br /&gt;I also can't wait to have more of this sort of stuff in BinNavi :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-9154113433285509782?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/9154113433285509782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=9154113433285509782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/9154113433285509782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/9154113433285509782'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/04/oh-before-i-forget-ero-me-will-be.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e24imFzpOVw/R_LF9nSA8XI/AAAAAAAAADA/qPWiTtDEuKk/s72-c/reil.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2189748746003293320</id><published>2008-04-01T16:24:00.000-07:00</published><updated>2008-04-01T16:30:20.936-07:00</updated><title type='text'></title><content type='html'>Conspiracy theory of the day:&lt;br /&gt;&lt;br /&gt;As everyone, I am following the US primaries, and occasionally discussing with my brother on the implications of the developments for the wider world. My brother is usually good for quite some counter-intuitive insights into things, and described to me a "conspiracy theory" that I find amusing/interesting enough to post here.&lt;br /&gt;&lt;br /&gt;Please be aware that the following is non-partisan: I do not really have an idea on whether I'd prefer Mrs Clinton, Mr Obama or Mr McCain in the white house, and this is not a post that is intended to weigh in on either side.&lt;br /&gt;&lt;br /&gt;I was a bit puzzled on why Mrs Clinton is still in the primary race even though her mathematical odds on winning the democratic nomination seem slim. The conspiracy theory explaining this is the following:&lt;br /&gt;&lt;br /&gt;The true goal now for Mrs Clinton is now 2012, not 2008. If Mr Obama wins the nomination _and_ the presidency, Mrs Clinton will very likely not become president in her lifetime. On the other hand: If she manages to damage Mr Obama bad enough so that Mr McCain enters the white house, she has good cards to win the democratic nomination in 2012, and Mr McCain is unlikely to stay a second term (given his age).&lt;br /&gt;&lt;br /&gt;It's an interesting hypothesis. Anyhow, I should really get to sleep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2189748746003293320?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2189748746003293320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2189748746003293320' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2189748746003293320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2189748746003293320'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/04/conspiracy-theory-of-day-as-everyone-i.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3534818708570864772</id><published>2008-03-11T12:04:00.000-07:00</published><updated>2008-03-11T12:16:37.388-07:00</updated><title type='text'></title><content type='html'>A short real-life story on why cryptography breaks:&lt;br /&gt;&lt;br /&gt;One of the machines that I am using is a vhost hosted at a german hosting provider called "1und1". Clearly, I am accessing this machine using ssh. So a few weeks ago, to my surprise, my ssh warned me about the host key having changed.&lt;br /&gt;&lt;br /&gt;Honored by the thought that someone might take the effort to mount a man-in-the-middle attack for this particular box, my rational brain told me that I should call the tech support of the hosting provider first and ask if any event might've lead to a change in keys.&lt;br /&gt;&lt;br /&gt;After a rather lengthy interaction with the tech support (who first tried to brush me off by telling me to "just accept the new key"), I finally got them to tell me that they upgraded the OS and that the key had changed. After about 20 minutes of discussion, I finally got them to read the new key to me over the phone, and all was good.&lt;br /&gt;&lt;br /&gt;Then, today, the warning cropped up again. I called tech support, a bit annoyed by these frequent changes. My experience was less than stellar - the advice I received was:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;"Just accept the new key"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"The key is likely going to change all the time due to frequent relocations of the vhost so you should always accept it"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"No, there is no way that they can notify me over the phone or in a signed email when the key changes"&lt;/li&gt;&lt;li&gt;"It is highly unlikely that any change that would notify you would be implemented"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"If I am concerned about security, I should really buy an SSL certificate from them" (wtf ??)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"No, it is not possible to read me the key fingerprint over the phone"&lt;/li&gt;&lt;/ol&gt;The situation got better by the minute. After I told them that last time the helpful support had at least read me the fingerprint over the phone, the support person asked how I could be sure that my telephone call hadn't been man-in-the-middled...&lt;br /&gt;&lt;br /&gt;I started becoming slightly agitated at this point. I will speak with them again tomorrow, perhabs I'll be lucky enough to get to 3rd-level-support instead of 2nd level. Hrm. As if "customer service" is a computer game, with increasingly difficult levels.&lt;br /&gt;&lt;br /&gt;So. Summary: 1und1 seems to think crypto is useless and we should all use telnet. Excellent :-/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3534818708570864772?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3534818708570864772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3534818708570864772' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3534818708570864772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3534818708570864772'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/03/short-real-life-story-on-why.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-5600785195091489510</id><published>2008-03-07T00:36:00.001-08:00</published><updated>2008-03-07T00:48:52.685-08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/R9D_36QEqdI/AAAAAAAAAC4/FwKbMthnx44/s1600-h/yarn.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e24imFzpOVw/R9D_36QEqdI/AAAAAAAAAC4/FwKbMthnx44/s320/yarn.png" alt="" id="BLOGGER_PHOTO_ID_5174917307843258834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hey all,&lt;br /&gt;&lt;br /&gt;we have released BinNavi v1.5 last week. Normally, I'd write a lot of stuff here about the new features and all, but this will have to wait for a few days -- I am very tied up with some other work.&lt;br /&gt;&lt;br /&gt;With the v1.5 release, we have added disassembly exporters that export from both OllyDbg and ImmunityDbg to our database format -- this means that Navi can now use disassemblies generated from those two debuggers, too. The screenshot above is BinNavi running on Ubuntu with a disassembly exported from the Windows VW into which we are debugging.&lt;br /&gt;&lt;br /&gt;Anyhow, the real reason for this post is something completely different: We don't advertise this much on our website, but our tools are available in a sort of 'academic program':&lt;br /&gt;&lt;br /&gt;If you are currently enrolled as a full-time-student at a university and have an interesting problem you'd like to use our tools for, you can get a license of our tools (Diff/Navi) for a very moderate amount of money. All you have to do is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Contact us (info@zynamics.com) with your name/address/university etc.&lt;/li&gt;&lt;li&gt;Explain what project you'd like to work on with our tools&lt;/li&gt;&lt;li&gt;Sign an agreement that you will write a paper about your work (after it's done) that we can put on our website&lt;/li&gt;&lt;/ul&gt;Oh, and you of course have to do the work then and write the paper :-)&lt;br /&gt;Anyhow, I have to get back to work. Expect more posts from me later this year -- things are very busy for me at the moment.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-5600785195091489510?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/5600785195091489510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=5600785195091489510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5600785195091489510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5600785195091489510'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/03/hey-all-we-have-released-binnavi-v1.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e24imFzpOVw/R9D_36QEqdI/AAAAAAAAAC4/FwKbMthnx44/s72-c/yarn.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1837434420996525690</id><published>2008-02-12T09:09:00.000-08:00</published><updated>2008-02-12T09:16:44.178-08:00</updated><title type='text'></title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;We will be releasing BinNavi v1.5 next week -- and I can happily say that we will have&lt;br /&gt;many cool improvements that I will blog about next week, once it is out.&lt;br /&gt;&lt;br /&gt;Pictures often speak louder than words, so I'll post some of them here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.zynamics.com/files/navi15.1.png"&gt;http://www.zynamics.com/files/navi15.1.png&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.zynamics.com/files/navi15.2.png"&gt;http://www.zynamics.com/files/navi15.2.png&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.zynamics.com/files/navi15.3.png"&gt;http://www.zynamics.com/files/navi15.3.png&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.zynamics.com/files/tree_lookup.jpg"&gt;http://www.zynamics.com/files/tree_lookup.jpg&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A more detailed list of new features will be posted next week.&lt;br /&gt;&lt;br /&gt;VxClass is making progress as well -- but more on this next week.&lt;br /&gt;&lt;br /&gt;If there's anyone interested in our products (BinDiff, BinNavi, VxClass)&lt;br /&gt;in the DC area, I should be free to meet &amp;amp; do a presentation on the products&lt;br /&gt;next week.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1837434420996525690?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1837434420996525690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1837434420996525690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1837434420996525690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1837434420996525690'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/02/hey-all-we-will-be-releasing-binnavi-v1.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1346640079357239969</id><published>2008-01-08T17:27:00.000-08:00</published><updated>2008-01-08T17:36:05.209-08:00</updated><title type='text'></title><content type='html'>Happy new year everyone.&lt;br /&gt;&lt;br /&gt;In June 2006 Dave Aitel wrote on Dailydave that "wormable bugs" are getting rarer. I think he is right, but this month's patch tuesday brings us a particularly cute bug.&lt;br /&gt;&lt;br /&gt;I have created a small shockwave film and uploaded it to&lt;br /&gt;&lt;a href="http://www.zynamics.com/files/ms08001.swf"&gt;http://www.zynamics.com/files/ms08001.swf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy ! :-)&lt;br /&gt;&lt;br /&gt;On other news: We'll be posting screenshots of BinNavi v1.5 (due out in February) and the current VxClass version in the next two weeks - they are coming along nicely.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1346640079357239969?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1346640079357239969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1346640079357239969' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1346640079357239969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1346640079357239969'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2008/01/happy-new-year-everyone.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1885016572695689637</id><published>2007-10-07T12:11:00.000-07:00</published><updated>2007-10-07T12:35:41.502-07:00</updated><title type='text'></title><content type='html'>Our trainings class in Frankfurt is over, and I think I can safely say that it was a resounding success. I guess the coolest thing about SABRE is our customers. I hope to see you all again someplace again.&lt;br /&gt;&lt;br /&gt;PS: I forgot to distribute the python code from the last day, it will be mailed to all participants on monday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1885016572695689637?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1885016572695689637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1885016572695689637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1885016572695689637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1885016572695689637'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/10/our-trainings-class-in-frankfurt-is.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-669297369954494993</id><published>2007-09-24T03:36:00.000-07:00</published><updated>2007-09-24T03:39:45.336-07:00</updated><title type='text'></title><content type='html'>Blackhat Japan&lt;br /&gt;&lt;br /&gt;After the immigration SNAFU in summer, I am scheduled to give my trainings class at Blackhat Japan this November - so if anyone wants to come, sign up now :-)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-669297369954494993?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/669297369954494993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=669297369954494993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/669297369954494993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/669297369954494993'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/09/blackhat-japan-after-immigration-snafu.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-490597127257422134</id><published>2007-09-04T06:48:00.000-07:00</published><updated>2007-09-04T11:20:04.313-07:00</updated><title type='text'></title><content type='html'>BinDiff v2.0 finally released !&lt;br /&gt;&lt;br /&gt;This is "blog-spam":&lt;br /&gt;&lt;br /&gt;After a long wait, SABRE Security GmbH is proud to announce&lt;br /&gt;the official release of BinDiff v2.0. This biggest improvements are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Higher comparison speeds&lt;/li&gt;&lt;li&gt;Greater accuracy for functions which change only in the structure of the graph, not in the number of nodes/edges&lt;/li&gt;&lt;li&gt;Much greater accuracy on the instruction level comparison&lt;/li&gt;&lt;li&gt;The arguably prettiest UI of all binary comparison tools around&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The many detail improvements are too numerous to mention here.&lt;br /&gt;Check the &lt;a href="http://www.sabre-security.com/products/bindiff.html"&gt;screenshots&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/Rt2hSisBHNI/AAAAAAAAACg/piSR-NqQDlI/s1600-h/bindiff_shot_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e24imFzpOVw/Rt2hSisBHNI/AAAAAAAAACg/piSR-NqQDlI/s320/bindiff_shot_1.png" alt="" id="BLOGGER_PHOTO_ID_5106414892429155538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/Rt2hnSsBHOI/AAAAAAAAACo/YLyAmk2xha8/s1600-h/bindiff_shot_2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e24imFzpOVw/Rt2hnSsBHOI/AAAAAAAAACo/YLyAmk2xha8/s320/bindiff_shot_2.png" alt="" id="BLOGGER_PHOTO_ID_5106415248911441122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/Rt2htSsBHPI/AAAAAAAAACw/dQVlHi454oY/s1600-h/bindiff_shot_3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e24imFzpOVw/Rt2htSsBHPI/AAAAAAAAACw/dQVlHi454oY/s320/bindiff_shot_3.png" alt="" id="BLOGGER_PHOTO_ID_5106415351990656242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Contact info@sabre-security.com for an evaluation version !&lt;br /&gt;&lt;br /&gt;-- SABRE Security Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-490597127257422134?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/490597127257422134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=490597127257422134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/490597127257422134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/490597127257422134'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/09/bindiff-v2.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e24imFzpOVw/Rt2hSisBHNI/AAAAAAAAACg/piSR-NqQDlI/s72-c/bindiff_shot_1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-8789076434680537415</id><published>2007-08-04T12:23:00.001-07:00</published><updated>2007-08-04T12:34:28.913-07:00</updated><title type='text'></title><content type='html'>I am quite famous for botching every marketing effort that we try to undertake at SABRE -- a prime example of my ineptitude is the fact that we released BinNavi v1.2 in ... uh ... January, with a ton of new stuff, and I still hadn't updated the website to show some nice pictures.&lt;br /&gt;&lt;br /&gt;Similarly for BinDiff -- v2.0 beta has been used by many customers without a hitch, and is a big improvement on the UI front. So I finally got around to adding some &lt;a href="http://www.sabre-security.com/products/binnavi.html"&gt;nice&lt;/a&gt; &lt;a href="http://www.sabre-security.com/products/bindiff.html"&gt;pictures&lt;/a&gt; today.&lt;br /&gt;&lt;br /&gt;Also, for those that are into the entire idea of malware classification, you can see some screenshots of &lt;a href="http://www.vxclass.com"&gt;VxClass&lt;/a&gt;, our unpacker-and-classifier (Disclosure: Before Spender writes a comment ;) about our unpacker's inability to handle TheMida and similar emulating packers, I will do so myself: We do not handle emulating packers at the moment! We do not reconstruct PEs ! But if you have a cool unpacker you can just upload the unpacked file to our classifier :)&lt;br /&gt;&lt;br /&gt;So with this blog post it's confirmed: I am not only a failure at marketing, I am also a failure at attempting to pass off marketing as a regular blog post. Have a good weekend everyone !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-8789076434680537415?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/8789076434680537415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=8789076434680537415' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8789076434680537415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/8789076434680537415'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/08/i-am-quite-famous-for-botching-every.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3163949395283974287</id><published>2007-08-02T16:11:00.000-07:00</published><updated>2007-08-02T16:50:04.821-07:00</updated><title type='text'></title><content type='html'>I have reached the intellectual level of the sports spectator in an armchair: Comment first, read and understand later. After the last Blog comment, I actually went to read the slides of Joanna's presentation. To summarize: I find the slides informative and well-thought-out. I found that the empirical bits appear plausible and well-researched. The stuff following slide 90 was very informative.  It is one of the most substantial slide decks I have read in recent times.&lt;br /&gt;&lt;br /&gt;Some points to take home though: Whoever writes a rootkit puts himself in a defending positions. Defending positions against all known attacks is possible given perfection on the side of the defender. That is bloody hard to achieve. There is no doubt that for any given attack one can think of a counter attack, but it's a difficult game to play that doesn't allow for errors.&lt;br /&gt;&lt;br /&gt;I think the core point that we should clarify is that rootkits should not fall into an adversary's hand to be analyzed. Once they are known, they fall into a defending position. Defending positions are not long-term substainable, as software has a hard time automatically adapting to new threats.&lt;br /&gt;&lt;br /&gt;Once you accept that the key to a good rootkit is to use methods unknown to the victim, one might also be tempted to draw the conclusion that perhabs the virtualisation stuff is too obvious a place to attempt to hide in. But that is certainly open to discussion.&lt;br /&gt;&lt;br /&gt;Enough high-level blah blah. I am so looking forwards to my vacation, it's not funny.&lt;br /&gt;&lt;a href="javascript:void(0)" onclick="return false;" tabindex="10"&gt;&lt;span&gt;Post veröffentlichen&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3163949395283974287?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3163949395283974287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3163949395283974287' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3163949395283974287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3163949395283974287'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/08/i-have-reached-intellectual-level-of.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4968889615990738557</id><published>2007-08-02T15:45:00.000-07:00</published><updated>2007-08-02T15:58:55.096-07:00</updated><title type='text'></title><content type='html'>So it appears the entire &lt;a href="http://www.channelinsider.com/article/Rutkowska+Gets+Last+Laugh+in+Rootkit+CatandMouse+Game/212715_2.aspx"&gt;Rutkowska-Matasano thing is not over yet&lt;/a&gt;. I probably should not harp on about this in my current mood, but since I am missing out on the fun in Vegas, I'll be an armchair athlete and toss some unqualified comments from the sidelines. Just think of me as the grumpy old man with a big gut and a can of beer yelling at some football players on television that they should quit being lazy and run faster.&lt;br /&gt;&lt;br /&gt;First point: The blue chicken defense outlined in the linked article is not a valid defense for a rootkit. The purpose of a rootkit is to hide data on the machine from someone looking for it. If a rootkit de-installs itself to hide from timing attacks, the data it used to hide either has to be removed or is no longer hidden. This defeats the purpose of the rootkit: To hide data and provide access to the compromised machine.&lt;br /&gt;&lt;br /&gt;Second point: What would happen if a boxer who claims the ability to defeat anyone in the world would reject any challengers unless they pay 250 million for him to fight ? Could he claim victory by telling the press that he "tried out all his opponents punches, and they don't work, because you can duck them like this and parry them like that" ?&lt;br /&gt;I think not.&lt;br /&gt;&lt;br /&gt;I am not saying it's impossible to build a rootkit that goes undetected by Matasano's methods. But given access to the code of a rootkit and sufficient time, it will be possible to build a detection for it. Of course you can then change the rootkit again. And then the other side changes the detection. And this goes on for a few decades.&lt;br /&gt;&lt;br /&gt;Could we please move on to more fruitful fields of discussion already ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4968889615990738557?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4968889615990738557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4968889615990738557' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4968889615990738557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4968889615990738557'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/08/so-it-appears-entire-rutkowska-matasano.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3128938548000776925</id><published>2007-07-31T12:06:00.000-07:00</published><updated>2007-08-02T11:43:12.013-07:00</updated><title type='text'></title><content type='html'>Some people in the comments of my blog have hinted that I should have just "followed the rules" and nothing would have happened. This is incorrect -- I did follow the rules. It is perfectly legal for an independent contractor to be contracted to perform a task in the US, come in, do it, and leave. That is (amongst other things) what the "business" checkbox on the I94W is for.&lt;br /&gt;&lt;br /&gt;What landed me in this trouble is that the immigration agent decided that even though I am CEO of a company in Germany and have no employment contract with Blackhat (just a contract as an independent contractor), that the status of "independent contractor" does not apply to me - his interpretation was that I was an "employee" of Blackhat without an H1B visa.&lt;br /&gt;&lt;br /&gt;This is not a case of me screwing up my paperwork. This is a case of an immigration agent that did not understand my attempts at explaining that I am not a Blackhat employee, and me not knowing the subtleties of being interviewed by DHS/INS agents.&lt;br /&gt;&lt;br /&gt;I hope I will be able to clarify the misunderstanding on Thursday morning at the consulate.&lt;br /&gt;=============================&lt;br /&gt;Small addition to clarify: It is perfectly legitimate to come to the US to hold lectures and trainings of the kind that I am holding at Blackhat. To reiterate: The problem originated solely from a misunderstanding where it was presumed I was an "employee" of a US company, which is not correct.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3128938548000776925?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3128938548000776925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3128938548000776925' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3128938548000776925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3128938548000776925'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/07/some-people-in-comments-of-my-blog-have.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2363964033825529731</id><published>2007-07-29T12:34:00.001-07:00</published><updated>2007-07-29T15:08:29.185-07:00</updated><title type='text'></title><content type='html'>Short update: I have managed to schedule a hearing for a regular visa. The first available date was the 24th of August *cough*.&lt;br /&gt;&lt;br /&gt;While this is clearly too late for Blackhat, but once you have a "regular" meeting scheduled you can ask to have an "urgent" meeting scheduled, too. Wether I am eligible will become clear when the embassy opens at 7am on monday morning.&lt;br /&gt;&lt;br /&gt;The current plan is to call them and explain them why the entire thing might've gone haywire in the first place:&lt;br /&gt;&lt;br /&gt;There's a special provision in the german tax code that allows for people with certain qualifications to act as special 'freelancers', essentially giving them a status very similar to one-person-companies ("&lt;a href="http://de.wikipedia.org/wiki/Freiberufler"&gt;Freiberufler&lt;/a&gt;"). It is not totally trivial to obtain this status - for example, you cannot simply be a 'Freiberuf'-programmer if you write "regular" software.&lt;br /&gt;&lt;br /&gt;My agreement with Blackhat and all transactions were taxed in Germany under this status.&lt;br /&gt;&lt;br /&gt;Personally, I think the fundamental issue in this tragic comedy is that the US doesn't really have such a special status for freelancers, and that therefore the US customs inspector did not understand that there is a distinction between a "regular Joe" and a "single-person company/Freiberufler". Hence the customs officer assumed that this entire thing must be some devious way to bypass getting an H1B visa for someone that would not normally qualified to get one.  The frequent  repetition of the question "why is your course not given by an American Citizen ?" points to something like that.&lt;br /&gt;&lt;br /&gt;I hope that I can clear up this misunderstanding tomorrow morning, but right now, I am not terribly optimistic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2363964033825529731?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2363964033825529731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2363964033825529731' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2363964033825529731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2363964033825529731'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/07/short-update-i-have-managed-to-schedule.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-6110909250732003234</id><published>2007-07-29T04:39:00.000-07:00</published><updated>2007-07-29T04:53:23.308-07:00</updated><title type='text'></title><content type='html'>I've been denied entry to the US essentially for carrying my trainings material. Wow.&lt;br /&gt;&lt;br /&gt;It appears I can't attend Blackhat this year. I was denied entry to the US for carrying trainings materials for the Blackhat trainings, and intending to hold these trainings as a private citizen instead of as a company.&lt;br /&gt;&lt;br /&gt;After a 9-hour flight and a 4 1/2 hour interview I was put onto the next 9-hour flight back to Germany. Future trips to the US will be significantly more complicated as I can no longer go to the US on the visa waiver program.&lt;br /&gt;&lt;br /&gt;A little background: For the last 7 years, I have attended / presented at the 'Blackhat Briefings', a security conference in the US. Prior to the conference itself, Blackhat conducts a trainings session, and for the past 6 years, I have given two days of trainings at these events. The largest part of the attendees of the trainings are US-Government related folks, mostly working on US National Security in some form. I have trained people from the DoD, DoE, DHS and most other agencies that come to mind.&lt;br /&gt;&lt;br /&gt;Each time I came to the US, I told immigration that I was coming to the US to present at a conference and hold a trainings class. I was never stopped before.&lt;br /&gt;&lt;br /&gt;This time, I had printed the materials for the trainings class in Germany and put them into my suitcase. Upon arrival in the US, I passed immigration, but was stopped in customs. My suitcase was searched, and I was asked about the trainings materials.&lt;br /&gt;After answering that these are for the trainings I am conducting, an immigration officer was called, and I was put in an interview room.&lt;br /&gt;For the next 4 1/2 hours I was interviewed about who exactly I am, why I am coming to the US, what the nature of my contract with Blackhat is, and why my trainings class is not performed by an American citizien. After 4 hours, it became clear that a decision had been reached that I was to be denied entry to the US, on the ground that since I am a private person conducting the trainings for Blackhat, I was essentially a Blackhat employee and would require an H1B visa to perform two days of trainings in the US.&lt;br /&gt;&lt;br /&gt;Now, I am a full-time employee (and CEO) of a German company (startup with 5 people, self-financed), and the only reason why the agreement is between Blackhat and me instead of Blackhat and my company is that I founded the company long after I had started training for Blackhat and we never got around to changing it.&lt;br /&gt;&lt;br /&gt;Had there been an agreement between my company and Blackhat, then my entry to the US would've been "German-company-sends-guy-to-US-to-perform-services", and everything would've been fine. The real problem is that the agreement was still between me as a person&lt;br /&gt;and Blackhat.&lt;br /&gt;&lt;br /&gt;After the situation became clear (around the 4th hour of being interviewed), I offered that the agreement between Blackhat and my company could be set up more or less instantaneously - as a CEO, I can sign an agreement on behalf of my company, and Blackhat would've signed immediately, too.&lt;br /&gt;This would've spared each party of us a lot of hassle and paperwork. But apparently, since I had just tried to enter as a 'normal citizen' instead as an 'employee of a company', I could now not change my application. They would have to put me on the next flight back to Germany.&lt;br /&gt;&lt;br /&gt;Ok, I thought, perhabs I will have to fly back to Germany, set up the agreement, and immediately fly back to the states - that would've still allowed me to hold the trainings and attend the conference, at the cost of crossing the Atlantic three times instead of once. But no such luck: Since I have been denied entry under the visa waiver programme, I can now never use this programme again. Instead I need to wait until the American consulate opens, and then apply for a business visa. I have not been able to determine how long this might take -- estimates from customs officials ranged from "4 days" to "more than 6 weeks".&lt;br /&gt;&lt;br /&gt;All this seems pretty crazy to me. From the point that 2 days of trainings constitute work that requires an H1B visa, via the issue that everything could've been avoided if I had been allowed to set up the agreement with Blackhat immediately, to the fact that setting up the agreement once I am back in Germany and flying in again is not sufficient, all reeks of a bureacracy creating work for itself, at the expense of (US-)taxpayer money.&lt;br /&gt;&lt;br /&gt;I will now begin the Quixotic quest to get a business visa to the US. Sigh. This sucks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-6110909250732003234?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/6110909250732003234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=6110909250732003234' title='116 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6110909250732003234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/6110909250732003234'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/07/ive-been-denied-entry-to-us-essentially.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>116</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-4199571887763249307</id><published>2007-07-12T09:14:00.001-07:00</published><updated>2007-07-12T09:15:51.828-07:00</updated><title type='text'></title><content type='html'>The Core guys have published a paper on a&lt;a href="http://oss.coresecurity.com/projects/heapdraw/HeapDraw-HeapTracer/Examples%20and%20Doc/dtlogin%20example.pdf"&gt; very cute heap visualisation too&lt;/a&gt;l.&lt;br /&gt;&lt;br /&gt;What shall I say ? I like it, and we'll play a lot more chess with memory in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-4199571887763249307?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/4199571887763249307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=4199571887763249307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4199571887763249307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/4199571887763249307'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/07/core-guys-have-published-paper-on-very.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7118979083285868373</id><published>2007-07-07T12:36:00.000-07:00</published><updated>2007-07-07T12:49:14.693-07:00</updated><title type='text'></title><content type='html'>It seems that this country is spinning out of control. We barely have the economy back on track, and now our interior minister is fighting ghosts with flamethrowers:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.heise.de/newsticker/meldung/92367"&gt;This link&lt;/a&gt; refers to an interview with him where he proclaims that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Germany should create the status of 'enemy combatant' and allow interning 'dangerous elements'&lt;/li&gt;&lt;li&gt;The 'targeted killing of suspects' is not in discord with our constitution, but a 'legal problem' that hasn't been 'fully clarified'&lt;/li&gt;&lt;/ul&gt;I have to admit that while I was critical about the fact that the Bush-Administration skipped due process and a host of other essential liberties in the Guantamo/Black Interrogation Sites affair, I was not all-too-concerned -- after all, after the next election the entire thing would've been rolled back and similar madness made impossible for the next n years. I am quite shocked that our interior minister, in desparate need for some agenda, would like to outdo the Bush Administration exactly at a point in time where these policies should be thoroughly discredited.&lt;br /&gt;&lt;br /&gt;Time to write a letter to the representative in the german congress...sigh....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7118979083285868373?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7118979083285868373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7118979083285868373' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7118979083285868373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7118979083285868373'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/07/it-seems-that-this-country-is-spinning.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3965335571248756527</id><published>2007-06-13T14:29:00.000-07:00</published><updated>2007-06-13T14:31:06.764-07:00</updated><title type='text'></title><content type='html'>MS07-031&lt;br /&gt;&lt;br /&gt;We're close to finally releasing SABRE BinDiff v2.0, and I've posted a small movie showing how it can be used to analyze MS07-031 &lt;a href="http://www.sabre-security.com/files/schannel.swf"&gt;here&lt;/a&gt;. Enjoy !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3965335571248756527?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3965335571248756527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3965335571248756527' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3965335571248756527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3965335571248756527'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/06/ms07-031-were-close-to-finally.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7989128370120282796</id><published>2007-04-27T21:35:00.000-07:00</published><updated>2007-04-27T21:45:10.975-07:00</updated><title type='text'></title><content type='html'>&lt;a href="http://blogs.zdnet.com/security/?p=181"&gt;Microsoft seems to consider banning memcpy()&lt;/a&gt;. This is an excellent idea -  and along with memcpy, malloc() should be banned. While we are at it, the addition and multiplication operators have caused so much grief over the last years, I think it would make total sense to ban them. Oh, and if we ban the memory dereference, I am quite sure we'd be safe.&lt;br /&gt;&lt;br /&gt;Banning API calls is not the same as auditing code. Auditing is not supergrep. Sigh.&lt;br /&gt;&lt;br /&gt;And "we fuzzed, but it was wrapped in an exception handler" is crazy talk. The debugger gets first notification of any exception, before the exception handler - if you are fuzzing without noting down all the exceptions that occur, you're living in ... uhm ... 2001 ?&lt;br /&gt;&lt;br /&gt;But either way: The problem is that people think Vista will be "safe", in absolute terms, which&lt;br /&gt;is false. Vista is "safer", e.g. a number of bugs won't be useful any more. Because of the false perception of Vista being "safe", some people are now disappointed (because of ANI).&lt;br /&gt;&lt;br /&gt;Enough ranting. Everybody take a deep breath, relax, and watch the game as OS X gets owned badly for the next two years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7989128370120282796?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7989128370120282796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7989128370120282796' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7989128370120282796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7989128370120282796'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/04/microsoft-seems-to-consider-banning.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-7925498883846111595</id><published>2007-03-23T06:39:00.000-07:00</published><updated>2007-03-23T06:44:48.632-07:00</updated><title type='text'></title><content type='html'>Can someone explain me why there is so few decent java decompilers out there ? Yes, JAD does a decent job in many cases, but sometimes simple control flow confuses it and the reconstruction is less than accurate. JODE is sometimes better in that regard, but fails on a good number of files, and also does not seem to assign new variable names based on the types of the variables.&lt;br /&gt;&lt;br /&gt;With all that Java code on my cellphone, it's slightly annoying that it's so difficult to get a decent decompile. I mean, once I have that I can work in eclipse and refactor the class/variable names until I am happy.&lt;br /&gt;&lt;br /&gt;Then again, it seems Java decompilers were all the rage in 1997-2002, and nowadays few people seem to be developing them...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-7925498883846111595?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/7925498883846111595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=7925498883846111595' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7925498883846111595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/7925498883846111595'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/03/can-someone-explain-me-why-there-is-so.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1758789154950244226</id><published>2007-02-21T01:50:00.000-08:00</published><updated>2007-02-21T01:52:09.364-08:00</updated><title type='text'></title><content type='html'>I will be at Blackhat Federal in Washington DC next week, and since I am not giving a talk, I will have some free time to chat :-)&lt;br /&gt;&lt;br /&gt;If anybody in the Washington DC area would like to meet and / or have our products demo'ed, please drop me a mail at halvar.flakeXnospamX@sabre-security.com.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1758789154950244226?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1758789154950244226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1758789154950244226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1758789154950244226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1758789154950244226'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/02/i-will-be-at-blackhat-federal-in.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-3255979720467059477</id><published>2007-02-05T02:25:00.000-08:00</published><updated>2007-02-05T02:28:47.426-08:00</updated><title type='text'></title><content type='html'>I would like to use this blog to make the MD5Sum and the SHA1sum of a certain file public:&lt;br /&gt;&lt;br /&gt;MD5Sum:&lt;br /&gt;5e5ed3b92b2abbcc1adaa18cc0ca6aaf&lt;br /&gt;&lt;br /&gt;SHA1sum:&lt;br /&gt;FFECBE21E3EC93A5AC2B94889AD2967881398A9C&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-3255979720467059477?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/3255979720467059477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=3255979720467059477' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3255979720467059477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/3255979720467059477'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/02/i-would-like-to-use-this-blog-to-make.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-2992716152120837583</id><published>2007-01-18T07:11:00.000-08:00</published><updated>2007-01-24T07:54:47.522-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='netscreen'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='vulnerability researc'/><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><title type='text'></title><content type='html'>One of the most amusing new features of &lt;a href="http://www.sabre-security.com/"&gt;BinNavi&lt;/a&gt; in the v1.2 release is the GDB agent. FX (of &lt;a href="http://www.sabre-labs.com"&gt;SABRE Labs&lt;/a&gt; fame) worked hard to create a proxy that sits in-between BinNavi GUI and something speaking GDB serial protocol either via a serial line or via TCP.&lt;br /&gt;&lt;br /&gt;Now, what is this good for ?&lt;br /&gt;&lt;br /&gt;First of all, it allows one to use BinNavi's debugging capabilities on platforms that we do not explicitly support (if a recent GDB version works on it). This means most *NIX variants. Let's say, for some reason, you have a FreeBSD system on which you'd like to debug some piece of software, and BinNavi does not come with a FreeBSD debugger. But GDB runs on FreeBSD - so you just run your target under gdbserver and use the BinNavi GDB agent via TCP to transparently debug the target.&lt;br /&gt;&lt;br /&gt;Now, using BinNavi on more-or-less arbitrary *NIX systems is nice, but the real joy lies elsewhere: FX made sure that the debugging proxy does not only speak the GDB protocol as spoken by GDB itself, but also the variants spoken by Cisco IOS and ScreenOS.&lt;br /&gt;&lt;br /&gt;This makes reverse engineering embedded systems that speak either regular GDB protocol or one of the supported variants a blast: In the past, we had to proceed as follows:&lt;ol&gt;&lt;li&gt;Get a ROM image from somewhere&lt;/li&gt;&lt;li&gt;Stare at the image to figure out methods to decompress it properly&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Once this was achieved, load the image into IDA and use switch()-constructs to determine the proper loading address of the image&lt;/li&gt;&lt;li&gt;Load the image into IDA again, this time at the correct address&lt;/li&gt;&lt;/ol&gt;Of course, live-debugging was usually out of the question.&lt;br /&gt;With the BinNavi GDB Agent, we can now do the following:&lt;ol&gt;&lt;li&gt;Attach the device to a serial port and set it into GDB mode&lt;/li&gt;&lt;li&gt;Read &amp; dump the memory from the current instruction pointer backwards until the device freezes&lt;/li&gt;&lt;li&gt;Read &amp;amp; dump the memory forwards from the current instruction pointer until the device freezes&lt;/li&gt;&lt;li&gt;Load the result into IDA and export the disassembly into BinNavi&lt;/li&gt;&lt;li&gt;Do live-debugging on the device in question :-)&lt;/li&gt;&lt;/ol&gt;So, as an exercise, we took a Netscreen-VPN5 we had acquired via Ebay. Unfortunately, it did not come with a support contract, so we could not get software images to disassembly. So we set the device into GDB mode by typing "set gdb enable" in the console, and connected:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;C:\BinNavi.v1.2\gdbagent&gt;gdbcmd COM1,9600 NS5XT&lt;br /&gt;Connected via \\.\COM1 (baud=9600 parity=N data=8 stop=1) to Netscreen 5XT Agent&lt;br /&gt;/ PowerPC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;[q] quit | [r] Registers | [c] Continue | [R] Reset | [b] Breakpoint&lt;br /&gt;[s] step | [m] Read Memory | [D] Detach | [d] Dump Memory Range&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Reading Registers ... done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR0 = 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR1 = 350f958&lt;br /&gt;GPR2 = aecce8&lt;br /&gt;GPR3 = ffffffffffffffff&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR4 = 2e&lt;br /&gt;GPR5 = 0&lt;br /&gt;GPR6 = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR7 = 0&lt;br /&gt;GPR8 = d55e70&lt;br /&gt;GPR9 = ae0000&lt;br /&gt;GPR10 = d50000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR11 = d50000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR12 = 40000024&lt;br /&gt;GPR13 = 0&lt;br /&gt;GPR14 = 0&lt;br /&gt;GPR15 = 0&lt;br /&gt;GPR16 = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR17 = 40140130&lt;br /&gt;GPR18 = 0&lt;br /&gt;GPR19 = 186ac40&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR20 = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR21 = 350ff78&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR22 = 186ac4e&lt;br /&gt;GPR23 = ffffffffffffffff&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR24 = 0&lt;br /&gt;GPR25 = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR26 = 0&lt;br /&gt;GPR27 = 0&lt;br /&gt;GPR28 = 186ac40&lt;br /&gt;GPR29 = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR30 = 186a910&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;GPR31 = ae5684&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;(...)&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;PC = 6826c&lt;/span&gt;&lt;br /&gt;MSR = 29230&lt;br /&gt;CR = 40000028&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;LR = 67c10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;CTR = 249b30&lt;br /&gt;XER = 20000002&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The program counter is set to 0x6826c, and thus we know: Some code is mapped at 0x6826c. It is a pretty safe bet that all code will be consecutive in memory, sow we will now dump the memory forwards and backwards from this address: We type "d" in the command line and enter the base address and the number of bytes (in hex) we want to dump:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Memory at: 68000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Size: 400000&lt;br /&gt;Filename: 0x68000.0x400000.dmp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The agent now begins to read the memory off the device in chunks of 1024 bytes via 9600 baud serial port - so it is a good idea to go to lunch in the meantime. Once we're back from lunch, we reboot the NS5XT - it will have hung when it ran out of memory to dump. We set it back into debugging mode and dump the memory before offset 0x68000:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Memory at: 40000&lt;br /&gt;Size: 28000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Filename: 0x40000.0x28000.dmp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We stitch the two files together end-to-end, load them into IDA and run a &lt;a href="http://www.sabre-security.com/files/misc_idc.tar.gz"&gt;few small scripts&lt;/a&gt; to identify function entry points and do some minor fixing of the disassembly (principally switch statements, and some function naming), and export everything into the BinNavi database. We then open it as usual in BinNavi, open the callgraph and start browsing around.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e24imFzpOVw/RbDD9QoqG_I/AAAAAAAAAAU/9WeQ-qj6DkM/s1600-h/callgraph_ike_functions.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_e24imFzpOVw/RbDD9QoqG_I/AAAAAAAAAAU/9WeQ-qj6DkM/s320/callgraph_ike_functions.JPG" alt="" id="BLOGGER_PHOTO_ID_5021729041723038706" border="0" /&gt;&lt;/a&gt;On the left, we see a callgraph view of the device's IKE packet handlers (which we inferred from string references in the disassembly), plus the functions that are directly called by them.&lt;br /&gt;&lt;br /&gt;Now, which of these functions would be executed when we run a round of ike-scan against the device ?&lt;br /&gt;&lt;br /&gt;Clicking on the red button makes BinNavi talk to the BinNavi GDB agent to set one-time breakpoints on all functions in the graph on the left - due to the serial link, this is not blazingly fast, but after seconds, not minutes, we have breakpoints on all these functions. We then run ike-scan against the device, and click on "stop recording" again. The result is the list of functions from our graph that were executed - highlighted in the following pictures:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e24imFzpOVw/RbDFtAoqHAI/AAAAAAAAAAk/_j3Rb2s2mvo/s1600-h/callgraph_hit_ike_functions.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 272px; height: 195px;" src="http://1.bp.blogspot.com/_e24imFzpOVw/RbDFtAoqHAI/AAAAAAAAAAk/_j3Rb2s2mvo/s320/callgraph_hit_ike_functions.JPG" alt="" id="BLOGGER_PHOTO_ID_5021730961573420034" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/RbDGQgoqHBI/AAAAAAAAAAs/s-2nh2dFMng/s1600-h/callgraph_hit_functions_zoomed.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 270px; height: 194px;" src="http://3.bp.blogspot.com/_e24imFzpOVw/RbDGQgoqHBI/AAAAAAAAAAs/s-2nh2dFMng/s320/callgraph_hit_functions_zoomed.JPG" alt="" id="BLOGGER_PHOTO_ID_5021731571458776082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Clearly we can do the same on the function flowgraph level in, for example, the function labeled IKE_SA_Handler above. Generally, everything you can do with BinNavi on Win32 executables you can also do with BinNavi on the embedded device now: Record traces, set breakpoints, set Python callbacks on breakpoints, read memory, read registers etc. etc...&lt;br /&gt;&lt;br /&gt;The following three screenshots show the function in question being debugged. The first screen shows the path that is executed on running an ike-scan against the device highlighted in red. The second screen shows BinNavi having suspended the execution on the basic block with the red/blue border (the blue border indicates a persistent breakpoint on the basic block, the red border indicates that execution is currently suspended on that block). The third screen just shows the registers and some memory of the device at this point in time.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e24imFzpOVw/RbDMXwoqHHI/AAAAAAAAABs/rOAi2ZaSiU0/s1600-h/ikesahandlertrace-crop.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e24imFzpOVw/RbDMXwoqHHI/AAAAAAAAABs/rOAi2ZaSiU0/s320/ikesahandlertrace-crop.jpg" alt="" id="BLOGGER_PHOTO_ID_5021738293082594418" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e24imFzpOVw/RbDM5goqHII/AAAAAAAAAB0/vWcDORA2eH4/s1600-h/IKE_SA_Handler_suspended.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e24imFzpOVw/RbDM5goqHII/AAAAAAAAAB0/vWcDORA2eH4/s320/IKE_SA_Handler_suspended.jpg" alt="" id="BLOGGER_PHOTO_ID_5021738872903179394" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e24imFzpOVw/RbDNiAoqHJI/AAAAAAAAACQ/F5dYS4LsJGs/s1600-h/IKE_SA_Handler_breakpoint.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e24imFzpOVw/RbDNiAoqHJI/AAAAAAAAACQ/F5dYS4LsJGs/s320/IKE_SA_Handler_breakpoint.JPG" alt="" id="BLOGGER_PHOTO_ID_5021739568687881362" border="0" /&gt;&lt;/a&gt;So to sum things up: With the BinNavi GDB Agent, you can debug anything that speaks the GDB protocol more or less just as if it were a regular windows app (small caveat: You are speaking with most embedded devices via a serial port, oftentimes 9600 baud. You probably do not want to set 60.000 breakpoints at once - aside from the bandwidth consumption, it is common for the gdb server to handle only a limited number of breakpoints. In our tests, setting several hundreds was no problem). Extracting ROM images in a format that is easily disassembled is easy, and full on-device debugging helps a lot with all our favourite tasks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;understanding the code at hand&lt;/li&gt;&lt;li&gt;identifzing which functions are responsible for which features&lt;/li&gt;&lt;li&gt;hunting for security vulnerabilities&lt;/li&gt;&lt;li&gt;constructing input to reach vulnerable locations&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Have a good week, I have some more reversing to do :)&lt;br /&gt;&lt;br /&gt;Oh, and be sure to check out &lt;a href="http://nzight.blogspot.com/"&gt;Ero Carrera's Blog&lt;/a&gt; - he will post about the SQL database format used by BinNavi at the end of next week, and show why it's useful and flexible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-2992716152120837583?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/2992716152120837583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=2992716152120837583' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2992716152120837583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/2992716152120837583'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2007/01/one-of-most-amusing-new-features-of.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e24imFzpOVw/RbDD9QoqG_I/AAAAAAAAAAU/9WeQ-qj6DkM/s72-c/callgraph_ike_functions.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-30246911285814110</id><published>2006-12-13T04:30:00.001-08:00</published><updated>2006-12-13T04:30:54.034-08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://www.the-interweb.com/serendipity/index.php?/archives/82-Some-thoughts-on-freshmen-programming-classes.html"&gt;SP's blog has a good post today:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;:-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-30246911285814110?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/30246911285814110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=30246911285814110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/30246911285814110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/30246911285814110'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/12/sps-blog-has-good-post-today.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-1948768623008933330</id><published>2006-11-23T00:51:00.000-08:00</published><updated>2006-11-23T00:58:59.114-08:00</updated><title type='text'></title><content type='html'>Over at the Matasano Blog :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.matasano.com/log"&gt;Matasano 's Blog&lt;/a&gt; quoted my post on Office bugs, and Ivan Arce made some excellent points in the comments:&lt;br /&gt;&lt;blockquote&gt;1. 'They are inherently one-shot. You send a bad file, and while the user might try to open it multiple times, there is no way the attacker can try different values for anything in order to get control.”'&lt;div class="commenttext"&gt; &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="commenttext"&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;IA: OK. good point but…think about scale &amp;amp; diversity. Even in a targeted attack sending a one-shot client-side exploit against N desktop systems will with one hardcoded address will offset the value of ALSR with some probability of success for a given N. The attacker only needs ONE exploit instance to work in order to break into ONE desktop system, after that it is game over. Client-side bugs are one shot against the same system but not necesarrilly so against several systems in parallel.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Very true, I did overlook this. It also explains the use of really low-value phone-home bots as payload: If you're going to attack in such a "wide" manner, you essentially accept detection as long as you can compromise one of the relevant clients. This means that whatever you are sending will be lost, and therefore you won't send anything more sophisticated than a simple bot.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;” 2. There can not be much pre-attack reconnaissance. Fingerprinting server versions is usually not terribly difficult (if time consuming), and usually one can narrow down the exact version (and most of the times the patch level) of a target before actually shooting valuable 0day down the wire. With client side bugs, it is a lot more difficult to know the exact version of a piece of software running on the other side - one probably has to get access to at least one document created by the target to get any data at all, and even this will usually be a rough guesstimate.”&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;IA: Hmmm not sure about this either. I would argue the desktop systems (clients) leak A LOT more information about themselves than servers and, generally, those leaks are much less controlled and/or controllable and easier to elicit than server leaks. After all, as a general principle, client apps are _designed_ to provide information about themselves.&lt;/p&gt; &lt;p&gt;Not to mention that a lot of information about your desktop systems has *already* leaked and is publicly available on the net now (server logs, emails, documents, stray packets, etc.), you just need to know how and where to look for it.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I disagree on this to an extent. My system leaks information about my mail client because I participate in public forums etc, but the majority of corporate users never gain any visibility outside of the internal network. Most people just don't use mailing lists or usenet etc. So it will be comparatively easy to attack some security officer (hey, I know his exact client version), but the CEO's secretary (which might be a lot more interesting as a target, and less likely to notice her computer is compromised) will be more or less "invisible".&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-1948768623008933330?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/1948768623008933330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=1948768623008933330' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1948768623008933330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/1948768623008933330'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/11/over-at-matasano-blog-matasano-s-blog.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-5092741708015781934</id><published>2006-11-21T15:56:00.000-08:00</published><updated>2006-11-21T16:11:53.761-08:00</updated><title type='text'></title><content type='html'>Unbelievable but true&lt;br /&gt;&lt;br /&gt;I am decompressing a bit after a few weeks of insane stress and thus I am actually reading blogs.  And to my greatest surprise, I ended up reading &lt;a href="http://blogs.oracle.com/maryanndavidson/"&gt;this&lt;/a&gt; one. Now, Oracle security has never interested me ever since I tried to audit it in 2000 and it kept falling over without a fight (or without us really doing anything except sending a few letters to it), but I have to admit that Ms. Davidsons blog has a pretty high entertainment value (at least for me, a morallically degenerate piece of eurotrash full of the afterglow of a once good education system), AND it is refreshing to see someone with a bit of a classical education in IT security (I get picked upon regularly for the fact that I got my Latinum "on the cheap" and know jack shit about old greek - then again, my circle of friends includes a mathematician that claims that he can, by means of listening to a record, tell you in which church in france a certain piece of organ music was played, and hence I am always the loud and stupid one).&lt;br /&gt;&lt;br /&gt;Anyhow, given Oracle's horrible code quality, I am very much positively surprised at the quality of Ms. Davidsons blog. And given what most people that have worked with static analysis tools before would describe as a horrible mistake in evaluating tool quality, I would like to mention that mathematics and geometry are part of a classical education. Whoever decided on the right source code analysis tool to use for detecting flaws in Oracle apparently failed that part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-5092741708015781934?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/5092741708015781934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=5092741708015781934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5092741708015781934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/5092741708015781934'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/11/unbelievable-but-true-i-am.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-116415288087096612</id><published>2006-11-21T15:30:00.000-08:00</published><updated>2006-11-21T15:48:01.103-08:00</updated><title type='text'></title><content type='html'>Client Side Exploits, a lot of Office bugs and Vista&lt;br /&gt;&lt;br /&gt;I have ranted before about careless use of 0day by seemingly chinese attackers, and I think I have finally understood why someone would use good and nice bugs in such a careless manner:&lt;br /&gt;&lt;br /&gt;The bugs are going to expire soon. Or to continue using Dave Aitel's and my terminology: The fish are starting to smell.&lt;br /&gt;&lt;br /&gt;ASLR is entering the mainstream with Vista, and while it won't stop any moderately-skilled-but-determined attacker from compromising a server, it will make client side exploits of MSOffice file format parsing bugs a lot harder.&lt;br /&gt;&lt;br /&gt;Client-side bugs suffer from a range of difficulties:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;They are inherently one-shot. You send a bad file, and while the user might try to open it multiple times, there is no way the attacker can try different values for anything in order to get control.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There can not be much pre-attack reconnaissance. Fingerprinting server versions is usually not terribly difficult (if time consuming), and usually one can narrow down the exact version (and most of the times the patch level) of a target before actually shooting valuable 0day down the wire. With client side bugs, it is a lot more difficult to know the exact version of a piece of software running on the other side - one probably has to get access to at least one document created by the target to get any data at all, and even this will usually be a rough guesstimate.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;As a result of this, client-side bugs in MSOffice are approaching their expiration date. Not quickly, as most customers will not switch to Vista immediately, but they are showing the first brown spots, and will at some point start to smell.&lt;br /&gt;&lt;br /&gt;So you're in a situation where you're sitting on heaps of 0day in MSOffice, which, contrary to Vista, was not the biggest (private sector) pentest ever  (This sentence contains two inside jokes, and I hope that those who understand them aren't mad at me :-). What do you do with those that are going to be useless under ASLR ? Well, damn, just fire them somewhere, with some really silly phone-home-bots inside. If they bring back information, fine, if not, you have not actually lost much. The phone-home bots are cheap to develop (in contrast to a decent rootkit) and look amateurish enough as to not provoke your ambassador being yelled at.&lt;br /&gt;&lt;br /&gt;If you are really lucky, you might actually get your opponent to devote time and resources to countermeasures against MS Office bugs, in the hope they don't realize that work will be taken care of elsewhere. In the meantime, you hone your skills in defeating ASLR through out-of-defined-memory-read-bugs (see some blog post in the next few days).&lt;br /&gt;&lt;br /&gt;On a side note, I am terribly happy today. I've had more luck this week than I deserve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-116415288087096612?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/116415288087096612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=116415288087096612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116415288087096612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116415288087096612'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/11/client-side-exploits-lot-of-office.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-116402485919799089</id><published>2006-11-20T04:08:00.000-08:00</published><updated>2006-11-20T04:14:19.210-08:00</updated><title type='text'></title><content type='html'>While we're all talking about the next overflow and think that they have significance in the wider scheme of things, I'll climb on the soapbox for 5 minutes:&lt;br /&gt;&lt;br /&gt;We  should send peacekeeping troops to  Darfour/Sudan. I was strongly opposed to the Iraq war (on the ground that invasion would bring civil war), but I plead my government: Take my taxes and send peacekeeping forces to Sudan. _If_ we have decided that the 'europeans-are-from-venus'-stance is obsolete, we have here a primary example of a conflict where external invasion appears necessary according to almost everybody (except the government in Kartoum).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-116402485919799089?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/116402485919799089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=116402485919799089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116402485919799089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116402485919799089'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/11/while-were-all-talking-about-next.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-116009058198146201</id><published>2006-10-05T16:20:00.000-07:00</published><updated>2006-10-05T16:23:01.983-07:00</updated><title type='text'></title><content type='html'>While I am blogging about strange hobbies: I used to draw a lot, and still appreciate a few comics. Most importantly, local cult hero Jamiri.&lt;br /&gt;&lt;br /&gt;Some examples:&lt;br /&gt;http://www.spiegel.de/netzwelt/netzkultur/0,1518,grossbild-650193-422928,00.html&lt;br /&gt;&lt;br /&gt;http://www.spiegel.de/netzwelt/netzkultur/0,1518,grossbild-669475-427889,00.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-116009058198146201?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/116009058198146201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=116009058198146201' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116009058198146201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116009058198146201'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/10/while-i-am-blogging-about-strange.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-116009009703443558</id><published>2006-10-05T16:08:00.000-07:00</published><updated>2006-10-05T16:14:57.043-07:00</updated><title type='text'></title><content type='html'>I am known for odd hobbies and interests, and for a long while, I have been very fascinated with all forms of syncretism, specifically carribbean syncretism.&lt;br /&gt;&lt;br /&gt;For various private reasons I am exposed to quite a bit of information about social anthropology, and I usually find the descriptions of odd rites in various societies very amusing and enlightening.&lt;br /&gt;&lt;br /&gt;For example, any diagram of multi-family cross-cousin-marriage in some african societies just brings out the graph theory nerd in me, and serious scientific texts debating the difference between endo- and exocannibalism (eat your own tribe vs. eat the other tribe) are a fun diversion from reading dry stuff all day.&lt;br /&gt;&lt;br /&gt;Yet I was unprepared for reading about the "&lt;a href="http://en.wikipedia.org/wiki/Cargo_cult"&gt;Cargo Cult&lt;/a&gt;" today. And thinking about it, the sheer fact that a cargo cult developed in Melanesia makes me want to laugh and cry at the same time.&lt;br /&gt;&lt;br /&gt;Read it. It's worth it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-116009009703443558?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/116009009703443558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=116009009703443558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116009009703443558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/116009009703443558'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/10/i-am-known-for-odd-hobbies-and.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115771031950891902</id><published>2006-09-08T02:51:00.000-07:00</published><updated>2006-09-08T03:11:59.516-07:00</updated><title type='text'></title><content type='html'>Matasano refers to Bleichenbachers' recently published attack. Tremendously short comment:&lt;br /&gt;&lt;br /&gt;Anything that does RSA with low exponent is likely attackable. And padding should always be OAEP. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115771031950891902?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115771031950891902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115771031950891902' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115771031950891902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115771031950891902'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/09/matasano-refers-to-bleichenbachers.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115770749724365053</id><published>2006-09-08T02:18:00.000-07:00</published><updated>2006-09-08T02:24:57.256-07:00</updated><title type='text'></title><content type='html'>After all the Brouhaha surrounding the work on Apple wireless drivers, I'd like to pitch my two cents:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Who cares wether this is real or not ? The possibility of breaking NIC drivers (especially in multithreaded kernels) is real, and nobody should be surprised if this happens. Has anyone ever disassembled the pos drivers that come with every cheap electronic USB gadget ? I have my doubts that the QA for NIC drivers is a lot better&lt;/li&gt;&lt;li&gt;It seems we are not the only ones with a similar problem: &lt;a href="http://eprint.iacr.org/2006/303.ps"&gt;http://eprint.iacr.org/2006/303.ps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;In the above paper, Eric Filiol says he has broken E0, but does not give any description of the analysis - just a (significant) number of keys that lead to very long strings of zero's or to keystreams with a predefined hamming weight.&lt;br /&gt;&lt;br /&gt;I am not decided on the paper yet - read it yesterday evening, jetlagged, over half a bottle of wine. This sort of publishing would be very easy for hash functions -- I would believe anyone that he can build secondary pre-images (or even pre-images) from MD5 if he can give me a string of input that hashes to "thequickbrownfox....".&lt;br /&gt;&lt;br /&gt;Now, we just need stuff like that for bugs ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115770749724365053?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115770749724365053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115770749724365053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115770749724365053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115770749724365053'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/09/after-all-brouhaha-surrounding-work-on.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115622488993846143</id><published>2006-08-21T22:32:00.000-07:00</published><updated>2006-08-21T22:34:49.946-07:00</updated><title type='text'></title><content type='html'>Now with all this noise surrounding the &lt;a href="http://www.consumerreports.org/cro/electronics-computers/protection-software-9-06/how-we-test-antivirus-software/0609_software_testing.htm"&gt;ConsumerReports article&lt;/a&gt; where they created 5500 new virus variants,  I would really like to get my hands on their sample list to see how VxClass, our malware classification engine, deals with them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115622488993846143?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115622488993846143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115622488993846143' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115622488993846143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115622488993846143'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/08/now-with-all-this-noise-surrounding.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115529345833878410</id><published>2006-08-11T03:50:00.000-07:00</published><updated>2006-08-11T03:50:58.336-07:00</updated><title type='text'></title><content type='html'>Just to clarify: PaiMei is really good, the previous post was not supposed to be negative or detrimental -- it's definitely cool stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115529345833878410?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115529345833878410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115529345833878410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115529345833878410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115529345833878410'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/08/just-to-clarify-paimei-is-really-good.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115529319889479243</id><published>2006-08-11T03:36:00.000-07:00</published><updated>2006-08-11T03:46:38.906-07:00</updated><title type='text'></title><content type='html'>From Matasano:&lt;br /&gt;&lt;br /&gt;"The results of one trace can be used to filter subsequent traces. This is huge (&lt;em&gt;in fairness: it’s something that other people, notably &lt;a href="http://sabre-security.com/"&gt;Halvar&lt;/a&gt; [I believe], have been working on&lt;/em&gt;)."&lt;br /&gt;&lt;br /&gt;I have to admit that our flash movies that we posted last year in September are mind-numbingly boring, but they do show this sort of stuff ;) -- BinNavi was able to record commentable debug traces since day 1.&lt;br /&gt;&lt;br /&gt;http://www.sabre-security.com/products/BinNavi/flash_binnavi_debugger.html&lt;br /&gt;http://www.sabre-security.com/products/BinNavi/flash.html&lt;br /&gt;&lt;br /&gt;The entire idea of breakpointing on everything and doing differential debugging dates back to at least a Blackhat presentation in Vegas 2002. Fun stuff, and good to see that with PaiMei there is finally a free framework to do this.&lt;br /&gt;&lt;br /&gt;I really need to re-do the BinNavi movies in the next weeks, they really do not do our product any justice any more.&lt;br /&gt;&lt;br /&gt;To continue shamelessly plugging my product :-):&lt;br /&gt;&lt;br /&gt;"Can I have stack traces for each hit? I know they’re somewhat redundant, but I can graph them to visualize control flow (in particular, to identify event and “parse” loops)."&lt;br /&gt;&lt;br /&gt;You can in the next release (scheduled for October) where you can attach arbitrary python scripts to breakpoints and thus do anything to memory you want.&lt;p&gt;"Symbols. Pedram acknowledges this in his presentation. It     didn’t slow me down much not to have them, but it feels weird."&lt;/p&gt;&lt;p&gt;If IDA has them, BinNavi has them.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"I need to be able to click on a hit and see the assembly for     it (if there’s a way to click on something and have it pop up     in IDA, so much the better)."&lt;/p&gt;Right-click-&gt;open subfunction in BinNavi ;)&lt;br /&gt;&lt;br /&gt;"Yeah, I need this for non-Windows targets. Remote debugging is  apparently coming, which will help. I don’t imagine Pedram’s working on SPARC support (X86 and Win32 has eaten its way pretty thoroughly through the code). Also,"&lt;br /&gt;&lt;br /&gt;We have Linux/ptrace support and a (very experimental) WinCE/ARM support.&lt;br /&gt;&lt;br /&gt;I promise to redo the movies in the next weeks.&lt;br /&gt;&lt;br /&gt;Enough of the advertisement crap.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Halvar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115529319889479243?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115529319889479243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115529319889479243' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115529319889479243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115529319889479243'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/08/from-matasano-results-of-one-trace-can.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115397330533381459</id><published>2006-07-26T20:53:00.000-07:00</published><updated>2006-07-26T21:08:25.356-07:00</updated><title type='text'></title><content type='html'>The security world never ceases to amaze me. A few years ago, a few friends of mine would run around security conferences and drunkenly yell "fuzz tester ! fuzz tester !" at people that, well, fuzzed. I found this really hilarious.&lt;br /&gt;&lt;br /&gt;What I find amazing though is that fuzzers are now being seriously discussed in whitepapers and even called "artificial intelligence". Folks, can we please NOT do the time warp again ? And can we please start writing about something new ?&lt;br /&gt;&lt;br /&gt;On a side note: Since I am a bit of a language nerd, I can't fail to notice that "artificial intelligence" takes a semantically cool twist when mentioned in the same sentence as "yellowcake from africa".&lt;br /&gt;&lt;br /&gt;PS: This post is a rant about people that write about fuzzing as a new threat, not about people that write and use fuzzers. Just to clarify :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115397330533381459?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115397330533381459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115397330533381459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115397330533381459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115397330533381459'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/security-world-never-ceases-to-amaze.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115393589870307513</id><published>2006-07-26T10:44:00.000-07:00</published><updated>2006-07-26T10:44:58.720-07:00</updated><title type='text'></title><content type='html'>I will have an 8-hour layover in Toronto tomorrow -- anyone up for a coffee ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115393589870307513?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115393589870307513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115393589870307513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115393589870307513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115393589870307513'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/i-will-have-8-hour-layover-in-toronto.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115261449524715260</id><published>2006-07-11T03:32:00.000-07:00</published><updated>2006-07-11T03:41:35.316-07:00</updated><title type='text'></title><content type='html'>The article at &lt;a href="http://www.dailymail.co.uk/pages/live/articles/news/news.html?in_article_id=395046&amp;amp;in_page_id=1770"&gt;this link&lt;/a&gt; is a bit funny, but if it is true that Materazzi made racial slurs against Zidane, then his headbutt was the ONLY proper answer to that.&lt;br /&gt;&lt;br /&gt;Racism on the pitch should not be tolerated under any circumstances, and a healthy team would not tolerate racist remarks from any team member.&lt;br /&gt;&lt;br /&gt;If Zidane's reaction was a response to racist remarks, then his headbutt is a symbol for a world cup that did not tolerate racism, and that united people from all over the world instead of dividing them.&lt;br /&gt;&lt;br /&gt;On a side note, I am very happy for all the Italians :-) and I'd like to thank my Italian neighbours for having invited us to their place to watch the final.&lt;br /&gt;&lt;br /&gt;Enough football, now back to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115261449524715260?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115261449524715260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115261449524715260' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115261449524715260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115261449524715260'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/article-at-this-link-is-bit-funny-but.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115256635396504466</id><published>2006-07-10T14:17:00.000-07:00</published><updated>2006-07-10T14:19:13.983-07:00</updated><title type='text'></title><content type='html'>I know that I am going to draw the hate of many people for this post, but I refuse to think less of Zidane for the headbutt against Materazzi. As strange as it sounds, for some reason I am quite convinced that he must have had a good reason for this.&lt;br /&gt;&lt;br /&gt;Nobody is mad enough to just headbutt an opponent in the worldcup finals in the last game of a legendary career unless he has a very good reason.&lt;br /&gt;&lt;br /&gt;But well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115256635396504466?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115256635396504466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115256635396504466' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115256635396504466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115256635396504466'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/i-know-that-i-am-going-to-draw-hate-of.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115202755487440615</id><published>2006-07-04T08:37:00.000-07:00</published><updated>2006-07-04T08:39:14.893-07:00</updated><title type='text'></title><content type='html'>Question for the Blogosphere: Does anyone know of a real-life crypto protocol in which Diffie-Hellmann over a finite field is used, and that finite field is NOT a prime field ? To be exact, I am looking for examples of real-life crypto using Diffie-Hellmann over GF(p^m) where m &gt; 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115202755487440615?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115202755487440615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115202755487440615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115202755487440615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115202755487440615'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/question-for-blogosphere-does-anyone.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115187597928150429</id><published>2006-07-02T14:30:00.000-07:00</published><updated>2006-07-02T14:32:59.293-07:00</updated><title type='text'></title><content type='html'>This &lt;a href="http://cgi.ebay.com/Ferrari-San-Lorenzo-80Foot-Motor-Yacht-trade-for-ferrari-cash_W0QQitemZ330000697415QQihZ014QQcategoryZ6212QQrdZ1QQcmdZViewItem"&gt;Ebay posting&lt;/a&gt; for a Yacht that was previously owned by China's Minister of Defense might in fact be a bargain -- I would assume one automatically buys not only the yacht but also some state-of-the-art (of the mid-90's) electronics. I am not sure if that is still worth 2m USD, but still.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115187597928150429?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115187597928150429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115187597928150429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115187597928150429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115187597928150429'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/this-ebay-posting-for-yacht-that-was.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115176100678253250</id><published>2006-07-01T06:36:00.000-07:00</published><updated>2006-07-01T06:36:46.796-07:00</updated><title type='text'></title><content type='html'>I used to read security blogs via &lt;a href="http://www.dayioglu.net/planet/"&gt;http://www.dayioglu.net/planet/&lt;/a&gt; , which now seems down.&lt;br /&gt;It's amusing how quickly I have quit reading blogs since. Funny world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115176100678253250?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115176100678253250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115176100678253250' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115176100678253250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115176100678253250'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/07/i-used-to-read-security-blogs-via.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115113585342587309</id><published>2006-06-24T00:37:00.000-07:00</published><updated>2006-06-24T00:57:33.436-07:00</updated><title type='text'></title><content type='html'>On bug disclosure and contact with vendors&lt;br /&gt;&lt;br /&gt;After reading HDM's blog entry on interaction with MS on one of the recent bugs, I guess I should drop my 2c's worth of opinion into the bowl regarding bug disclosure:&lt;br /&gt;&lt;br /&gt;So sometimes I get the urge to find bugs. Then I go out and sometimes I find bugs. Then I usually feel quite happy and sometimes I even write an exploit. I do all this out of personal enjoyment -- I like bugs. I like having to play carambolage billard to get an exploit to work (meaning having to bounce things off of each other in weird angles to get stuff to work). Now, of course, once I am done I have several options on what to do with a bug.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Report it to the vendor. This would imply the following steps, all of which take up time and effort better spent on doing something interesting:&lt;br /&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Send mail to their secure@ address, requesting an encryption key. I think it is amusing that some vendors like to call security researchers irresponsible when the default channel for reporting vulnerabilities is unencrypted. That is about as irresponsible as the researchers talking about vulnerabilities on EFNET.&lt;/li&gt;&lt;li&gt;Get the encryption key. Spend time writing a description. Send the description, possibly with a PoC.&lt;/li&gt;&lt;li&gt;MSRC is a quite skilled bunch, but with almost any other software vendor, a huge back and forth begins now where one has to spend time explaining things to the other side. This involves writing boring things explaining boring concepts etc.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Sell it to somebody who pays for vulnerabilities. While this will imply the same lengthy process as mentioned above, at least one can in theory get paid for it. Personally, I wouldn't sell bugs, but that could have several reasons:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;I am old and lame and can't find bugs that are good enough any more&lt;/li&gt;&lt;li&gt;The few bugs that I find are too close to my heart to sell -- each good bug and each good exploit has a story, and I am not so broke that I'd need to sell something that I consider inherently beautiful&lt;/li&gt;&lt;li&gt;I don't know the people buying these things. I don't know what they'd do with it. I wouldn't give my dog to a total stranger either.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Keep it. Perhabs on a shelf, or in a frame. This implies zero effort on my side. It also gives me the joy of being able to look at it on my wall and think fondly of the story that it belonged to.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; So in case of 1), after having spent weeks on a bug, I have to spend more time doing something unenjoyable, and get a warm handshake with the words 'thanks for helping secure (the internet/the world/our revenue stream'.&lt;br /&gt;In case 2), I get a warm handshake, some money, and a feeling of guilt for having given my dog to a total stranger.&lt;br /&gt;In case 3), I have something to look at with fond memories and have to invest no time at all into things that I don't find interesting.&lt;br /&gt;&lt;br /&gt;What would be your choice ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115113585342587309?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115113585342587309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115113585342587309' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115113585342587309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115113585342587309'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/06/on-bug-disclosure-and-contact-with.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115104628401500324</id><published>2006-06-23T00:00:00.000-07:00</published><updated>2006-06-23T00:04:44.043-07:00</updated><title type='text'></title><content type='html'>I really enjoyed reading Ilfak's &lt;a href="http://www.hexblog.com/2006/06/simplex_method_in_ida_pro.html"&gt;blog post&lt;/a&gt; today :-) -- it always makes me happy to see clever abstractions and the results they produce. And I really enjoy original ideas (of which there seems to be a very finite amount in IT :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115104628401500324?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115104628401500324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115104628401500324' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115104628401500324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115104628401500324'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/06/i-really-enjoyed-reading-ilfaks-blog.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-115015278905258476</id><published>2006-06-12T15:41:00.000-07:00</published><updated>2006-06-12T15:53:09.063-07:00</updated><title type='text'></title><content type='html'>Compression, Statistics and such&lt;br /&gt;&lt;br /&gt;In the process of doing the usual stuff that I do when I do not struggle with my studies, I ran into the problem of having a number of streams with a very even distribution of byte values.  I know that these bytes are executable code somehow encoded. I have a lot of reason to suspect that they are compressed, not encrypted, but I have not been able to make sense of it yet.&lt;br /&gt;&lt;br /&gt;This brought me to the natural question: Do common encryption algorithms have statistical fingerprints that would allow them to be distinguished from one another, more-or-less irrespective of the underlying data ? It is clear that this gets harder as the amount of redundancy decreases.&lt;br /&gt;&lt;br /&gt;It was surprising (at least for me) that nobody else has worked on this yet (publically).&lt;br /&gt;&lt;br /&gt;Also, it made me regret that due to some time constraints involving some more algebraic courses I was unable to attend the Statistics I and II lectures given at my University by Prof. Dette. Had I attended, I would know better how to make sense of the capabilities that &lt;a href="http://www.r-project.org/"&gt;software like R could give me.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another example of the fundamental law of mathematics: For every n denoting the number of days you have studied mathematics there exists a practical problem that make you wish you had studied 2n days already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-115015278905258476?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/115015278905258476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=115015278905258476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115015278905258476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/115015278905258476'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/06/compression-statistics-and-such-in.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-114949855767175823</id><published>2006-06-05T02:03:00.000-07:00</published><updated>2006-06-05T02:09:17.683-07:00</updated><title type='text'></title><content type='html'>Some shameless self-promotion: Rolf and me are going to teach a special one-day class on BinDiff 2 at BlackHat Las Vegas this year:&lt;br /&gt;&lt;br /&gt;http://www.blackhat.com/html/bh-usa-06/train-bh-us-06-hf-sabre.html&lt;br /&gt;&lt;br /&gt;We'll cover applications of BinDiff to malware analysis, detecting Code Theft and GPL violations, and of course the usual patch analysis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-114949855767175823?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/114949855767175823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=114949855767175823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114949855767175823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114949855767175823'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/06/some-shameless-self-promotion-rolf-and.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-114935479925427933</id><published>2006-06-03T10:11:00.000-07:00</published><updated>2006-06-03T10:13:19.270-07:00</updated><title type='text'></title><content type='html'>Extra extra: &lt;span style="text-decoration: underline;"&gt;Google/Sun&lt;/span&gt;&lt;a href="http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html"&gt; discover the existence of integer overflows&lt;/a&gt; :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-114935479925427933?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/114935479925427933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=114935479925427933' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114935479925427933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114935479925427933'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/06/extra-extra-googlesun-discover.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-114885256051928086</id><published>2006-05-28T14:36:00.000-07:00</published><updated>2006-05-28T14:42:40.536-07:00</updated><title type='text'></title><content type='html'>My prediction for the next two years: Apple, Symantec, McAffee, Oracle etc. will get pounded into the ground by lots of bugs being found and disclosed through security researchers that are looking for easier targets than the current MS codebase. And the abovementioned companies won't have monopoly revenue to throw around and fix the issues.&lt;br /&gt;&lt;br /&gt;This is a big opportunity for MS to move into all their markets  :-) and sell their products as superior on the security side.&lt;br /&gt;&lt;br /&gt;While I am in "evil" mood: The german train system is about to be IPO'ed, and there's a lot of debate going on here about details of the contract. What is most interesting but not being debated:&lt;br /&gt;All real estate owned by the Deutsche Bahn AG (the privatized version of the german train system that is going to be floated) is in the books with it's value upon acquisition -- meaning it's value in 1935. The real estate in possession of the DB is, by today's value, worth several times more than the total money they expect to get out of the IPO.&lt;br /&gt;&lt;br /&gt;If I was an investment banker, I'd gang up with a bunch of private equity folks, buy the majority in the DB AG once it is IPO'd, and then sell of the real estate. Other countries (USA, Britain) survive without a decent train system, too, and I wouldn't care as I'd have a Rolls and a driver.&lt;br /&gt;&lt;br /&gt;Allright, enough of the devil's advocate mode. It was fun seeing my brother the last weekend,&lt;br /&gt;and we always come up with good ideas ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-114885256051928086?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/114885256051928086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=114885256051928086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114885256051928086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114885256051928086'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/05/my-prediction-for-next-two-years-apple.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-114837607654714061</id><published>2006-05-23T02:20:00.000-07:00</published><updated>2006-05-23T02:21:16.560-07:00</updated><title type='text'></title><content type='html'>MSASN1 is hard to read these days -- the code makes heavy use of carry-flag-dependent arithmetic (adc, rlc etc) to check for integer overflows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-114837607654714061?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/114837607654714061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=114837607654714061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114837607654714061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114837607654714061'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/05/msasn1-is-hard-to-read-these-days-code.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14114712.post-114814639216425880</id><published>2006-05-20T10:13:00.000-07:00</published><updated>2006-05-20T10:33:12.176-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5002/1267/1600/thumb-vs-arm.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/5002/1267/320/thumb-vs-arm.png" alt="" border="0" /&gt;&lt;/a&gt;The Vodafone virus dropped by today and brought us some mobile viruses to play with - thanks ! :-)&lt;br /&gt;&lt;br /&gt;So cross-platform diffing can be fun -- Rolf ran a diff of Commwarrior.B against Commwarrior.C today, and while B is compiled for standard ARM, C is compiled in 'thumb mode', which is pretty much the same as being compiled for a different CPU (thumb means that all instructions are different).&lt;br /&gt;&lt;br /&gt;The amusing result is that even though the compilation is for a different platform, we still get roughly 61% of the functions matched. And the functions, which are clearly the same on the 'structural' (e.g. flowgraph) - level, have completely different instructions, and manual inspection will confirm that these differing instructions end up doing the same.&lt;br /&gt;&lt;br /&gt;For those of you that want to verify things manually, click &lt;a href="http://www.sabre-security.com/sim.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14114712-114814639216425880?l=addxorrol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://addxorrol.blogspot.com/feeds/114814639216425880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14114712&amp;postID=114814639216425880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114814639216425880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14114712/posts/default/114814639216425880'/><link rel='alternate' type='text/html' href='http://addxorrol.blogspot.com/2006/05/vodafone-virus-dropped-by-today-and.html' title=''/><author><name>halvar.flake</name><uri>http://www.blogger.com/profile/12486016980670992738</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
