<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://www.woodmann.com/collaborative/tools/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Collaborative RCE Tool Library - IDA Signature Creation Tools (including sub-categories)</title>
		<link>http://www.woodmann.com/collaborative/tools/index.php/Special:FeedListing/IDA_Signature_Creation_Tools/feed?feed_type=rss&amp;recursive=1</link>
		<description>Update Notification Feed for Category: IDA Signature Creation Tools (and its sub-categories)</description>
		<language>en</language>
		<generator>MediaWiki 1.11.2 via dELTA feed generator</generator>
		<lastBuildDate>Fri, 03 Sep 2010 10:30:56 GMT</lastBuildDate>
		<item>
			<title>Tool Updated: SiDAg</title>
			<link>http://www.woodmann.com/collaborative/tools/index.php/SiDAg</link>
			<description>&lt;P&gt;&lt;B&gt;Listed in categories:&lt;/B&gt;&amp;nbsp;&lt;I&gt;&lt;a href=&quot;http://www.woodmann.com/collaborative/tools/index.php/Category:IDA_Signature_Creation_Tools&quot;&gt;IDA Signature Creation Tools&lt;/a&gt;&lt;/I&gt;&lt;/P&gt;&lt;p&gt;&lt;b&gt;Most recent version:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;1.0&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Most recent release date:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;August 31, 2009&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;The is a GUI tool that helps beginners making IDA signatures from Obj files/ librarries and PAT files.&lt;/i&gt;
&lt;/p&gt;</description>
			<pubDate>Mon, 31 Aug 2009 16:01:12 GMT</pubDate>								</item>
		<item>
			<title>Tool Updated: Advanced obj and lib IDA signature ripper</title>
			<link>http://www.woodmann.com/collaborative/tools/index.php/Advanced_obj_and_lib_IDA_signature_ripper</link>
			<description>&lt;P&gt;&lt;B&gt;Listed in categories:&lt;/B&gt;&amp;nbsp;&lt;I&gt;&lt;a href=&quot;http://www.woodmann.com/collaborative/tools/index.php/Category:IDA_Signature_Creation_Tools&quot;&gt;IDA Signature Creation Tools&lt;/a&gt;&lt;/I&gt;&lt;/P&gt;&lt;p&gt;&lt;b&gt;Most recent version:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;1.0&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Most recent release date:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;May 23, 2007&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;It loads obj and lib (COFF format) files signature to ida database.&lt;br /&gt;&lt;br /&gt;It identifies so many labels more than flair signatures.&lt;br /&gt;&lt;br /&gt;FLIRT signature creation not possible for some situation, for example you can try to create flirt signature for flexlm libs, but this plugin will work in such situations too!&lt;/i&gt;
