<?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-6791176850223279405</id><updated>2012-02-03T14:41:50.998-08:00</updated><category term='dumper'/><category term='tasks viewer'/><category term='python'/><title type='text'>PyPEELF - Cross-Platform Binary Editor</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pypeelf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pypeelf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>rage</name><uri>http://www.blogger.com/profile/15846031390945893505</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>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6791176850223279405.post-4911758975730605560</id><published>2009-11-25T18:49:00.000-08:00</published><updated>2009-11-25T18:55:35.199-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dumper'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks viewer'/><title type='text'>A dumper for PyPEELF</title><content type='html'>As +NCR has already mentioned, I am working on the PyPEELF Tasks viewer, and one feature we wanted to integrate there was a (first simple) dumper. Let me tell you some of the issues I faced during the experiment.&lt;br /&gt;&lt;br /&gt;I am relatively new to reverse engineering topics and then, before getting hands dirty, I had been reading a little more on PE format and how executables are load into memory (I really recommend &lt;a href="http://win32assembly.online.fr/tutorials.html"&gt;Iczelion's Tutorials&lt;/a&gt;). We should notice, for example, that a process mapped on memory has a different section alignment respect to the original one in the file, and that is also why virtual vs. raw section offsets and sizes differ.&lt;br /&gt;&lt;br /&gt;Consequently, if we manage to get the base address in memory where process was loaded and its image size, we can &lt;a href="http://msdn.microsoft.com/en-us/library/ms680553%28VS.85%29.aspx"&gt;read the process memory&lt;/a&gt; and write it to a file. However it would not be enough to get a functional executable, since we have seen that the mapping of the process in memory could be different from the raw data in the file (i.e. the file alignments and the fields that describe the raw sections will not be correct for the saved file). Then, we should fix those PE headers to match the alignments and sections information as dumped from memory.&lt;br /&gt;&lt;br /&gt;How is it implemented? Well, most of the development around running processes is based on the capabilities of &lt;a href="http://sourceforge.net/apps/trac/winappdbg/"&gt;winappdbg&lt;/a&gt;, that provides us a way to get the needed process information and access to Windows API. On the other hand, to update and fix the PE headers and finally write the dump to a file, we use the &lt;a href="http://code.google.com/p/pefile/"&gt;pefile&lt;/a&gt; module.&lt;br /&gt;&lt;br /&gt;And that is it, this was a shortened and simplified story of how PyPEELF got its process dumper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6791176850223279405-4911758975730605560?l=pypeelf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pypeelf.blogspot.com/feeds/4911758975730605560/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://pypeelf.blogspot.com/2009/11/dumper-for-pypeelf.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/4911758975730605560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/4911758975730605560'/><link rel='alternate' type='text/html' href='http://pypeelf.blogspot.com/2009/11/dumper-for-pypeelf.html' title='A dumper for PyPEELF'/><author><name>C@rPeDiEm!</name><uri>http://www.blogger.com/profile/18136630755346089538</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-6791176850223279405.post-5531641056645068870</id><published>2009-09-19T16:17:00.000-07:00</published><updated>2009-09-19T16:20:10.325-07:00</updated><title type='text'>Adding tools...</title><content type='html'>Hi!,&lt;br /&gt;&lt;br /&gt;This is a small post to let you know about a small tool that this afternoon was added to the PyPEELF, is a FLC (File Location Calculator), nothing special but useful some times.&lt;br /&gt;&lt;br /&gt;You can see the current version of the code &lt;a href="http://pypeelf.svn.sourceforge.net/viewvc/pypeelf/trunk/flc.py?view=markup&amp;amp;pathrev=215"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have any suggestion, please let us now!.&lt;br /&gt;&lt;br /&gt;See you soon!.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6791176850223279405-5531641056645068870?l=pypeelf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pypeelf.blogspot.com/feeds/5531641056645068870/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://pypeelf.blogspot.com/2009/09/adding-tools.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/5531641056645068870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/5531641056645068870'/><link rel='alternate' type='text/html' href='http://pypeelf.blogspot.com/2009/09/adding-tools.html' title='Adding tools...'/><author><name>+NCR/CRC! [ReVeRsEr]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_m_-FqUjXWIs/ShDR0-qkYGI/AAAAAAAAAB4/sCFJinoQoBA/S220/zcG5AtE4nyXPvK6lIIzzI6RcKLpNArbj9pFr5p4riAaB1etz6W8DigTgZzC4mRaC.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6791176850223279405.post-5087749233072632073</id><published>2009-09-14T22:25:00.000-07:00</published><updated>2009-09-14T22:35:14.902-07:00</updated><title type='text'>Arrancamos de nuevo...</title><content type='html'>Bueno!, luego de un tiempo de no dedicarle ni un segundo al proyecto, estamos de vuelta.&lt;br /&gt;&lt;br /&gt;En mi caso, estoy armando lo que sera el parser para .NET, estudiando el formato y corrijiendo un par de bugs en algunas otras partes del programa.&lt;br /&gt;&lt;br /&gt;Matias por su parte esta dedicando tiempo al Task Viewer, fixeando bugs y ademas dandome una mano a mi con cosas de la GUI, python, etc.&lt;br /&gt;&lt;br /&gt;Gunther esta escribiendo la doc y diseñando el arte del proyecto y Mauro esta haciendonos un poco de QA!.&lt;br /&gt;&lt;br /&gt;Para los que quieran mirar un poco en que estamos trabajado pueden browsear &lt;a href="https://sourceforge.net/apps/trac/pypeelf/report/1"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A partir del proximo post, comenzaremos a postear en ingles puesto que queremos llegar a la mayor cantidad de personas y pensamos que ademas de la gente de habla inglesa, habra mucha gente de hablar hispana que estara interesada!.&lt;br /&gt;&lt;br /&gt;Hasta pronto!.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6791176850223279405-5087749233072632073?l=pypeelf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pypeelf.blogspot.com/feeds/5087749233072632073/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://pypeelf.blogspot.com/2009/09/arrancamos-de-nuevo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/5087749233072632073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/5087749233072632073'/><link rel='alternate' type='text/html' href='http://pypeelf.blogspot.com/2009/09/arrancamos-de-nuevo.html' title='Arrancamos de nuevo...'/><author><name>+NCR/CRC! [ReVeRsEr]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_m_-FqUjXWIs/ShDR0-qkYGI/AAAAAAAAAB4/sCFJinoQoBA/S220/zcG5AtE4nyXPvK6lIIzzI6RcKLpNArbj9pFr5p4riAaB1etz6W8DigTgZzC4mRaC.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6791176850223279405.post-6812005559981220558</id><published>2009-09-11T14:21:00.000-07:00</published><updated>2009-09-22T20:39:18.962-07:00</updated><title type='text'>PyPEELF</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_m_-FqUjXWIs/SqrABygWqwI/AAAAAAAAAEc/QDzS2YSOIiQ/s1600-h/pypeelf_logo_little.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 175px;" src="http://2.bp.blogspot.com/_m_-FqUjXWIs/SqrABygWqwI/AAAAAAAAAEc/QDzS2YSOIiQ/s200/pypeelf_logo_little.png" alt="" id="BLOGGER_PHOTO_ID_5380323841817357058" border="0" /&gt;&lt;/a&gt;Hola!,&lt;br /&gt;&lt;br /&gt;Hace unos dias puse una entrada en Crackinglandia sobre este proyecto que encare y al que se sumaron algunos amigos: &lt;a href="http://crackinglandia.blogspot.com/2009/08/pypeelf-multi-platform-multi-format.html"&gt;http://crackinglandia.blogspot.com/2009/08/pypeelf-multi-platform-multi-format.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Creo que lo mejor es armar un blog aparte para ir posteando novedades y el avance del proyecto.&lt;br /&gt;&lt;br /&gt;Cuando tengamos mas novedades las pondremos aqui!.&lt;br /&gt;&lt;br /&gt;Pueden visitar la web del Wiki para enterarse un poco mas sobre lo que va pasando: &lt;a href="https://sourceforge.net/apps/trac/pypeelf/wiki/WikiStart"&gt;https://sourceforge.net/apps/trac/pypeelf/wiki/WikiStart&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hasta pronto!.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6791176850223279405-6812005559981220558?l=pypeelf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pypeelf.blogspot.com/feeds/6812005559981220558/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://pypeelf.blogspot.com/2009/09/pypeelf.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/6812005559981220558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6791176850223279405/posts/default/6812005559981220558'/><link rel='alternate' type='text/html' href='http://pypeelf.blogspot.com/2009/09/pypeelf.html' title='PyPEELF'/><author><name>+NCR/CRC! [ReVeRsEr]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_m_-FqUjXWIs/ShDR0-qkYGI/AAAAAAAAAB4/sCFJinoQoBA/S220/zcG5AtE4nyXPvK6lIIzzI6RcKLpNArbj9pFr5p4riAaB1etz6W8DigTgZzC4mRaC.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_m_-FqUjXWIs/SqrABygWqwI/AAAAAAAAAEc/QDzS2YSOIiQ/s72-c/pypeelf_logo_little.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
