<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.newlc.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>NewLC - Explore and Hack the Server Heap in Symbian - Comments</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian</link>
 <description>Comments for &quot;Explore and Hack the Server Heap in Symbian&quot;</description>
 <language>en</language>
<item>
 <title>No privilege escalation</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2866</link>
 <description>&lt;p&gt;Of course, plugins are DLL:s, and as such have to have at least the same capabilities as the app that uses them, so no privilege escalation.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://ptrmobile.blogspot.com/&quot;&gt;http://ptrmobile.blogspot.com/&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 03 May 2007 20:44:33 +0200</pubDate>
 <dc:creator>puterman</dc:creator>
 <guid isPermaLink="false">comment 2866 at http://www.newlc.com</guid>
</item>
<item>
 <title>Hacking</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2865</link>
 <description>&lt;p&gt;The word &quot;hacking&quot; seems to have very negative connotations to lots of people.  It can be used for different things, eg. to get the system to do stuff that it wasn&#039;t supposed to do.  Using undocumented/unsupported features might be poor development practice, but it really depends on what you&#039;re doing and what the user base wants.&lt;/p&gt;

&lt;p&gt;Whether techniques that can be used for creating malware should be published is an interesting topic, which has been discussed to an absurt extent among security people during the last couple of decades.  If you believe that you&#039;ve found an exploitable security hole, I believe it&#039;s a good idea to inform the vendor before going public, but I do believe in publishing the information.  I don&#039;t believe it&#039;s a good idea to put the lid on everything that might be used for malevolent purposes, because most system level knowledge lives in a grey zone.&lt;/p&gt;

&lt;p&gt;/puterman&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://ptrmobile.blogspot.com/&quot;&gt;http://ptrmobile.blogspot.com/&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 03 May 2007 15:05:26 +0200</pubDate>
 <dc:creator>puterman</dc:creator>
 <guid isPermaLink="false">comment 2865 at http://www.newlc.com</guid>
</item>
<item>
 <title>Hacking</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2864</link>
 <description>&lt;p&gt;That&#039;s right! That&#039;s what I concluded, too: it&#039;s for &lt;span style=&quot;font-weight:bold&quot;&gt;&lt;span style=&quot;font-style:italic&quot;&gt;hacking&lt;/span&gt;&lt;/span&gt;! May I dare to ask: is it the right forum to discuss about hacking? Although personally I&#039;m also interested in the technical challenges of making use of a component&#039;s unpublished services, internal data structures, etc., BUT:&lt;br /&gt;
- I will never make use of it, just keep it in mind as examples, patterns to be avoided in my programs ==&gt; i.e. learn from bad examples,&lt;br /&gt;
- I will never publish it to others so that everybody can exploit it.&lt;/p&gt;

&lt;p&gt;Tote&lt;br /&gt;
---&lt;br /&gt;
GÃ¡bor TÃ¶rÃ¶k&lt;br /&gt;
Software architect, Agil Eight&lt;br /&gt;
&lt;a href=&quot;http://www.agileight.com&quot;&gt;http://www.agileight.com&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 03 May 2007 12:03:59 +0200</pubDate>
 <dc:creator>tote</dc:creator>
 <guid isPermaLink="false">comment 2864 at http://www.newlc.com</guid>
</item>
<item>
 <title>Conclusion!</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2863</link>
 <description>&lt;p&gt;Hacking can be done for different reasons, the most common one being curiosity, I believe.  In this particular case, the point of accessing the heap is that you can change the behaviour of the hacked program, as you have both read and write access to the heap.  As for loading plugins, I don&#039;t remember the details of how capabilities and plugins interact, but I&#039;d guess you could use it for privilege escalation, ie. use API:s that requires capabilities that you don&#039;t have, but that the server has (only applicable to SymbianOS &gt;=9, of course).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://ptrmobile.blogspot.com/&quot;&gt;http://ptrmobile.blogspot.com/&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 03 May 2007 11:20:44 +0200</pubDate>
 <dc:creator>puterman</dc:creator>
 <guid isPermaLink="false">comment 2863 at http://www.newlc.com</guid>