&lt;/p&gt;</description>
			<pubDate>Thu, 29 Jan 2009 23:35:11 GMT</pubDate>								</item>
		<item>
			<title>Tool Added: IDA2PAT Reloaded</title>
			<link>http://www.woodmann.com/collaborative/tools/index.php/IDA2PAT_Reloaded</link>
			<description>&lt;P&gt;&lt;B&gt;Listed in categories:&lt;/B&gt;&amp;nbsp;&lt;I&gt;&lt;a href=&quot;http://www.woodmann.com/collaborative/tools/index.php/Category:IDA_Signature_Creation_Tools&quot;&gt;IDA Signature Creation Tools&lt;/a&gt;&lt;/I&gt;&lt;/P&gt;&lt;p&gt;&lt;b&gt;Most recent version:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;1.0B&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Most recent release date:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;July 19, 2008&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;An IDA Pro 5.xx plug-in to generate a pattern file.&lt;br /&gt;&lt;br /&gt;You've probably seen or more of the different variants of this plug-in: &lt;br /&gt;&amp;quot;ida2sig&amp;quot;, &amp;quot;ida2pat&amp;quot;, etc.&lt;br /&gt;We want to create a pattern (&amp;quot;.pat&amp;quot;) file to assemble a FLIRT signature file (&amp;quot;.sig&amp;quot;), using the FLAIR utility &amp;quot;sigmake.exe&amp;quot;. This will allow one to apply these sigs to help port updats, etc.&lt;br /&gt;&lt;br /&gt;I had preferred TQN's &amp;quot;ida2sig&amp;quot; version since it fastest (see below) I could find. But it had the same problems as the previous version.  And I wanted to make a build I could updated with the latest FLAIR lib, etc.&lt;br /&gt;&lt;br /&gt;[How to run it]&lt;br /&gt;1. Invoke it using your selected IDA hot-key or from &amp;quot;Edit-&amp;gt;Plugins&amp;quot;.&lt;br /&gt;2. Select the destination &amp;quot;.pat&amp;quot; file.&lt;br /&gt;3. After it is done, convert your pattern file into a signature file using&lt;br /&gt;   &amp;quot;sigmake.exe&amp;quot;,.&lt;br /&gt;&lt;br /&gt;[Design &amp;amp; Outstanding issues]&lt;br /&gt;There are zero options, the assumption is you want to save only, and all function names that are not autogenerated. That is for the most part, all functions that are not &amp;quot;sub_69B470&amp;quot;, and &amp;quot;unknown_libname_228&amp;quot;.&lt;br /&gt;&lt;br /&gt;There are unfortunately ambiguities, and errors using function name flags like &amp;quot;pFunc-&amp;gt;flags &amp;amp; FUNC_LIB&amp;quot;, &amp;quot;is_public_name()&amp;quot;, &amp;quot;dummy_name_ea()&amp;quot;, etc.,  to determine what is a library, public, etc., function.&lt;br /&gt;&lt;br /&gt;Biggest hurdle, consider this.. You go do your RE work, you rename some functions with a name that makes sense to you; or you just rename it specifically so you can come back to it later using a custom sig, etc.&lt;br /&gt;Maybe all is well on the first time because IDA will see it as a user function and thus traditional IDA2PAT will create a pattern for it. But next time after update, etc., you apply the sig. It is no longer a &amp;quot;user function&amp;quot;, IDA marks it as a library, or worse as autogenerated. Don't like this. We want to be able to apply a sig, work on the DB rename some functions with better fitting names as my understanding grows, etc., then create a new patterns and not have name collisions, etc.&lt;br /&gt;&lt;br /&gt;AFAIK there is no solid way to determine what is &amp;quot;autogenerated&amp;quot;, &amp;quot;user-generated&amp;quot; or otherwise, using the stock IDA SDK functions.&lt;br /&gt;&lt;br /&gt;What &amp;quot;IDA2PAT Reloaded&amp;quot; does is solely rely on function name patterns instead. It simply rejects functions that start with &amp;quot;&amp;quot;sub_..&amp;quot;, &amp;quot;unknown_libname_..&amp;quot;, or that start with the characters '$', '@', '?', and '_', etc.&lt;br /&gt;&lt;br /&gt;This will be a problem if you intentionally use using something like &amp;quot;sub_MyFunction&amp;quot;, or &amp;quot;unknown_libname_MyFunction&amp;quot;, etc., as your naming convention.  This design assumes IDA is setup to display autogenerated function names as &amp;quot;sub_xxxxxx&amp;quot;, etc., in the defaults.&lt;br /&gt;&lt;br /&gt;Speed:&lt;br /&gt;TQN's version was definitely faster then others, he replaced the file streaming &amp;quot;qfprintf()&amp;quot; with a very large buffer, then saved the buffer at the end. The real issue was a single &amp;quot;qflush()&amp;quot; call after each pattern create in &lt;br /&gt;Quine's original code.  FYI, a file &amp;quot;flush&amp;quot; causes the OS to flush it's write cache causing a file performance hit.&lt;br /&gt;&lt;br /&gt;As a baseline, just iterating through around 100k functions (with zero processing) takes ~12seconds on my machine on average. Thus, any processing on top of that is just additive. IDA2PAT-Reloaded only adds ~3 seconds to the base line on a modern machine.&lt;/i&gt;
&lt;/p&gt;</description>
			<pubDate>Sun, 20 Jul 2008 20:57:04 GMT</pubDate>								</item>
		<item>
			<title>Tool Updated: IDA 2 PAT</title>
			<link>http://www.woodmann.com/collaborative/tools/index.php/IDA_2_PAT</link>
			<description>&lt;P&gt;&lt;B&gt;Listed in categories:&lt;/B&gt;&amp;nbsp;&lt;I&gt;&lt;a href=&quot;http://www.woodmann.com/collaborative/tools/index.php/Category:IDA_Signature_Creation_Tools&quot;&gt;IDA Signature Creation Tools&lt;/a&gt;&lt;/I&gt;&lt;/P&gt;&lt;p&gt;&lt;b&gt;Most recent version:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;1.0&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Most recent release date:&lt;/b&gt;&lt;br /&gt;

