<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: The Sad State of Reverse Engineering</title>
	<atom:link href="http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/feed/" rel="self" type="application/rss+xml" />
	<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/</link>
	<description>Hitting bottom, and asking for more</description>
	<lastBuildDate>Sat, 27 Feb 2010 18:14:53 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Donny Viszneki</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-354</link>
		<dc:creator>Donny Viszneki</dc:creator>
		<pubDate>Wed, 10 Feb 2010 01:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-354</guid>
		<description>fuzzing has made some strides</description>
		<content:encoded><![CDATA[<p>fuzzing has made some strides</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dan</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-302</link>
		<dc:creator>dan</dc:creator>
		<pubDate>Wed, 09 Dec 2009 12:27:10 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-302</guid>
		<description>&gt; I can understand if companies do not open source their applications, but why are so many academia RE tools closed source?

The reasons we face in my lab are:
1. you don&#039;t own your code, so you can&#039;t give it away. Technically, the owner of the code is not the PhD student but his institute or the people spending money on him/her. For something &quot;big&quot;, potentially patentable (meh), you would have to ask formally for the authorization to open source it...

2. really dirty code. Honestly, the reason why my tools were private so far was that it takes time to make something public. You have to make sure that your code does not look too crappy and compiles without you, write some documentation, setup a website, provide some form of support... And you&#039;re not even sure to have feedback, so it is an immediate cost with potentially no benefit.</description>
		<content:encoded><![CDATA[<p>&gt; I can understand if companies do not open source their applications, but why are so many academia RE tools closed source?</p>
<p>The reasons we face in my lab are:<br />
1. you don&#8217;t own your code, so you can&#8217;t give it away. Technically, the owner of the code is not the PhD student but his institute or the people spending money on him/her. For something &#8220;big&#8221;, potentially patentable (meh), you would have to ask formally for the authorization to open source it&#8230;</p>
<p>2. really dirty code. Honestly, the reason why my tools were private so far was that it takes time to make something public. You have to make sure that your code does not look too crappy and compiles without you, write some documentation, setup a website, provide some form of support&#8230; And you&#8217;re not even sure to have feedback, so it is an immediate cost with potentially no benefit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dan</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-301</link>
		<dc:creator>dan</dc:creator>
		<pubDate>Wed, 09 Dec 2009 12:12:58 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-301</guid>
		<description>&gt; Correct me if I’m wrong, but the picture is much more grim: if you attempt to research RE topics at a university there may even be legal problems…

The magic answer here is &quot;malware analysis&quot;. You don&#039;t do RE, you do malware analysis. Just to make sure you won&#039;t have any problems, you have to mention that at least 15 zillion malware samples are produced each day by friggin&#039; terrorists, and they cost 110 trouzillions dollars a year to the free world, resulting in lots of pain, natural disasters, and unnecessary deaths of innocent baby seals. Legal problem solved.</description>
		<content:encoded><![CDATA[<p>&gt; Correct me if I’m wrong, but the picture is much more grim: if you attempt to research RE topics at a university there may even be legal problems…</p>
<p>The magic answer here is &#8220;malware analysis&#8221;. You don&#8217;t do RE, you do malware analysis. Just to make sure you won&#8217;t have any problems, you have to mention that at least 15 zillion malware samples are produced each day by friggin&#8217; terrorists, and they cost 110 trouzillions dollars a year to the free world, resulting in lots of pain, natural disasters, and unnecessary deaths of innocent baby seals. Legal problem solved.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wishi</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-290</link>
		<dc:creator>wishi</dc:creator>
		<pubDate>Mon, 30 Nov 2009 23:13:31 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-290</guid>
		<description>No (academic) newcomers into the RE fields?
- So what do we do now? The complexity of Windows (7) on x86(-64) is enormously high. Most people at my university are way too uninterested to dive into RE these days. It takes years. And patience. People - like professors e. g. - are telling you that it&#039;s impossible to analyze binaries. Just because their own RE abilities are very limited. Who teaches RE skills? No one does. First part of the problem. Or who can teach that?

I wouldn&#039;t say I&#039;m good at RE. My work doesn&#039;t require deeply sophisticated skills of that kind. I see many very interesting tools that could be OpenSource. Like BinVis, BinNavi or so. But they aren&#039;t. That&#039;s the industry&#039;s own choice: no one contributes to the whole. Or very few people. 
If you want to do practical reverse engineering just with OpenSource tools: have fun. There aren&#039;t very many of these tools. Maybe metasm, VILE, VEX, ButBlaze, maybe even IDA plugins. But seriously: using these tools requires a hardcore set of skills or - speaking of IDA - money and at least some skills. 

If no one teaches RE, and no one offers free tools - no one will follow the path. Correct me if I&#039;m wrong, but the picture is much more grim: if you attempt to research RE topics at a university there may even be legal problems...</description>
		<content:encoded><![CDATA[<p>No (academic) newcomers into the RE fields?<br />
- So what do we do now? The complexity of Windows (7) on x86(-64) is enormously high. Most people at my university are way too uninterested to dive into RE these days. It takes years. And patience. People &#8211; like professors e. g. &#8211; are telling you that it&#8217;s impossible to analyze binaries. Just because their own RE abilities are very limited. Who teaches RE skills? No one does. First part of the problem. Or who can teach that?</p>
<p>I wouldn&#8217;t say I&#8217;m good at RE. My work doesn&#8217;t require deeply sophisticated skills of that kind. I see many very interesting tools that could be OpenSource. Like BinVis, BinNavi or so. But they aren&#8217;t. That&#8217;s the industry&#8217;s own choice: no one contributes to the whole. Or very few people.<br />
If you want to do practical reverse engineering just with OpenSource tools: have fun. There aren&#8217;t very many of these tools. Maybe metasm, VILE, VEX, ButBlaze, maybe even IDA plugins. But seriously: using these tools requires a hardcore set of skills or &#8211; speaking of IDA &#8211; money and at least some skills. </p>
<p>If no one teaches RE, and no one offers free tools &#8211; no one will follow the path. Correct me if I&#8217;m wrong, but the picture is much more grim: if you attempt to research RE topics at a university there may even be legal problems&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anonymous dude</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-289</link>
		<dc:creator>anonymous dude</dc:creator>
		<pubDate>Mon, 30 Nov 2009 17:18:29 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-289</guid>
		<description>&gt; Reason #4: One-off-tools to get publications

even if their tools aren&#039;t FOSS!

I can understand if companies do not open source their applications, but why are so many academia RE tools closed source?

They could form a base toolset to enable the further development and maintenance (eradicating Reason #5). And if there is an existing FOSS RE toolset, one-shot tools could be integrated into the existing toolsets.

Although there is a current trend to publish the sources of RE research tools (Dan&#039;s PIN tools, BitBlaze/TEMU), there has been a set of tools, coming from the academia, which hasn&#039;t been open sourced: Anubis, TaintBochs, ...</description>
		<content:encoded><![CDATA[<p>&gt; Reason #4: One-off-tools to get publications</p>
<p>even if their tools aren&#8217;t FOSS!</p>
<p>I can understand if companies do not open source their applications, but why are so many academia RE tools closed source?</p>
<p>They could form a base toolset to enable the further development and maintenance (eradicating Reason #5). And if there is an existing FOSS RE toolset, one-shot tools could be integrated into the existing toolsets.</p>
<p>Although there is a current trend to publish the sources of RE research tools (Dan&#8217;s PIN tools, BitBlaze/TEMU), there has been a set of tools, coming from the academia, which hasn&#8217;t been open sourced: Anubis, TaintBochs, &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wtbw</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-285</link>
		<dc:creator>wtbw</dc:creator>
		<pubDate>Sat, 28 Nov 2009 10:15:34 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-285</guid>
		<description>Well, I&#039;m not giving up just yet ;-)</description>
		<content:encoded><![CDATA[<p>Well, I&#8217;m not giving up just yet ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Halvar</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-281</link>
		<dc:creator>Halvar</dc:creator>
		<pubDate>Mon, 23 Nov 2009 13:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-281</guid>
		<description>Hey Dan,

sorry if my post sounds too negative :) 

&gt;&gt; Reason #2: FOSS is altruistic, building for RE’s isn’t
&gt;That’s true if you build something specifically for reversers, but I can imagine projects &gt;originating from RE that could be useful to other communities.

Yes, of course, but not &quot;in the short run&quot; (e.g. less than 3-5 years).

&gt;This is probably the major concern. We would need someone who combines the
&gt; three traits and is crazy enough to devote his time to developing a free RE project,
&gt;and the probability of all that happening at the same time is minus something.

Well... look at it from another angle, too: I built &quot;free&quot; RE tools earlier, never got
feedback, and had a gazillion other things to do. Then I built BinDiff non-free, and
at least I could afford spending a long and sustained effort on it, which would not have
happened otherwise. Neither BinNavi nor VxClass could&#039;ve been built on my free
time. 

And there&#039;s a *long*  painful stretch from &quot;prototype&quot; to &quot;usable product&quot;. Literally, years. 

&gt;&gt; People that work on a RE-related topic for their PhD thesis need to eat after they are PhDs.
&gt;Don’t break my delusions please.

Hahaha. Sorry...</description>
		<content:encoded><![CDATA[<p>Hey Dan,</p>
<p>sorry if my post sounds too negative :) </p>
<p>&gt;&gt; Reason #2: FOSS is altruistic, building for RE’s isn’t<br />
&gt;That’s true if you build something specifically for reversers, but I can imagine projects &gt;originating from RE that could be useful to other communities.</p>
<p>Yes, of course, but not &#8220;in the short run&#8221; (e.g. less than 3-5 years).</p>
<p>&gt;This is probably the major concern. We would need someone who combines the<br />
&gt; three traits and is crazy enough to devote his time to developing a free RE project,<br />
&gt;and the probability of all that happening at the same time is minus something.</p>
<p>Well&#8230; look at it from another angle, too: I built &#8220;free&#8221; RE tools earlier, never got<br />
feedback, and had a gazillion other things to do. Then I built BinDiff non-free, and<br />
at least I could afford spending a long and sustained effort on it, which would not have<br />
happened otherwise. Neither BinNavi nor VxClass could&#8217;ve been built on my free<br />
time. </p>
<p>And there&#8217;s a *long*  painful stretch from &#8220;prototype&#8221; to &#8220;usable product&#8221;. Literally, years. </p>
<p>&gt;&gt; People that work on a RE-related topic for their PhD thesis need to eat after they are PhDs.<br />
&gt;Don’t break my delusions please.</p>
<p>Hahaha. Sorry&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dan</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-271</link>
		<dc:creator>dan</dc:creator>
		<pubDate>Sat, 21 Nov 2009 23:57:09 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-271</guid>
		<description>Wow, that is indeed a lot of good reasons.

&gt; Reason #2: FOSS is altruistic, building for RE’s isn’t

That&#039;s true if you build something specifically for reversers, but I can imagine projects originating from RE that could be useful to other communities.

&gt; Reason #3: RE tools are really difficult to build.

This is probably the major concern. We would need someone who combines the three traits and is crazy enough to devote his time to developing a free RE project, and the probability of all that happening at the same time is minus something.

&gt; Reason #4: One-off-tools to get publications

Why does this sound all too familiar?

&gt; People that work on a RE-related topic for their PhD thesis need to eat after they are PhDs. 

Don&#039;t break my delusions please.</description>
		<content:encoded><![CDATA[<p>Wow, that is indeed a lot of good reasons.</p>
<p>&gt; Reason #2: FOSS is altruistic, building for RE’s isn’t</p>
<p>That&#8217;s true if you build something specifically for reversers, but I can imagine projects originating from RE that could be useful to other communities.</p>
<p>&gt; Reason #3: RE tools are really difficult to build.</p>
<p>This is probably the major concern. We would need someone who combines the three traits and is crazy enough to devote his time to developing a free RE project, and the probability of all that happening at the same time is minus something.</p>
<p>&gt; Reason #4: One-off-tools to get publications</p>
<p>Why does this sound all too familiar?</p>
<p>&gt; People that work on a RE-related topic for their PhD thesis need to eat after they are PhDs. </p>
<p>Don&#8217;t break my delusions please.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Halvar</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-266</link>
		<dc:creator>Halvar</dc:creator>
		<pubDate>Sat, 21 Nov 2009 10:54:21 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-266</guid>
		<description>There are many factors that make it difficult to develop RE tools, be it either open or commercially. 

Before we begin, we should clarify to ourselves just how tiny the RE community is. I would be surprised if we have 5000 active reverse engineers in the world. 
By different estimates, there are between 1m and 10m software developers in the world, leading to a 200:1 or 2000:1 ratio. 

Reason #1: Development makes money, RE does not
Companies like Microsoft, Google etc. essentially make their money writing code. They will invest heavily in development tools. Some of them will provide funds to FOSS to build stuff. But all this money goes to *development*, not to RE. 

Reason #2: FOSS is altruistic, building for RE&#039;s isn&#039;t
Let&#039;s assume your employer doesn&#039;t support FOSS, and you&#039;re going to spend your free time on a project. That in itself is quite altruistic. Would you not prefer to contribute to a community that touches and improves the lives for *many* people, not just the lives of roughly 5000 hardcore reversers ?

Reason #3: RE tools are really difficult to build.
They require people that combine the following traits:
1) Knowledge of RE. This is not easily acquired in school.
2) Ability to read the more &quot;formal&quot; parts of literature. Many CS graduates can&#039;t read basic program analysis papers. 
3) Ability to develop larger projects. This is also rare.
Being able to do any of the three things above will provide you with a job outside of RE tool development. Being able to do two of the three will provide you with a well-paid job outside of RE tool development.

Reason #4: One-off-tools to get publications
A lot of good research work gets done on a &quot;one-off&quot; basis. There is a long painful stretch between &quot;prototype that works often enough for our paper&quot; and &quot;usable tool&quot;. 
For publications, the former is sufficient. 

Reason #5: PhD thesis are time-limited
People that work on a RE-related topic for their PhD thesis need to eat after they are PhDs. This means they have two options: Go to industry, which is unlikely to pick up their PhD work (there is no money to be made in RE tools), or go to academia, which actively disincentives maintaining an existing tool (you&#039;re supposed to publish new papers, not spend time fixing bugs in existing code).

Reason #6: RE is a difficult market commercially
I think few people realize this (perhaps primarily Ilfak and me ;) -- but RE is a difficult market to be in. You have *very* demanding customers, that are at the same time quite resource-constrained. You need extremely good developers to work on the tools. This puts you in a situation where you essentially can&#039;t pay the developers the same amount of money they could make scaling facebook or working on photoshop, and you have to hope that the work environment you create for the devs, coupled with the interesting problems, convinces them to work on a less well-paid job. 

So...errr...I could go on for a while, but really: The state of RE tools is not surprising. In fact, I am rather astonished that we *have* the tools we have in the first place, and this is mainly due to the fact hat a lot of us like to work on RE in spite of all the economics being stacked against us.</description>
		<content:encoded><![CDATA[<p>There are many factors that make it difficult to develop RE tools, be it either open or commercially. </p>
<p>Before we begin, we should clarify to ourselves just how tiny the RE community is. I would be surprised if we have 5000 active reverse engineers in the world.<br />
By different estimates, there are between 1m and 10m software developers in the world, leading to a 200:1 or 2000:1 ratio. </p>
<p>Reason #1: Development makes money, RE does not<br />
Companies like Microsoft, Google etc. essentially make their money writing code. They will invest heavily in development tools. Some of them will provide funds to FOSS to build stuff. But all this money goes to *development*, not to RE. </p>
<p>Reason #2: FOSS is altruistic, building for RE&#8217;s isn&#8217;t<br />
Let&#8217;s assume your employer doesn&#8217;t support FOSS, and you&#8217;re going to spend your free time on a project. That in itself is quite altruistic. Would you not prefer to contribute to a community that touches and improves the lives for *many* people, not just the lives of roughly 5000 hardcore reversers ?</p>
<p>Reason #3: RE tools are really difficult to build.<br />
They require people that combine the following traits:<br />
1) Knowledge of RE. This is not easily acquired in school.<br />
2) Ability to read the more &#8220;formal&#8221; parts of literature. Many CS graduates can&#8217;t read basic program analysis papers.<br />
3) Ability to develop larger projects. This is also rare.<br />
Being able to do any of the three things above will provide you with a job outside of RE tool development. Being able to do two of the three will provide you with a well-paid job outside of RE tool development.</p>
<p>Reason #4: One-off-tools to get publications<br />
A lot of good research work gets done on a &#8220;one-off&#8221; basis. There is a long painful stretch between &#8220;prototype that works often enough for our paper&#8221; and &#8220;usable tool&#8221;.<br />
For publications, the former is sufficient. </p>
<p>Reason #5: PhD thesis are time-limited<br />
People that work on a RE-related topic for their PhD thesis need to eat after they are PhDs. This means they have two options: Go to industry, which is unlikely to pick up their PhD work (there is no money to be made in RE tools), or go to academia, which actively disincentives maintaining an existing tool (you&#8217;re supposed to publish new papers, not spend time fixing bugs in existing code).</p>
<p>Reason #6: RE is a difficult market commercially<br />
I think few people realize this (perhaps primarily Ilfak and me ;) &#8212; but RE is a difficult market to be in. You have *very* demanding customers, that are at the same time quite resource-constrained. You need extremely good developers to work on the tools. This puts you in a situation where you essentially can&#8217;t pay the developers the same amount of money they could make scaling facebook or working on photoshop, and you have to hope that the work environment you create for the devs, coupled with the interesting problems, convinces them to work on a less well-paid job. </p>
<p>So&#8230;errr&#8230;I could go on for a while, but really: The state of RE tools is not surprising. In fact, I am rather astonished that we *have* the tools we have in the first place, and this is mainly due to the fact hat a lot of us like to work on RE in spite of all the economics being stacked against us.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dan</title>
		<link>http://indefinitestudies.org/2009/11/01/the-sad-state-of-reverse-engineering/#comment-258</link>
		<dc:creator>dan</dc:creator>
		<pubDate>Tue, 17 Nov 2009 17:54:43 +0000</pubDate>
		<guid isPermaLink="false">http://indefinitestudies.org/?p=383#comment-258</guid>
		<description>sure, I guess everywhere companies have their own projects, and they see no incentive to open them. Yet usually communities emerge and create open products... but not in RE</description>
		<content:encoded><![CDATA[<p>sure, I guess everywhere companies have their own projects, and they see no incentive to open them. Yet usually communities emerge and create open products&#8230; but not in RE</p>
]]></content:encoded>
	</item>
</channel>
</rss>