</item>
<item>
 <title>Conclusion?</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2855</link>
 <description>&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;I AM looking at Symbian OS v9 SDK, indeed. THeapWalk class is not available at all. I don&#039;t dare to ask where did you get the source of THeapWalk class from. :-|&lt;/p&gt;

&lt;p&gt;However, the main question still remains: why is it worth for anyone to hack the host process&#039; heap?&lt;/p&gt;

&lt;p&gt;Tote&lt;/p&gt;

&lt;p&gt;GÃ¡bor TÃ¶rÃ¶k&lt;br /&gt;
Software architect, Agil Eight&lt;br /&gt;
&lt;a href=&quot;http://www.agileight.com&quot;&gt;http://www.agileight.com&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 27 Apr 2007 16:06:19 +0200</pubDate>
 <dc:creator>tote</dc:creator>
 <guid isPermaLink="false">comment 2855 at http://www.newlc.com</guid>
</item>
<item>
 <title>A simulation of THeapWalk for Symbian 9</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2854</link>
 <description>&lt;p&gt;Hi, Tote&lt;/p&gt;

&lt;p&gt;Maybe you are looking into the SDK of Symbian 9. THeapWalk is a public API in pre-Symbian 9 SDKs. And even though this API is stripped away since version 9, you can still get a simulation of THeapWalk from my blog: (As I mentioned in the footer of the tutorial)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.oasisfeng.com/2007/02/23/theapwalk-for-symbian9/&quot;&gt;http://blog.oasisfeng.com/2007/02/23/theapwalk-for-symbian9/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(This blog post is written in Chinese, however the code snippet is still English. &lt;img src=&quot;/sites/all/modules/smileys/packs/example/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I think the potential malware plug-in is not just a problem of Symbian, it also exists in most common OSes including Linux and Windows. So that&#039;ll be necessary if you want to build up a secure plug-in interface.&lt;/p&gt;</description>
 <pubDate>Fri, 27 Apr 2007 14:46:45 +0200</pubDate>
 <dc:creator>oasisfeng</dc:creator>
 <guid isPermaLink="false">comment 2854 at http://www.newlc.com</guid>
</item>
<item>
 <title>Still not convinced</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2853</link>
 <description>&lt;p&gt;Hi again,&lt;/p&gt;

&lt;p&gt;Although I had concerns if your solution really worked, I now accept that it does. Why not?&lt;/p&gt;

&lt;p&gt;However, my main concern was more general than solely limited to Font &amp; Bitmap server&#039;s plug-in API (since the title of your article is more general than that). First off, I still can&#039;t see how anyone can implement their own solution when THeapWalk class is not available in the public SDK. For example, how could &lt;span style=&quot;font-weight:bold&quot;&gt;you&lt;/span&gt; do it?&lt;/p&gt;

&lt;p&gt;Then based on what you wrote each developer of such a program that exposes public plug-in API should consider that the client of their API is a potential malware wanting to hack the main process&#039; heap. And for that reason, they &lt;span style=&quot;font-weight:bold&quot;&gt;must&lt;/span&gt; apply strict policy on how those plug-ins can attach to the process. For example, by requiring that plug-ins hold ProtServ capability - or even more.&lt;/p&gt;

&lt;p&gt;Tote&lt;br /&gt;
----&lt;br /&gt;
GÃ¡bor TÃ¶rÃ¶k&lt;br /&gt;
Software architect, Agil Eight&lt;br /&gt;
&lt;a href=&quot;http://www.agileight.com&quot;&gt;http://www.agileight.com&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 27 Apr 2007 14:33:35 +0200</pubDate>
 <dc:creator>tote</dc:creator>
 <guid isPermaLink="false">comment 2853 at http://www.newlc.com</guid>
</item>
<item>
 <title>Approved solution</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2852</link>
 <description>&lt;p&gt;Hi, Tote&lt;/p&gt;

&lt;p&gt;This is an approved solution, and I&#039;ve been using it in my freeware project &quot;FontRouter&quot; for quite a long time. It&#039;s available even in Symbian 9 which is considered to be the most secure Symbian OS ever.&lt;/p&gt;

