<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>News &#8211; NTCore</title>
	<atom:link href="https://ntcore.com/category/news/feed/" rel="self" type="application/rss+xml" />
	<link>https://ntcore.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Dec 2025 13:27:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://ntcore.com/wp-content/uploads/2018/07/cropped-ntcore_icon-2-32x32.png</url>
	<title>News &#8211; NTCore</title>
	<link>https://ntcore.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">184274875</site>	<item>
		<title>Windows Memory Analysis</title>
		<link>https://ntcore.com/windows-memory-analysis/</link>
					<comments>https://ntcore.com/windows-memory-analysis/#respond</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Tue, 25 Mar 2025 10:37:04 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Cerbero Labs]]></category>
		<category><![CDATA[Cerbero Suite]]></category>
		<category><![CDATA[Forensics]]></category>
		<category><![CDATA[Memory]]></category>
		<guid isPermaLink="false">https://ntcore.com/?p=755</guid>

					<description><![CDATA[If, just like me, you&#8217;re fascinated by memory forensics, you might be interested in the new Memory Analysis package for Cerbero Suite developed by my company. The package supports analyzing memory dumps from Windows XP up to Windows 11, on both x86 and x64 systems, and is designed to make complex forensic tasks simpler and &#8230; <a href="https://ntcore.com/windows-memory-analysis/" class="more-link">Continue reading<span class="screen-reader-text"> "Windows Memory Analysis"</span></a>]]></description>
										<content:encoded><![CDATA[<p>If, just like me, you&#8217;re fascinated by memory forensics, you might be interested in the new <a href="https://cerbero.io/memory/">Memory Analysis package</a> for <a href="https://cerbero.io/suite/">Cerbero Suite</a> developed by my company. The package supports analyzing memory dumps from Windows XP up to Windows 11, on both x86 and x64 systems, and is designed to make complex forensic tasks simpler and more intuitive.</p>
<p><a href="https://cerbero.io/memory/"><img decoding="async" class="center-img" src="/wp-content/uploads/2025/12/memory.png"/></a></p>
<p>I&#8217;ve always been intrigued by the possibility of visually exploring an entire system, from the complete overview down to its mapped executables in memory. As Cerbero Suite&#8217;s functionality evolved, it is now capable of offering an unparalleled experience in this regard.</p>
<p>If you or your organization are involved in memory analysis, you might want to check it out.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/windows-memory-analysis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">755</post-id>	</item>
		<item>
		<title>Cerbero Journal</title>
		<link>https://ntcore.com/cerbero-journal/</link>
					<comments>https://ntcore.com/cerbero-journal/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Mon, 20 Jun 2022 08:45:21 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Cerbero Labs]]></category>
		<guid isPermaLink="false">https://ntcore.com/?p=723</guid>

					<description><![CDATA[Since I&#8217;m a nostalgic, my company now has an official e-zine. If, like me, you&#8217;re old enough, it will perhaps remind you of the golden era of e-zines.]]></description>
										<content:encoded><![CDATA[<p>Since I&#8217;m a nostalgic, my company now has an official <a href="https://cerbero.io/e-zine/">e-zine</a>.</p>
<p>If, like me, you&#8217;re old enough, it will perhaps remind you of the golden era of e-zines.</p>
<p><center><a href="https://cerbero.io/e-zine/"><img decoding="async" src="/wp-content/uploads/2022/06/cerbero_journal_issue_1.png"/></a></center></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/cerbero-journal/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">723</post-id>	</item>
		<item>
		<title>NTCore revamped</title>
		<link>https://ntcore.com/ntcore-revamped/</link>
					<comments>https://ntcore.com/ntcore-revamped/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Mon, 09 Jul 2018 22:04:45 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://ntcore.com/?p=418</guid>

					<description><![CDATA[After over a decade, I finally took two afternoons to revamp this personal web-page and to merge the content of the old NTCore page with the content of its blog (rcecafe.net). All the URLs of the old web-page and blog have been preserved in the process. The people who voted for this on Twitter are &#8230; <a href="https://ntcore.com/ntcore-revamped/" class="more-link">Continue reading<span class="screen-reader-text"> "NTCore revamped"</span></a>]]></description>
										<content:encoded><![CDATA[<p>After over a decade, I finally took two afternoons to revamp this personal web-page and to merge the content of the old NTCore page with the content of its blog (rcecafe.net). All the URLs of the old web-page and blog have been preserved in the process.</p>
<p>The people who voted for this on Twitter are the guilty ones.</p>
<p>You know who you are.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/ntcore-revamped/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">418</post-id>	</item>
		<item>
		<title>Preparing a bugfix version of CFF Explorer</title>
		<link>https://ntcore.com/preparing-a-bugfix-version-of-cff-explorer/</link>
					<comments>https://ntcore.com/preparing-a-bugfix-version-of-cff-explorer/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Thu, 25 Oct 2012 08:32:44 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[CFF Explorer]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=250</guid>

					<description><![CDATA[It has been many years since the last update of what had started as a hobby side-project when I was 19. I&#8217;m sorry that I haven&#8217;t updated the CFF for such a long time, given that thousands of people use it every day. A few months ago I stopped working for Hex-Rays to fully dedicate &#8230; <a href="https://ntcore.com/preparing-a-bugfix-version-of-cff-explorer/" class="more-link">Continue reading<span class="screen-reader-text"> "Preparing a bugfix version of CFF Explorer"</span></a>]]></description>
										<content:encoded><![CDATA[<p>It has been many years since the last update of what had started as a hobby side-project when I was 19. I&#8217;m sorry that I haven&#8217;t updated the CFF for such a long time, given that thousands of people use it every day. A few months ago I stopped working for Hex-Rays to fully dedicate myself to my own company and thus I have decided that I have now the time and the energy (barely) to finally update the CFF.</p>
<p>Over the years I&#8217;ve received several bugfix requests, but couldn&#8217;t oblige because of the lack of time. If you&#8217;re interested that a particular fix goes into the upcoming release, please leave a comment under this blog post or drop me an email to <a href="mailto:ntcore@gmail.com">ntcore@gmail.com</a> (feel free to repeat the request, as it might have been lost during the years).</p>
<p>Please don&#8217;t include radical changes or improvements, we&#8217;ll leave that for later maybe. If your company needs professional PE inspection (not editing), I&#8217;d advice you to check out my current commercial product at <a href="http://cerbero.io/profiler/">cerbero.io/profiler</a>, which doesn&#8217;t cover &#8216;just&#8217; the Portable Executable format.</p>
<p><strong>UPDATE</strong>: Uploaded new version with the following improvements:</p>
<p>&#8211; Dropped Itanium version<br />
&#8211; Added ENCLog and ENCMap .NET tables<br />
&#8211; Modify resources of system files (MUI limitation)<br />
&#8211; Fixed resource loop bug<br />
&#8211; Fixed MDTables string overflow bug<br />
&#8211; Fixed command line scripting bug<br />
&#8211; Fixed &#8216;Select All&#8217; bug in hex editor<br />
&#8211; Fixed missing offset check in .NET tables<br />
&#8211; Fixed missing reloc size check<br />
&#8211; Fixed scripting handles bug<br />
&#8211; Use FTs when OFTs are invalid<br />
&#8211; Updated UPX</p>
<p>You can continue to leave comments or send me emails. As soon as there are enough new bug reports, I&#8217;ll upload a new version. In time, maybe, some small improvements could be included apart from bug fixes.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/preparing-a-bugfix-version-of-cff-explorer/feed/</wfw:commentRss>
			<slash:comments>37</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">250</post-id>	</item>
		<item>
		<title>A malware with my name</title>
		<link>https://ntcore.com/a-malware-with-my-name/</link>
					<comments>https://ntcore.com/a-malware-with-my-name/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Thu, 09 Sep 2010 10:43:01 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[malware]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=163</guid>

					<description><![CDATA[There&#8217;s a malware circulating that contains my name in its version information. I&#8217;m, of course, not the author (putting one&#8217;s own name in the version info would be brilliant). I&#8217;m clarifying, as three people already contacted me about it since yesterday. It was probably done on purpose and it&#8217;s not the result of a random &#8230; <a href="https://ntcore.com/a-malware-with-my-name/" class="more-link">Continue reading<span class="screen-reader-text"> "A malware with my name"</span></a>]]></description>
										<content:encoded><![CDATA[<p>There&#8217;s a malware circulating that contains my name in its version information. I&#8217;m, of course, <strong>not the author</strong> (putting one&#8217;s own name in the version info would be brilliant). I&#8217;m clarifying, as three people already contacted me about it since yesterday.</p>
<p>It was probably done on purpose and it&#8217;s not the result of a random generation of different version info, as I suspect. What the author/s of this malware ignore, is that they made me stumble on an additional technique against malware, that&#8217;ll probably damage their business and force them to work more.</p>
<p>Given my very limited amount of spare time, it&#8217;s too soon to discuss this.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/a-malware-with-my-name/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">163</post-id>	</item>
		<item>
		<title>PDF Insider Demo</title>
		<link>https://ntcore.com/pdf-insider-demo/</link>
					<comments>https://ntcore.com/pdf-insider-demo/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Tue, 25 May 2010 00:58:16 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Reversing]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[PDF Insider]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=142</guid>

					<description><![CDATA[A small, on the fly video presentation of my new utility. The emphasis of this application stands on parsing correctly the PDF format, if it can&#8217;t because the PDF is malformed (very common among malicious PDFs), then it provides the tools to read the objects nonetheless. I tested it on many PDF (also malicious ones) &#8230; <a href="https://ntcore.com/pdf-insider-demo/" class="more-link">Continue reading<span class="screen-reader-text"> "PDF Insider Demo"</span></a>]]></description>
										<content:encoded><![CDATA[<p>A small, on the fly video presentation of my new utility.</p>
<p><center><br />
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/JkAo5N-nNu4&#038;hl=it_IT&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param></object><br />
</center></p>
<p>The emphasis of this application stands on parsing correctly the PDF format, if it can&#8217;t because the PDF is malformed (very common among malicious PDFs), then it provides the tools to read the objects nonetheless. I tested it on many PDF (also malicious ones) and it handles all of them very well.</p>
<p>As I have written this application in five days, there are still some small features I&#8217;d like to add, but most of the code is already there. I started the development of it quite some time ago on a weekend while I was sick at home and have found only now the time to finish it.</p>
<p>I have no plans about how and when to release it yet, but some friends of mine will start using it in real world scenarios.</p>
<p>P.S. Thanks to Alessandro Gario for the throughout testing.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/pdf-insider-demo/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">142</post-id>	</item>
		<item>
		<title>Filter Monitor 1.0.1</title>
		<link>https://ntcore.com/filter-monitor-1-0-1/</link>
					<comments>https://ntcore.com/filter-monitor-1-0-1/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Sat, 17 Oct 2009 14:44:16 +0000</pubDate>
				<category><![CDATA[Internals]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Reversing]]></category>
		<category><![CDATA[Filter Monitor]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=116</guid>

					<description><![CDATA[This week, after months of development of bigger projects, I found some time to windbg &#8220;ntoskrnl.exe&#8221; and write a utility. It is called Filter Monitor and shows some key filters installed by kernel mode components. &#8220;As you probably all know the Service Descriptor Table has been a playground on x86 for all sorts of things: &#8230; <a href="https://ntcore.com/filter-monitor-1-0-1/" class="more-link">Continue reading<span class="screen-reader-text"> "Filter Monitor 1.0.1"</span></a>]]></description>
										<content:encoded><![CDATA[<p>This week, after months of development of bigger projects, I found some time to windbg &#8220;ntoskrnl.exe&#8221; and write a utility. It is called <a href="http://ntcore.com/filtermon.php">Filter Monitor</a> and shows some key filters installed by kernel mode components. </p>
<p><center><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/5iIeISGoHxM&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param></object></center></p>
<p><em>&#8220;As you probably all know the Service Descriptor Table has been a playground on x86 for all sorts of things: rootkits, anti-viruses, system monitors etc. On x64 modifying the Service Descriptor Table is no longer possible, at least not without subverting the Patch Guard technology.</p>
<p>Thus, programs have now to rely on the filtering/notification technologies provided by Microsoft. And that&#8217;s why I wrote this little utility which monitors some key filters.</p>
<p>Since I haven&#8217;t signed the driver of my utility, you have to press F8 at boot time and then select the &#8220;Disable Driver Signature Enforcement&#8221; option. If you have a multiple boot screen like myself, then you can take your time. Otherwise you have to press F8 frenetically to not miss right moment.</p>
<p>A disclaimer: the boot process can be a bit annoying, but the utility should be used on virtualized systems anyway, as I haven&#8217;t fully tested it yet. I doubt that it will crash your system, I guess the worst scenario is that it won&#8217;t list some filters. It should work on any Windows system starting from Vista RTM and I have provided an x86 version and an x64 version. But the truth is that I have tested only the x64 version on Windows 7 RTM. Last but not least, I can&#8217;t guarantee that this utility will work on future versions of Windows, it relies heavily on system internals.</p>
<p>Now, let&#8217;s run it. The supported filters/notifications at the time are these: Registry, Create Process, Create Thread and Load Image. &#8220;Registry&#8221; stands for CmRegisterCallback filters. &#8220;Create Process&#8221; for PsSetCreateProcessNotifyRoutine callbacks. &#8220;Create Thread&#8221; for PsSetCreateThreadNotifyRoutine callbacks. And &#8220;Load Image&#8221; for PsSetLoadImageNotifyRoutine callbacks.</p>
<p>The &#8220;Additional Info&#8221; in the list view provides internal information like the address of the callback function.</p>
<p>There are some default filters registered by system components, but, as you can notice, there are also Kaspersky components. That&#8217;s because some filters (like the registry filter) are not used by system components and I needed a tool which would make use of these filters for my little demonstration.</p>
<p>The version of Kaspersky I have installed is the latest one available on the internet which is: 9.0.0.463.</p>
<p>I created for this demonstration a little executable called &#8220;k-test&#8221; (what you see on the desktop are three copies of the same executable) which copies itself in a directory called &#8220;borda&#8221; in the &#8220;Roaming&#8221; directory of the operating system. It then creates a value in the Run key of the registry to execute itself at each start-up. Finally, it launches itself from the &#8220;Roaming&#8221; directory and ends. </p>
<p>This is a typical malware behavior. Beware that the signature of the application itself is not contained in the databases of Kaspersky as I have written it on the fly, but it detects the suspicious behavior, stops execution and deletes the file. And it does this every time I launch the test application. </p>
<p>Now let&#8217;s get to the part where I show an additional functionality of the Filter Monitor which is the ability to remove registered filters and see what happens if I remove the filters installed by klif.sys, which is the &#8220;Kaspersky Lab Interceptor and Filter&#8221; driver. As the name suggests, this driver intercepts and filters: it installs all four of typologies of filters listed by the Filter Monitor. On x86 instead of calling CmRegisterCallback it additionally hooks about 60 functions of the Service Descriptor Table (which is a lot), but that&#8217;s no longer possible on x64.</p>
<p>So, let&#8217;s remove the filters and re-launch k-test. It works now.</p>
<p>Final disclaimer: It is not my intent to comment on security features of anti-viruses, I just wanted to present my new tool and show its functionalities. I was already familiar with the internals of Kaspersky before writing this utility.</p>
<p>I hope you enjoyed the presentation.&#8221;</em></p>
<p>P.S. A huge thanks goes to Alessandro Gario for providing me with all the different versions of ntoskrnl.exe.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/filter-monitor-1-0-1/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">116</post-id>	</item>
		<item>
		<title>Native Blocks Pre-Alpha</title>
		<link>https://ntcore.com/native-blocks-pre-alpha/</link>
					<comments>https://ntcore.com/native-blocks-pre-alpha/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Tue, 30 Jun 2009 22:45:48 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Reversing]]></category>
		<category><![CDATA[Deobfuscation]]></category>
		<category><![CDATA[Native Blocks]]></category>
		<category><![CDATA[Obfuscation]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=96</guid>

					<description><![CDATA[Here&#8217;s a presentation of my new tool. I called it Native Blocks. It&#8217;s a re-assembler basically. Since a written presentation would take me too much time I prepared a video presentation. Again, this is a pre-alpha. This tool will soon support other technologies such as java, actionscript and maybe even x86. Right now it only &#8230; <a href="https://ntcore.com/native-blocks-pre-alpha/" class="more-link">Continue reading<span class="screen-reader-text"> "Native Blocks Pre-Alpha"</span></a>]]></description>
										<content:encoded><![CDATA[<p>Here&#8217;s a presentation of my new tool. I called it Native Blocks. It&#8217;s a re-assembler basically. Since a written presentation would take me too much time I prepared a video presentation.</p>
<p><center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/pDlwStN3KZY&#038;hl=it&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param></object></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ene6hvE5qVQ&#038;hl=it&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param></object></center></p>
<p>Again, this is a pre-alpha. This tool will soon support other technologies such as java, actionscript and maybe even x86. Right now it only supports .NET (and even .NET support will be hugely improved, like for instance supporting the direct modification of assemblies without having to use Rebel.NET).</p>
<p>The development of this tool depends mainly on the interest of people.</p>
<p>As I can be considered a student from now on, I would like to earn some extra money by writing tools such as this one. I have still my job as consultant, but it&#8217;s a very limited partime, because I just became a student.</p>
<p>This tool is in my opinion pretty good, it is not only good for deobfuscation purposes but also patching and assembling on the fly.</p>
<p>If this tool can be sold, then the support of technologies will depend on requests. I think I&#8217;ll add Java immediately and after that maybe x86/x64. Again it depends.</p>
<p>Suggestions and comments are welcome. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/native-blocks-pre-alpha/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">96</post-id>	</item>
		<item>
		<title>.NET MetaData Tables Reports</title>
		<link>https://ntcore.com/net-metadata-tables-reports/</link>
					<comments>https://ntcore.com/net-metadata-tables-reports/#respond</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Fri, 29 May 2009 23:54:38 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[CFF Explorer]]></category>
		<category><![CDATA[MetaData]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=89</guid>

					<description><![CDATA[I updated the scripting language of the old CFF Explorer which now provides a function to automatically create reports of .NET metadata tables. The function is called LogPrintStruct and is to be used along with the logging functions the scripting provides. Here&#8217;s a small script you can find in the &#8220;Scripts&#8221; directory of the CFF &#8230; <a href="https://ntcore.com/net-metadata-tables-reports/" class="more-link">Continue reading<span class="screen-reader-text"> ".NET MetaData Tables Reports"</span></a>]]></description>
										<content:encoded><![CDATA[<p>I updated the scripting language of the old CFF Explorer which now provides a function to automatically create reports of .NET metadata tables. The function is called LogPrintStruct and is to be used along with the logging functions the scripting provides. Here&#8217;s a small script you can find in the &#8220;Scripts&#8221; directory of the CFF Explorer which creates a report of all .NET tables contained in an assembly:</p>
<p>[cc lang=&#8221;lua&#8221;]&#8211; this script generates a report of a PE&#8217;s .NET metadata tables.</p>
<p>filename = GetOpenFile(&#8220;Open&#8230;&#8221;,  &#8220;All\n*.*\nexe\n*.exe\ndll\n*.dll\n&#8221;)</p>
<p>if filename == null then<br />
	return<br />
end</p>
<p>hPE = OpenFile(filename)</p>
<p>if hPE == null then<br />
	return<br />
end</p>
<p>if GetOffset(hPE, PE_DotNETDirectory) == null then<br />
	MsgBox(&#8220;The current is not a valid .NET assembly.&#8221;, &#8220;Error&#8221;, MB_ICONEXCLAMATION)<br />
end</p>
<p>repname = GetSaveFile(&#8220;Save Report As..&#8221;,  &#8220;Text File\n*.txt\n&#8221;)</p>
<p>if repname == null then<br />
	return<br />
end</p>
<p>hReport = CreateLog(repname)</p>
<p>if hReport == null then<br />
	return<br />
end</p>
<p>fieldsToLog = {<br />
	PE_MetaDataTable_Module,<br />
	PE_MetaDataTable_TypeRef,<br />
	PE_MetaDataTable_TypeDef,<br />
	PE_MetaDataTable_Field,<br />
	PE_MetaDataTable_Method,<br />
	PE_MetaDataTable_Param,<br />
	PE_MetaDataTable_InterfaceImpl,<br />
	PE_MetaDataTable_MemberRef,<br />
	PE_MetaDataTable_Constant,<br />
	PE_MetaDataTable_CustomAttribute,<br />
	PE_MetaDataTable_FieldMarshal,<br />
	PE_MetaDataTable_DeclSecurity,<br />
	PE_MetaDataTable_ClassLayout,<br />
	PE_MetaDataTable_FieldLayout,<br />
	PE_MetaDataTable_StandAloneSig,<br />
	PE_MetaDataTable_EventMap,<br />
	PE_MetaDataTable_Event,<br />
	PE_MetaDataTable_PropertyMap,<br />
	PE_MetaDataTable_Property,<br />
	PE_MetaDataTable_MethodSemantics,<br />
	PE_MetaDataTable_MethodImpl,<br />
	PE_MetaDataTable_ModuleRef,<br />
	PE_MetaDataTable_TypeSpec,<br />
	PE_MetaDataTable_ImplMap,<br />
	PE_MetaDataTable_FieldRVA,<br />
	PE_MetaDataTable_Assembly,<br />
	PE_MetaDataTable_AssemblyProcessor,<br />
	PE_MetaDataTable_AssemblyOS,<br />
	PE_MetaDataTable_AssemblyRef,<br />
	PE_MetaDataTable_AssemblyRefProcessor,<br />
	PE_MetaDataTable_AssemblyRefOS,<br />
	PE_MetaDataTable_File,<br />
	PE_MetaDataTable_ExportedType,<br />
	PE_MetaDataTable_ManifestResource,<br />
	PE_MetaDataTable_NestedClass,<br />
	PE_MetaDataTable_GenericParam,<br />
	PE_MetaDataTable_MethodSpec,<br />
	PE_MetaDataTable_GenericParamConstraint<br />
	}</p>
<p>fieldNames = {<br />
	&#8220;Module&#8221;,<br />
	&#8220;TypeRef&#8221;,<br />
	&#8220;TypeDef&#8221;,<br />
	&#8220;Field&#8221;,<br />
	&#8220;Method&#8221;,<br />
	&#8220;Param&#8221;,<br />
	&#8220;InterfaceImpl&#8221;,<br />
	&#8220;MemberRef&#8221;,<br />
	&#8220;Constant&#8221;,<br />
	&#8220;CustomAttribute&#8221;,<br />
	&#8220;FieldMarshal&#8221;,<br />
	&#8220;DeclSecurity&#8221;,<br />
	&#8220;ClassLayout&#8221;,<br />
	&#8220;FieldLayout&#8221;,<br />
	&#8220;StandAloneSig&#8221;,<br />
	&#8220;EventMap&#8221;,<br />
	&#8220;Event&#8221;,<br />
	&#8220;PropertyMap&#8221;,<br />
	&#8220;Property&#8221;,<br />
	&#8220;MethodSemantics&#8221;,<br />
	&#8220;MethodImpl&#8221;,<br />
	&#8220;ModuleRef&#8221;,<br />
	&#8220;TypeSpec&#8221;,<br />
	&#8220;ImplMap&#8221;,<br />
	&#8220;FieldRVA&#8221;,<br />
	&#8220;Assembly&#8221;,<br />
	&#8220;AssemblyProcessor&#8221;,<br />
	&#8220;AssemblyOS&#8221;,<br />
	&#8220;AssemblyRef&#8221;,<br />
	&#8220;AssemblyRefProcessor&#8221;,<br />
	&#8220;AssemblyRefOS&#8221;,<br />
	&#8220;File&#8221;,<br />
	&#8220;ExportedType&#8221;,<br />
	&#8220;ManifestResource&#8221;,<br />
	&#8220;NestedClass&#8221;,<br />
	&#8220;GenericParam&#8221;,<br />
	&#8220;MethodSpec&#8221;,<br />
	&#8220;GenericParamConstraint&#8221;<br />
	}</p>
<p>LogPrint(hReport, &#8220;.NET metadata tables report for \&#8221;&#8221; .. filename .. &#8220;\&#8221;\n\n&#8221;)<br />
loggedTables = 0<br />
for i = 0, #fieldsToLog &#8211; 1 do<br />
	if GetOffset(hPE, fieldsToLog[i]) != null then<br />
		if loggedTables > 0 then<br />
			LogPrint(hReport, &#8220;\n\n\n&#8221;)<br />
		end<br />
		LogPrint(hReport, fieldNames[i] .. &#8221; Table\n&#8221;)<br />
		LogPrint(hReport, &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\n\n&#8221;)<br />
		LogPrintStruct(hPE, hReport, fieldsToLog[i])<br />
		loggedTables = loggedTables + 1<br />
	end<br />
end</p>
<p>&#8212; Open the report?</p>
<p>CloseLog(hReport)</p>
<p>nRet = MsgBox(&#8220;Open report file?&#8221;, &#8220;.NET Tables Report&#8221;, MB_ICONQUESTION | MB_YESNO)</p>
<p>if nRet == IDYES then<br />
	ExecuteAppAndWait(@&#8221;C:\Windows\System32\notepad.exe&#8221;, GetShortPathName(repname))<br />
end[/cc]</p>
<p>A generated report file looks like this:</p>
<p>[cc lang=&#8221;asm&#8221;].NET metadata tables report for &#8220;K:\Explorer Suite\Setup\Signature Explorer.exe&#8221;</p>
<p>Module Table<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>1.<br />
Generation: 0<br />
Name: 1 (Signature Explorer.exe)<br />
Mvid: 1<br />
EncId: 0<br />
EncBaseId: 0</p>
<p>TypeRef Table<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>1.<br />
ResolutionScope: 6<br />
Name: 18 (Control)<br />
Namespace: 20 (System.Windows.Forms)</p>
<p>2.<br />
ResolutionScope: A<br />
Name: 35 (Enum)<br />
Namespace: 3A (System)</p>
<p>3.<br />
ResolutionScope: 6<br />
Name: 41 (Button)<br />
Namespace: 20 (System.Windows.Forms)</p>
<p>4.<br />
ResolutionScope: 6<br />
Name: 48 (Form)<br />
Namespace: 20 (System.Windows.Forms)</p>
<p>5.<br />
ResolutionScope: A<br />
Name: 4D (Object)<br />
Namespace: 3A (System)</p>
<p>6.<br />
ResolutionScope: A<br />
Name: 54 (ValueType)<br />
Namespace: 3A (System)</p>
<p>etc.[/cc]</p>
<p>I included this new feature because many developers asked me to. Reading the generated report files is much easier than manually reading the raw .NET format. The current scripting system won&#8217;t be implemented in the newer CFF Explorer, I only inserted this new feature because it will take me much more time to release the newer CFF Explorer. </p>
<p>Thanks to CodeRipper for signalling a corrupted .NET assembly which caused the CFF Explorer to crash when opening it. I improved the integrity checks.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/net-metadata-tables-reports/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">89</post-id>	</item>
		<item>
		<title>Kernel: 3rd edition</title>
		<link>https://ntcore.com/kernel-3rd-edition/</link>
					<comments>https://ntcore.com/kernel-3rd-edition/#comments</comments>
		
		<dc:creator><![CDATA[Erik Pistelli]]></dc:creator>
		<pubDate>Thu, 02 Apr 2009 13:23:28 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[CFF Explorer]]></category>
		<guid isPermaLink="false">http://rcecafe.net/?p=80</guid>

					<description><![CDATA[I don&#8217;t want to show too much, this is just a small preview. Yes, it&#8217;s running on Ubuntu and it runs on OSX just as well. I don&#8217;t know if I&#8217;m going to ship a Linux and an OSX version apart from the Windows one, maybe not immediately. It also depends on the number of &#8230; <a href="https://ntcore.com/kernel-3rd-edition/" class="more-link">Continue reading<span class="screen-reader-text"> "Kernel: 3rd edition"</span></a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="/wp-content/uploads/legacy/ucff_pre_alpha.jpg" alt="" /></p>
<p>I don&#8217;t want to show too much, this is just a small preview. Yes, it&#8217;s running on Ubuntu and it runs on OSX just as well.<br />
I don&#8217;t know if I&#8217;m going to ship a Linux and an OSX version apart from the Windows one, maybe not immediately. It also depends on the number of requests for it.</p>
<p>Some insights into the new kernel:</p>
<p>&#8211; The kernel is now stream based, this means it can read files, memory, disks etc.<br />
&#8211; Complete multithread support.<br />
&#8211; A CFFStream can be shared among CFFObjects even if they&#8217;re owned by a different thread.<br />
&#8211; The same CFFObject can be shared among threads.<br />
&#8211; Complete endianess support: every file format has a default endianess but can be loaded with a different one. For instance: it is possible to load a PE file with all fields in big endian.<br />
&#8211; Support for all most common string encodings.<br />
&#8211; Support for integer types of infinite size.<br />
&#8211; Support for multiple file formats.<br />
&#8211; Easily exposable to scripting languages.</p>
<p>There is more and an impressive amount of work has still to be done, although the kernel is about to be finished. I won&#8217;t tell all the new features of the GUI, because it&#8217;s way too soon.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ntcore.com/kernel-3rd-edition/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">80</post-id>	</item>
	</channel>
</rss>