&lt;/p&gt;&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;For the most part, this plugin is an exercise in futility. There are&lt;br /&gt;very few valid reasons why anyone should ever want to build signatures&lt;br /&gt;of the functions in an existing disassembly. There are better&lt;br /&gt;reasons, methods and tools for creating signatures for use with IDA.&lt;br /&gt;Most importantly, the right way to create signatures is from object&lt;br /&gt;files, object libraries or dynamically linked libraries, so please&lt;br /&gt;realize this plugin is nothing more than a kludge since we are asking&lt;br /&gt;FLAIR to do something it was not designed to do.&lt;br /&gt;&lt;br /&gt;**********************************************************************&lt;br /&gt;Option: Create patterns for Non-Auto Named Functions&lt;br /&gt;&lt;br /&gt;    If you find the rare situation where you want to make patterns&lt;br /&gt;from functions in an existing database, this option is probably your&lt;br /&gt;best bet. It will only create patterns for functions without&lt;br /&gt;auto generated names and it will exclude functions marked as libraries&lt;br /&gt;(e.g. they were already found and named through other FLAIR&lt;br /&gt;signatures). You may want to remove named functions like _main and&lt;br /&gt;WinMain from the resulting pattern file, since these will already&lt;br /&gt;exist in the disassembly where it's applied.&lt;br /&gt;&lt;br /&gt;**********************************************************************&lt;br /&gt;Option: Create Patterns for Library Functions Only&lt;br /&gt;&lt;br /&gt;    I did include the ability to build patterns for functions IDA has&lt;br /&gt;already marked as libraries. This is forpeople doing source code&lt;br /&gt;recovery/recreation since the pattern file can be further parsed to&lt;br /&gt;figure out which header files are needed. There are probably better&lt;br /&gt;ways to go about this as well but until I have time to write specific a&lt;br /&gt;plugin for figuring out which headers are included, this can give you&lt;br /&gt;a step in the right direction.Out side of gathering information on&lt;br /&gt;applied library signatures, this feature is pointless since you're&lt;br /&gt;building patterns for function that were previously found with other&lt;br /&gt;signatures you already have.&lt;br /&gt;&lt;br /&gt;**********************************************************************&lt;br /&gt;Option: Create Patterns for Public Functions Only              &lt;br /&gt;    &lt;br /&gt;    This could be useful when dealing with a situation where functions &lt;br /&gt;were once stored in a DLL and are now statically linked in an &lt;br /&gt;executable. It's still may a better bet to build a signature from the &lt;br /&gt;DLL and then apply it to the statically linked executable.&lt;br /&gt;&lt;br /&gt;**********************************************************************&lt;br /&gt;Option: Create Patterns For Everything&lt;br /&gt;&lt;br /&gt;    You generally do NOT want to build patterns for every function in&lt;br /&gt;the disassembly. The only place where I can see a legitimate use for&lt;br /&gt;creating signatures of every function in the database is if your goal&lt;br /&gt;is to see how similar two executables are. Instead of using a hex&lt;br /&gt;editor and doing a re-synchronizing binary compare between the two&lt;br /&gt;executables,you could use IDA signatures to get a different/better&lt;br /&gt;way to visualize the similarities.&lt;br /&gt;&lt;br /&gt;    There are a lot of problems with trying to do this. The first and&lt;br /&gt;most obvious problem is reserved name prefixes (e.g. sub_) on&lt;br /&gt;auto generated function names. Another cascading problem is of course&lt;br /&gt;references to these names withing other functions and whether or not&lt;br /&gt;to keep these references in the patterns in order to cut down the&lt;br /&gt;number of collisions. There are plenty of other problems with this&lt;br /&gt;approach that I won't mention but there are quite a few of them.&lt;br /&gt;&lt;br /&gt;    I've hacked together a simple work-around. When the user has&lt;br /&gt;selected everything mode, the plugin will prepend the auto generated&lt;br /&gt;function names with FAKE_ and references to these sub routines are&lt;br /&gt;kept to reduce collisions. This should (in theory) work, since every&lt;br /&gt;reference will also have it's own public pattern in the resulting&lt;br /&gt;file. In other words, the named references will resolve to another&lt;br /&gt;(public) function pattern in the file. The problem with this approach&lt;br /&gt;is of course having erroneous address numbers in names of functions&lt;br /&gt;where the signature is applied (e.g. the nameFAKE_sub_DEADBEEF could&lt;br /&gt;be applied to any address where a matching function is found). My&lt;br /&gt;guess why this will work is because a module in a library may have a&lt;br /&gt;by name reference to another object in the library. The pattern file&lt;br /&gt;of a library would keep the references, since the names are defined &lt;br /&gt;in other pattern lines of the file. Of course I could be wrong but &lt;br /&gt;it's worth a shot. If need be comment out the &amp;quot;sub_&amp;quot; tests in &lt;br /&gt;part #7 (references) of make_pattern() to get rid of the refs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**********************************************************************&lt;br /&gt;Option: Create Pattern For User Selected Function&lt;br /&gt;&lt;br /&gt;    This allows the user to select a function from the list  and &lt;br /&gt;create a pattern for it. It does not work on functions with auto&lt;br /&gt;generated names but probably could with a bit more work.&lt;br /&gt;&lt;br /&gt;______________________________________________________________________&lt;br /&gt;**********************************************************************&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;LIMITATIONS:&lt;br /&gt;&lt;br /&gt;    *   References and tail bytes are only used by sigmake to resolve&lt;br /&gt;collisions. Auto generated names with reserved prefixes &amp;quot;loc_&amp;quot; &amp;quot;byte_&amp;quot;&lt;br /&gt;&amp;quot;dword_&amp;quot; are not going to be repeatable in the binary where you would&lt;br /&gt;apply the resulting signature. If those references were kept and used&lt;br /&gt;to resolve a collision, you'd end up with a useless signature that&lt;br /&gt;would not be applied because those names do not exist in executable&lt;br /&gt;where the resulting signature is being applied.&lt;br /&gt;&lt;br /&gt;    *   Reference offsets that greater than 0x8000 bytes from the&lt;br /&gt;function start may make this plugin explode or more likely, just make&lt;br /&gt;unusable patterns.&lt;br /&gt;&lt;br /&gt;    *   All references are assumed to be 4 bytes long. This will cause&lt;br /&gt;some problems for situations (e.g. processors) where this is not true.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;______________________________________________________________________&lt;br /&gt;**********************************************************************&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;TODO:     &lt;br /&gt;    * Error checking for reference offsets &amp;gt; 0x8000     &lt;br /&gt;    * Change reference length from being fixed at 4 bytes.     &lt;br /&gt;    * Create &amp;quot;append&amp;quot; versus &amp;quot;overwrite&amp;quot; dialog.     &lt;br /&gt;    * Deal with the user choosing a function with an auto&lt;br /&gt;      generated name in the &amp;quot;Single Function&amp;quot; mode.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;______________________________________________________________________&lt;br /&gt;**********************************************************************&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;DEVELOPMENT:&lt;br /&gt;&lt;br /&gt;I did this in MSVC++ v6. There are two projects in the workspace. One&lt;br /&gt;is for the plugin and the other for IDAG.EXE so we can debug the&lt;br /&gt;plugin once IDA loads it e.g. start the plugin and at the choose file&lt;br /&gt;dilog break. In the list of modules, you'll find &amp;quot;run()&amp;quot; and other&lt;br /&gt;functions from the plugin.&lt;br /&gt;&lt;br /&gt;Depending on where you install IDA, you'll need to adjust where the&lt;br /&gt;plugin is written. I've got output set to &amp;quot;C:\IDA\PLUGINS\IDB2PAT.plw&amp;quot;&lt;br /&gt;The same is true for the location of the SDK and such.&lt;br /&gt;&lt;br /&gt;When it's set to build the debug version, there will be a lot of &lt;br /&gt;warnings due to info truncation of debug symbols. It's not a big deal.&lt;/i&gt;
&lt;/p&gt;</description>
			<pubDate>Tue, 01 Jul 2008 10:20:39 GMT</pubDate>								</item>
		<item>
			<title>Tool Updated: Fast IDB2Sig and LoadMap IDA plugins</title>
			<link>http://www.woodmann.com/collaborative/tools/index.php/Fast_IDB2Sig_and_LoadMap_IDA_plugins</link>
			<description>&lt;P&gt;&lt;B&gt;Listed in categories:&lt;/B&gt;&amp;nbsp;&lt;I&gt;&lt;a href=&quot;http://www.woodmann.com/collaborative/tools/index.php/Category:IDA_Signature_Creation_Tools&quot;&gt;IDA Signature Creation Tools&lt;/a&gt;&lt;/I&gt;&lt;/P&gt;&lt;p&gt;&lt;b&gt;Most recent version:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;1.0&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Most recent release date:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;September 14, 2004&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;It took me two weeks to write two IDA plugins, a renew, fast IDB2Sig plugin and a new, very fast LoadMap plugin.&lt;br /&gt;The IDB2SIG plugin I rewrote base on the orginal source code and idea of:&lt;br /&gt;- Quine (quine@blacksun.res.cmu.edu)&lt;br /&gt;- Darko&lt;br /&gt;- IDB2PAT of J.C. Roberts &amp;lt;mercury@abac.com&amp;gt;&lt;br /&gt;Thanks all of you very much. I think all of you will allow me to public the new source code.&lt;br /&gt;The LoadMap plugin I wrote base on the idea of Toshiyuki Tega. It will supports loading and parsing VC++, Borland (Delphi/BC++/CBuilder) and DeDe map files.&lt;br /&gt;And with two plugins, I need only two days to create two signature file for Delphi 6/7. Very fast and convenience. Hereafter, we can use two above plugins to create signature files, load map symbols...&lt;br /&gt;&lt;br /&gt;Source is included, and plugins are precompiled for IDA 4.5 and 5.2.&lt;/i&gt;
&lt;/p&gt;</description>
			<pubDate>Tue, 01 Jul 2008 10:20:21 GMT</pubDate>								</item>
	</channel>
</rss>