&lt;p&gt;Surely all server side ECOM plug-in in Symbian 9 need the &quot;PROTSERV&quot; capability, but this capability does no classification on access level to the server resources. As we all know, the common heap is open to all the threads within a process, so there&#039;s no more control that could be applied to a plug-in other than &quot;PROTSERV&quot; as a whole. Of course, &quot;PROTSERV&quot; capability is one of the must-sign capabilities, so official signing process is needed if you want to publish a server-side plug-in.&lt;/p&gt;

&lt;p&gt;About your final question, I&#039;m sure my freeware project &quot;FontRouter&quot; is a good example. It handles all the system font request, and forward it to more than one pre-defined fonts for different charsets, as you configurated. It&#039;s a perfect solution for reading an information mixed up with more than one languages on Symbian. (:&lt;/p&gt;

&lt;p&gt;FontRouter is only available to Chinese users at present, and I&#039;m now working on expanding it to an international version. I&#039;m sure you can meet it soon.&lt;/p&gt;</description>
 <pubDate>Fri, 27 Apr 2007 14:17:56 +0200</pubDate>
 <dc:creator>oasisfeng</dc:creator>
 <guid isPermaLink="false">comment 2852 at http://www.newlc.com</guid>
</item>
<item>
 <title>Does it really work?</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2851</link>
 <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;First, I wonder how this solution work when most developers have no access to THeapWalk class.&lt;/p&gt;

&lt;p&gt;Second, if I were the designer of a program offering a plug-in API (i.e. one that accepts plug-ins), I would make it so that some (not necessarily strong) capabilities would be required for plug-ins in order for them to attach to my process. Any capabilities would do, but of course, the more sensitive the data they can access the stronger capabilities would be required. And the stronger capability is required the more likely that your program will have to be officially undergo some testing. And even if your plug-in undergoes testing and does damage later on, you&#039;re still accountable. Of course, I&#039;m not sure (as I can&#039;t be) if Font &amp; Bitmap server has been designed this way, but I would be surprised if not.&lt;/p&gt;

&lt;p&gt;So finally my question is if it&#039;s worth analyzing a process&#039; heap? What can you do once you have the information you were looking for?&lt;/p&gt;

&lt;p&gt;Tote&lt;br /&gt;
---&lt;br /&gt;
GÃ¡bor TÃ¶rÃ¶k&lt;br /&gt;
Software architect, Agil Eight&lt;br /&gt;
&lt;a href=&quot;http://www.agileight.com&quot;&gt;http://www.agileight.com&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 27 Apr 2007 12:10:33 +0200</pubDate>
 <dc:creator>tote</dc:creator>
 <guid isPermaLink="false">comment 2851 at http://www.newlc.com</guid>
</item>
<item>
 <title>Attachment</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian#comment-2847</link>
 <description>&lt;p&gt;Sorry, attachment link is missing:&lt;br /&gt;
&lt;a href=&quot;http://www.newlc.com/files/HeapSearch.txt&quot; class=&quot;bb-url&quot;&gt;http://www.newlc.com/files/HeapSearch.txt&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 27 Apr 2007 05:33:57 +0200</pubDate>
 <dc:creator>oasisfeng</dc:creator>
 <guid isPermaLink="false">comment 2847 at http://www.newlc.com</guid>
</item>
<item>
 <title>Explore and Hack the Server Heap in Symbian</title>
 <link>http://www.newlc.com/explore-and-hack-server-heap-symbian</link>
 <description>&lt;p&gt;One of the most important design in Symbian is the well-known server/client framework. As the server and client are in different process spaces, hacking the server is generally difficult to achieve by means of normal application. This tutorial reveals a new way to hack the server heap and make a patch as you want.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.newlc.com/explore-and-hack-server-heap-symbian&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.newlc.com/explore-and-hack-server-heap-symbian#comments</comments>
 <category domain="http://www.newlc.com/taxonomy/term/20">Security</category>
 <category domain="http://www.newlc.com/taxonomy/term/41">Symbian OS</category>
 <category domain="http://www.newlc.com/taxonomy/term/172">ECOM</category>
 <category domain="http://www.newlc.com/taxonomy/term/170">Heap</category>
 <pubDate>Thu, 26 Apr 2007 19:00:47 +0200</pubDate>
 <dc:creator>oasisfeng</dc:creator>
 <guid isPermaLink="false">1081 at http://www.newlc.com</guid>
</item>
</channel>
</rss>
