<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0cAR3w6eCp7ImA9WhBaEU8.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056</id><updated>2013-05-21T10:24:06.210+03:00</updated><category term="hardware emulation" /><category term="export table" /><category term="obfuscation" /><category term="API export" /><category term="memory management" /><category term="software protection" /><category term="trolls" /><category term="memory dump" /><category term="C" /><category term="device drivers" /><category term="dynamic encryption" /><category term="malware" /><category term="expert systems" /><category term="forums" /><category term="system internals" /><category term="dump" /><category term="signal" /><category term="trolling" /><category term="application" /><category term="structured exception handling" /><category term="evolution" /><category term="stock market" /><category term="encryption" /><category term="detection" /><category term="system prorgamming" /><category term="ptrace" /><category term="fake dll" /><category term="exception handling" /><category term="protectors" /><category term="advanced programming technique" /><category term="analysis" /><category term="data obfuscation" /><category term="macro" /><category term="virtual machine" /><category term="code obfuscation" /><category term="code injection" /><category term="reverse" /><category term="64 bit" /><category term="Windows 7" /><category term="system call" /><category term="linux" /><category term="artificial neural network" /><category term="forecast" /><category term="enumerate threads" /><category term="CreateRemoteThread" /><category term="threads" /><category term="genetic algorithm" /><category term="misc_register" /><category term="sigaction" /><category term="programming" /><category term="shared object" /><category term="misc_unregister" /><category term="ann" /><category term="information" /><category term="hardware platform" /><category term="kernel module" /><category term="event handler" /><category term="newsgroups" /><category term="windows internals" /><category term="miscellaneous character driver" /><category term="time series" /><category term="patent" /><category term="antivirus" /><category term="low level development" /><category term="vectored exception handling" /><category term="emulator" /><category term="genetic programming" /><category term="anti piracy" /><category term="kernel" /><category term="quadratic equation" /><category term="optimization" /><category term="virus" /><category term="EnumProcessModules" /><category term="flat assembler" /><category term="framework" /><category term="suspend thread" /><category term="API import" /><category term="assembly language" /><category term="packers" /><category term="dll injection" /><category term="sys_call_table" /><title>System Programming</title><subtitle type="html">This blog is dedicated to low level programming in Assembler and C/C++ (although, C++ is unwelcome) in either *Nix or Windows based operating systems.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://syprog.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/JckOd" /><feedburner:info uri="blogspot/jckod" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEcMQng5eip7ImA9WhNUGE8.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-1017134613268517255</id><published>2013-01-10T15:37:00.000+03:00</published><updated>2013-01-10T15:48:03.622+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-10T15:48:03.622+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="genetic algorithm" /><category scheme="http://www.blogger.com/atom/ns#" term="expert systems" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="evolution" /><category scheme="http://www.blogger.com/atom/ns#" term="optimization" /><category scheme="http://www.blogger.com/atom/ns#" term="quadratic equation" /><category scheme="http://www.blogger.com/atom/ns#" term="genetic programming" /><title>Genetic Algorithms. Lame Example - Solving Quadratic Equation</title><summary type="html">

Source code to this article may be found here.

There are numerous resources on the Internet, that provide description of the theory of Genetic Algorithms and theoretical explanation thereof. I, however, have found a bit more then none giving a real example (I may have not searched that good, though). Therefore, I decided to try and implement the theory into a live example. While there are &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/7pEm3GaAOBY" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/1017134613268517255/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2013/01/genetic-algorithms-lame-example-solving.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1017134613268517255?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1017134613268517255?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/7pEm3GaAOBY/genetic-algorithms-lame-example-solving.html" title="Genetic Algorithms. Lame Example - Solving Quadratic Equation" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-AH34WrHUkHI/UO6zjLCXM8I/AAAAAAAAErw/3cRI_XccHMI/s72-c/Values+history.png" height="72" width="72" /><thr:total>12</thr:total><feedburner:origLink>http://syprog.blogspot.com/2013/01/genetic-algorithms-lame-example-solving.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UFRHkzcCp7ImA9WhNUF04.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-8271445831381955837</id><published>2013-01-07T12:58:00.000+03:00</published><updated>2013-01-09T15:40:15.788+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-09T15:40:15.788+03:00</app:edited><title>Anti Piracy? The insider's view</title><summary type="html">
&amp;lt;!--[if gte mso 9]&amp;gt;
 
  
 
&amp;lt;![endif]--&amp;gt;

&amp;lt;!--[if gte mso 9]&amp;gt;
 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  JA
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  
&amp;lt;![endif]--&amp;gt;&amp;lt;!--[if gte mso 9]&amp;gt;
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/G2woLxKuZgM" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/8271445831381955837/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2013/01/anti-piracy-insiders-view_7.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/8271445831381955837?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/8271445831381955837?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/G2woLxKuZgM/anti-piracy-insiders-view_7.html" title="Anti Piracy? The insider's view" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://syprog.blogspot.com/2013/01/anti-piracy-insiders-view_7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8DRHs7eyp7ImA9WhNSEkk.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-5200386433399866210</id><published>2012-10-22T17:20:00.001+03:00</published><updated>2012-10-26T13:21:15.503+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-26T13:21:15.503+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="analysis" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="exception handling" /><category scheme="http://www.blogger.com/atom/ns#" term="dump" /><category scheme="http://www.blogger.com/atom/ns#" term="anti piracy" /><category scheme="http://www.blogger.com/atom/ns#" term="dll injection" /><category scheme="http://www.blogger.com/atom/ns#" term="code injection" /><category scheme="http://www.blogger.com/atom/ns#" term="CreateRemoteThread" /><category scheme="http://www.blogger.com/atom/ns#" term="enumerate threads" /><title>Exception Driven "Debugging": Getting behind anti debugging tricks.</title><summary type="html">

Of course, every debugging is exception driven. At least because a breakpoint generates debug exception wich is passed to debugger. In this article, however, I will refer to regular exceptions.



There are tens if not hundreds of software protectors used by software vendors around the globe. Some are good, some are less good, in either case, vendors rarely use them in a proper way, thinking &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/BANpltknTzs" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/5200386433399866210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/10/exception-driven-debugging-getting.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/5200386433399866210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/5200386433399866210?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/BANpltknTzs/exception-driven-debugging-getting.html" title="Exception Driven &quot;Debugging&quot;: Getting behind anti debugging tricks." /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/10/exception-driven-debugging-getting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YGQHs6eCp7ImA9WhNTFUo.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-718176841726923392</id><published>2012-10-18T19:52:00.000+03:00</published><updated>2012-10-18T19:52:01.510+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-18T19:52:01.510+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="reverse" /><category scheme="http://www.blogger.com/atom/ns#" term="virus" /><category scheme="http://www.blogger.com/atom/ns#" term="application" /><category scheme="http://www.blogger.com/atom/ns#" term="malware" /><category scheme="http://www.blogger.com/atom/ns#" term="antivirus" /><category scheme="http://www.blogger.com/atom/ns#" term="detection" /><category scheme="http://www.blogger.com/atom/ns#" term="patent" /><title>Method of Computer Virus Detection. Sad story of a patent application</title><summary type="html">

It was quite a long time ago (an epoch ago by terms of software development). Around the end of 2005 and beginning of 2006. I was then working for Aladdin Knowledge Systems' eSafe unit as a computer  virus researcher (my first formal RE job). Detection methods were quite poor at that time, even heuristic ones (not that they are THAT good these days). There was quite a lot noise about the &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/Emr6nJXDWF4" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/718176841726923392/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/10/method-of-computer-virus-detection-sad.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/718176841726923392?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/718176841726923392?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/Emr6nJXDWF4/method-of-computer-virus-detection-sad.html" title="Method of Computer Virus Detection. Sad story of a patent application" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/10/method-of-computer-virus-detection-sad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMHRnc-cSp7ImA9WhJVF0o.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-7680162008923420156</id><published>2012-09-04T19:49:00.000+03:00</published><updated>2012-09-04T19:50:37.959+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-04T19:50:37.959+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="stock market" /><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="time series" /><category scheme="http://www.blogger.com/atom/ns#" term="expert systems" /><category scheme="http://www.blogger.com/atom/ns#" term="analysis" /><category scheme="http://www.blogger.com/atom/ns#" term="artificial neural network" /><category scheme="http://www.blogger.com/atom/ns#" term="forecast" /><title>Time Series Analysis and Forecasting. Programming Approach - thoughts</title><summary type="html">
"Certain things are impossible... 
Until an ignoramus appears, who is not aware of that".



Time Series - a sequence of data points, measured typically at successive time instants spaced at uniform time intervals. 



There are quite a lot of things that may fit this definition. For example, air temperature changes throughout the day (let's say, hourly measured), distance from the Earth to the &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/Umekb5gTANI" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/7680162008923420156/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/09/time-series-analysis-and-forecasting.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/7680162008923420156?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/7680162008923420156?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/Umekb5gTANI/time-series-analysis-and-forecasting.html" title="Time Series Analysis and Forecasting. Programming Approach - thoughts" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-laiLtywYPwA/UEYdRnmwZHI/AAAAAAAAEqE/HlavsE4N4JQ/s72-c/forecast.png" height="72" width="72" /><thr:total>13</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/09/time-series-analysis-and-forecasting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIHRnw4eCp7ImA9WhJVFE4.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-5187030264380644289</id><published>2012-08-31T20:35:00.000+03:00</published><updated>2012-08-31T20:35:37.230+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-31T20:35:37.230+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware emulation" /><category scheme="http://www.blogger.com/atom/ns#" term="memory management" /><category scheme="http://www.blogger.com/atom/ns#" term="emulator" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware platform" /><category scheme="http://www.blogger.com/atom/ns#" term="virtual machine" /><title>Emulation of Hardware. CPU &amp; Memory</title><summary type="html">

There are tens of hardware platforms (although, some people would say that there is only one - computer ;-) ). Each one has its own advantages over others and disadvantages as well. For example Intel is the most used platform for desktops, ARM and MIPS are widely used in embedded systems and so on. Sometimes, a need may arise to test/debug executable code written for platform other then the one&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/hQQrKSYFNf0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/5187030264380644289/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/08/emulation-of-hardware-cpu-memory.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/5187030264380644289?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/5187030264380644289?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/hQQrKSYFNf0/emulation-of-hardware-cpu-memory.html" title="Emulation of Hardware. CPU &amp; Memory" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/08/emulation-of-hardware-cpu-memory.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YBQn09eSp7ImA9WhVbE0U.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-7453853235641373965</id><published>2012-05-30T04:36:00.000+03:00</published><updated>2012-05-30T15:32:33.361+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-30T15:32:33.361+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="suspend thread" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="dll injection" /><category scheme="http://www.blogger.com/atom/ns#" term="code injection" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="CreateRemoteThread" /><category scheme="http://www.blogger.com/atom/ns#" term="enumerate threads" /><title>CreateRemoteThread. Bypass Windows 7 Session Separation</title><summary type="html">

Internet is full of programmers' forums and those forums are full with questions about CreateRemoteThread Windows API function not working on Windows 7 (when trying to inject a DLL). Those posts made by lucky people, somehow, redirect you to the MSDN page dedicated to this API, which says: "Terminal Services isolates each terminal session by design. Therefore, CreateRemoteThread fails if the &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/jib3B2invEc" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/7453853235641373965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/05/createremotethread-bypass-windows.html#comment-form" title="14 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/7453853235641373965?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/7453853235641373965?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/jib3B2invEc/createremotethread-bypass-windows.html" title="CreateRemoteThread. Bypass Windows 7 Session Separation" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>14</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/05/createremotethread-bypass-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMDQ3kzfSp7ImA9WhVUGE0.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-970124730316936988</id><published>2012-05-23T18:57:00.000+03:00</published><updated>2012-05-23T22:47:52.785+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-23T22:47:52.785+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software protection" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="system call" /><category scheme="http://www.blogger.com/atom/ns#" term="exception handling" /><category scheme="http://www.blogger.com/atom/ns#" term="event handler" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="framework" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><category scheme="http://www.blogger.com/atom/ns#" term="virtual machine" /><title>Passing Events to a Virtual Machine</title><summary type="html">

The source code for this article may be found here.


Virtual machines and Software Frameworks are an initial part of our digital life. There are complex VM and simple Software Frameworks. These two articles (Simple Virtual Machine and Simple Runtime Framework by Example) show how easy it may be to implement one yourself. I did my best to describe the way VM code may interact with native code &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/gMhkaJ5IepU" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/970124730316936988/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/05/passing-events-to-virtual-machine.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/970124730316936988?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/970124730316936988?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/gMhkaJ5IepU/passing-events-to-virtual-machine.html" title="Passing Events to a Virtual Machine" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-wOgmqljT0_g/T7zhrM12fmI/AAAAAAAAEl4/YB4se-wk-cg/s72-c/complex_layout.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/05/passing-events-to-virtual-machine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUABRX0ycCp7ImA9WhVUFUk.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-2341217846458134951</id><published>2012-05-19T17:53:00.001+03:00</published><updated>2012-05-20T22:55:54.398+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-20T22:55:54.398+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="anti piracy" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="framework" /><category scheme="http://www.blogger.com/atom/ns#" term="protectors" /><category scheme="http://www.blogger.com/atom/ns#" term="data obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="code obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="virtual machine" /><title>Simple Runtime Framework by Example</title><summary type="html">

Source code for this article may be found here.



These days we are simply surrounded by different software frameworks. Just to name a few: Java, .Net and, actually, many more. Have you ever wondered how those work or have you ever wanted or needed to implement one? In this article, I will cover a simple or even trivial runtime framework.



As usual - note for nerds:

The source code given in&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/nDNlwoUoSJM" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/2341217846458134951/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/05/simple-runtime-framework-by-example.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2341217846458134951?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2341217846458134951?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/nDNlwoUoSJM/simple-runtime-framework-by-example.html" title="Simple Runtime Framework by Example" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-xrXONacY8CU/T7eWtJ67vhI/AAAAAAAAEkI/X3egcScuIEw/s72-c/diagram1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/05/simple-runtime-framework-by-example.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcBR3wzeSp7ImA9WhVUEkU.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-6089582670241903286</id><published>2012-05-17T22:30:00.000+03:00</published><updated>2012-05-17T22:30:56.281+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-17T22:30:56.281+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="anti piracy" /><category scheme="http://www.blogger.com/atom/ns#" term="data obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="encryption" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="code obfuscation" /><title>Basics of Data Obfuscation</title><summary type="html">

Source code for this article may be found here.

One of the aspects of software anti RE (reverse engineering) protection is the need to protect sensitive data (for example decryption or license keys, etc.) There is quite a common practice of storing such data in encrypted form and using it by passing to a certain routine for decryption. I am not going to say, that this is not a good idea, but &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/AoDAoVrqBf8" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/6089582670241903286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/05/basics-of-data-obfuscation.html#comment-form" title="17 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/6089582670241903286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/6089582670241903286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/AoDAoVrqBf8/basics-of-data-obfuscation.html" title="Basics of Data Obfuscation" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>17</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/05/basics-of-data-obfuscation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGQXg9eSp7ImA9WhVRE0o.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-499505521824553078</id><published>2012-03-21T23:40:00.001+03:00</published><updated>2012-03-22T03:20:20.661+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-22T03:20:20.661+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ptrace" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="shared object" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="code injection" /><category scheme="http://www.blogger.com/atom/ns#" term="threads" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="64 bit" /><title>Linux Threads Through a Magnifier: Remote Threads</title><summary type="html">

Source code for this article may be found here.

Sometimes, a need may rise to start a thread in a separate process and the need is not necessarily malicious. For example, one may want to replace library functions or to place some code between the executable and a library function. However, Linux does not provide a system call that would do anything similar to CreateRemoteThread Windows API &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/sDgBB7Cf-Es" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/499505521824553078/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/03/linux-threads-through-magnifier-remote.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/499505521824553078?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/499505521824553078?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/sDgBB7Cf-Es/linux-threads-through-magnifier-remote.html" title="Linux Threads Through a Magnifier: Remote Threads" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-SVgyOxJNAvg/T2o69MxJusI/AAAAAAAAEBw/GjjBJjYioZk/s72-c/injector_output.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/03/linux-threads-through-magnifier-remote.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGQ349eyp7ImA9WhVREE0.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-532390071115378573</id><published>2012-03-17T20:10:00.000+03:00</published><updated>2012-03-17T20:10:22.063+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-17T20:10:22.063+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="system call" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="flat assembler" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="threads" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="64 bit" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><title>Linux Threads Through a Magnifier: Local Threads</title><summary type="html">

Source code for this article is here.



Threads are everywhere. Even now, when you browse this page, threads are involved in the process. Most likely, you have more than one tab opened in the browser and each one has at least one thread associated with it. The server supplying this page runs several threads in order to serve multiple connections simultaneously. There may be unnumbered examples&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/Z6FvfHik1CQ" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/532390071115378573/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/03/linux-threads-through-magnifier-local.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/532390071115378573?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/532390071115378573?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/Z6FvfHik1CQ/linux-threads-through-magnifier-local.html" title="Linux Threads Through a Magnifier: Local Threads" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/03/linux-threads-through-magnifier-local.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAFR30zeSp7ImA9WhVSEEg.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-854000350051437736</id><published>2012-03-06T21:31:00.000+03:00</published><updated>2012-03-06T21:31:56.381+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-06T21:31:56.381+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fake dll" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="export table" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="dll injection" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="API import" /><category scheme="http://www.blogger.com/atom/ns#" term="system internals" /><category scheme="http://www.blogger.com/atom/ns#" term="API export" /><title>Faking KERNEL32.DLL - an Amateur Sandbox</title><summary type="html">

As a part of my work (read "fun") of maintaining this blog, I am constantly checking the statistic information on traffic sources and keywords (it's nice to know that people are getting here via Google) in order to see whether my readers are getting what they are looking for (personally, I see no reason in simply "streaming my consciousness to the masses" as this is not the point of this blog).&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/AjrpUWWx8Do" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/854000350051437736/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/03/faking-kernel32dll-amateur-sandbox.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/854000350051437736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/854000350051437736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/AjrpUWWx8Do/faking-kernel32dll-amateur-sandbox.html" title="Faking KERNEL32.DLL - an Amateur Sandbox" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-AycR9WxfFTQ/T1ZVOaqYdLI/AAAAAAAAD6o/PqppQpkQR5Q/s72-c/fake.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/03/faking-kernel32dll-amateur-sandbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UDRXY5cCp7ImA9WhVTGEo.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-4127750591142619571</id><published>2012-03-04T19:41:00.000+03:00</published><updated>2012-03-04T19:41:14.828+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-04T19:41:14.828+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="flat assembler" /><category scheme="http://www.blogger.com/atom/ns#" term="artificial neural network" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="information" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="64 bit" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><category scheme="http://www.blogger.com/atom/ns#" term="ann" /><title>Trivial Artificial Neural Network in Assembly Language</title><summary type="html">
Source code for this article may be found here.


Note for nerds: The code shown in this article may be incomplete and may not contain all the security checks you would usually perform in your code as it is given here for demonstration purposes only. Downloadable source code may contain bugs (there is no software without bugs at all). It is provided as is without any warranty. You may use and &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/XXps5LbUZ5Y" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/4127750591142619571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/03/trivial-artificial-neural-network-in.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/4127750591142619571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/4127750591142619571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/XXps5LbUZ5Y/trivial-artificial-neural-network-in.html" title="Trivial Artificial Neural Network in Assembly Language" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-clZ6kGASjig/T1N4L7ndyWI/AAAAAAAAD6A/nz7KDcVtwO4/s72-c/linked_list.png" height="72" width="72" /><thr:total>12</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/03/trivial-artificial-neural-network-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4EQ3k4fip7ImA9WhVTFkQ.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-2606748251413121408</id><published>2012-03-02T17:35:00.000+03:00</published><updated>2012-03-02T17:35:02.736+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-02T17:35:02.736+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="reverse" /><category scheme="http://www.blogger.com/atom/ns#" term="suspend thread" /><category scheme="http://www.blogger.com/atom/ns#" term="packers" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="memory dump" /><category scheme="http://www.blogger.com/atom/ns#" term="dump" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="code injection" /><category scheme="http://www.blogger.com/atom/ns#" term="protectors" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="information" /><category scheme="http://www.blogger.com/atom/ns#" term="enumerate threads" /><title>Defeating Packers for Static Analysis of Malicious Code</title><summary type="html">

I doubt whether there is anybody in either AV industry or among reverse engineers who does not know what a software packer is (for those who don't - this article may help). Malware research and reverse engineering forums are full of packers' related questions, descriptions thereof, unpacking suggestions and links to both packers and unpackers. In short - people have been doing a lot of precious&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/RbFNfSUstGI" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/2606748251413121408/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/03/defeating-packers-for-static-analysis.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2606748251413121408?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2606748251413121408?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/RbFNfSUstGI/defeating-packers-for-static-analysis.html" title="Defeating Packers for Static Analysis of Malicious Code" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/03/defeating-packers-for-static-analysis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcBRng6cCp7ImA9WhVTGUg.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-1332944228832664834</id><published>2012-03-02T00:01:00.000+03:00</published><updated>2012-03-05T17:17:37.618+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T17:17:37.618+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software protection" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="anti piracy" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="encryption" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="dynamic encryption" /><category scheme="http://www.blogger.com/atom/ns#" term="code obfuscation" /><title>Dynamic Code Encryption as an Anti Dump and Anti Reverse Engineering measure</title><summary type="html">

Source code for this article may be found here.


There has been said and written too much on how software vendors do not protect their products, so let me skip this. Instead, in this article, I would like to concentrate on those relatively easy steps, which software vendors have to take in order to enhance their protection (using packers and protectors is good, but certainly not enough) by not&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/Iv_5i57t9HE" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/1332944228832664834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/03/dynamic-code-encryption-as-anti-dump.html#comment-form" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1332944228832664834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1332944228832664834?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/Iv_5i57t9HE/dynamic-code-encryption-as-anti-dump.html" title="Dynamic Code Encryption as an Anti Dump and Anti Reverse Engineering measure" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-XQqB86VU7RI/T0--jOpgLhI/AAAAAAAAD54/i4eo4_ubaMw/s72-c/encrypted.png" height="72" width="72" /><thr:total>9</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/03/dynamic-code-encryption-as-anti-dump.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQEQH88fip7ImA9WhVTFUk.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-642362464048843815</id><published>2012-02-29T22:05:00.000+03:00</published><updated>2012-02-29T22:05:01.176+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-29T22:05:01.176+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="exception handling" /><category scheme="http://www.blogger.com/atom/ns#" term="vectored exception handling" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="signal" /><category scheme="http://www.blogger.com/atom/ns#" term="system internals" /><category scheme="http://www.blogger.com/atom/ns#" term="sigaction" /><title>Vectored Exception Handling for Linux</title><summary type="html">

Source code for this article may be found here.





The title of this article may look weird. In deed, why would someone want to use Vectored Exception Handling in Linux, while this OS provides a perfectly working mechanism - signals? Well, there are several possible answers:


Many programmers, who started their career with Windows programming, are getting a bit frustrated when it comes to &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/eNWAuiW2Fb0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/642362464048843815/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/02/vectored-exception-handling-for-linux.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/642362464048843815?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/642362464048843815?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/eNWAuiW2Fb0/vectored-exception-handling-for-linux.html" title="Vectored Exception Handling for Linux" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-2pqhr7w3ZW0/T05cmsDrdFI/AAAAAAAAD5I/h11sbXpDkW8/s72-c/veh_h_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/02/vectored-exception-handling-for-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGRn88fSp7ImA9WhVTFU8.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-2345998786235988403</id><published>2012-02-27T18:42:00.000+03:00</published><updated>2012-02-29T16:37:07.175+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-29T16:37:07.175+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software protection" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="anti piracy" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><category scheme="http://www.blogger.com/atom/ns#" term="code obfuscation" /><title>Basics of Executable Code Obfuscation</title><summary type="html">

Source code for this article may be found here.


The problem of software security has already been raised in my previous articles more that once. This article is not an exception. 



Majority of software vendors position themselves as number one in the industry, even though there are always more then 1 number 1. But what unites them all (well, almost all) in reality, it the fact that they all&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/-5ZaNOUDnr0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/2345998786235988403/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2012/02/basics-of-executable-code-obfuscation.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2345998786235988403?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2345998786235988403?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/-5ZaNOUDnr0/basics-of-executable-code-obfuscation.html" title="Basics of Executable Code Obfuscation" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Ayv7h-GgE9g/T0uImMgBjXI/AAAAAAAAD34/-jZ4XeYHXu0/s72-c/obfuscated_main.png" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://syprog.blogspot.com/2012/02/basics-of-executable-code-obfuscation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcGSH87fyp7ImA9WhRXF0s.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-2175929236870449590</id><published>2011-12-25T01:50:00.000+03:00</published><updated>2011-12-25T01:50:29.107+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-25T01:50:29.107+03:00</app:edited><title>Merry Christmas!</title><summary type="html">


&lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/4R0rpVQ_7ao" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/2175929236870449590/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/merry-christmas.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2175929236870449590?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2175929236870449590?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/4R0rpVQ_7ao/merry-christmas.html" title="Merry Christmas!" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/merry-christmas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YGQncyeSp7ImA9WhRXGEw.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-4385184818371876682</id><published>2011-12-22T01:16:00.000+03:00</published><updated>2011-12-25T16:18:43.991+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-25T16:18:43.991+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software protection" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="flat assembler" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><category scheme="http://www.blogger.com/atom/ns#" term="virtual machine" /><title>Simple Virtual Machine</title><summary type="html">

Sample code for this article may be found here.

In computing, Virtual Machine (VM) is a software implementation of either existing or a fictional hardware platform.  VM's are generally divided into two classes - system VM (VM which is capable of running an operating system) and process VM (the one that only can run one executable, roughly saying). Anyway, if you are just interested in the &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/vu8kFjr4z0Q" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/4385184818371876682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/simple-virtual-machine.html#comment-form" title="15 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/4385184818371876682?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/4385184818371876682?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/vu8kFjr4z0Q/simple-virtual-machine.html" title="Simple Virtual Machine" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-gp-xYz1uOt8/TvMxvzzCZYI/AAAAAAAAD2M/l7zfIVE5iJk/s72-c/asm_constants.png" height="72" width="72" /><thr:total>15</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/simple-virtual-machine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cGRXc5cCp7ImA9WhRXE08.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-1551666526496328776</id><published>2011-12-19T21:57:00.000+03:00</published><updated>2011-12-19T21:57:04.928+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T21:57:04.928+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="EnumProcessModules" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="shared object" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="information" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><category scheme="http://www.blogger.com/atom/ns#" term="system internals" /><title>Listing Loaded Shared Objects in Linux</title><summary type="html">
I have recently come across several posts on the Internet where guys keep asking for Linux analogs of Windows API. One of the most frequent one is something like "EnumProcessModules for Linux". As usual, most of the replies are looking like "why do you need that?" or "Linux is not Windows". Although, the last one is totally true, it is completely useless. As to "why do you need that?" - why do &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/H6P7ZZrOfc4" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/1551666526496328776/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/listing-loaded-shared-objects-in-linux.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1551666526496328776?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1551666526496328776?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/H6P7ZZrOfc4/listing-loaded-shared-objects-in-linux.html" title="Listing Loaded Shared Objects in Linux" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/listing-loaded-shared-objects-in-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYGQHYzfyp7ImA9WhJUF0Q.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-8157141856964186563</id><published>2011-12-16T00:50:00.001+03:00</published><updated>2012-09-16T15:05:21.887+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-16T15:05:21.887+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software protection" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="dll injection" /><category scheme="http://www.blogger.com/atom/ns#" term="code injection" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="information" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><title>Executable Code Injection the Interesting Way</title><summary type="html">

So. Executable code injection. In general, this term is associated with malicious intent. It is true in many cases, but in, at least, as many, it is not. Being malware researcher for the most of my career, I can assure you, that this technique appears to be very useful when researching malicious software, as it allows (in most cases) to defeat its protection and gather much of the needed &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/7EAoOnSoFCc" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/8157141856964186563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/executable-code-injection-interesting.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/8157141856964186563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/8157141856964186563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/7EAoOnSoFCc/executable-code-injection-interesting.html" title="Executable Code Injection the Interesting Way" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-mg73EFXYw-o/TupT2pPzgtI/AAAAAAAAD1E/svIqftxd3CE/s72-c/layout.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/executable-code-injection-interesting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ADSX0yeyp7ImA9WhRQFkw.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-5680071543796506957</id><published>2011-12-11T18:21:00.001+03:00</published><updated>2011-12-11T19:09:38.393+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-11T19:09:38.393+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trolling" /><category scheme="http://www.blogger.com/atom/ns#" term="forums" /><category scheme="http://www.blogger.com/atom/ns#" term="trolls" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="newsgroups" /><category scheme="http://www.blogger.com/atom/ns#" term="information" /><title>Pseudo Experts or Who's the Troll</title><summary type="html">
Internet has currently become the most available source of consultation and tutorials then anything else. At least, because the closest library is a couple of blocks away while the Internet is at your fingertips (wanted to say "at your desk", but it may be a laptop or a mobile device). It is hard to find someone who hasn't ever posted a question or an issue on one of the numerous forums or &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/zjBURcFnH3M" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/5680071543796506957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/pseudo-experts-or-whos-troll.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/5680071543796506957?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/5680071543796506957?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/zjBURcFnH3M/pseudo-experts-or-whos-troll.html" title="Pseudo Experts or Who's the Troll" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/pseudo-experts-or-whos-troll.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYFRX8-eCp7ImA9WhRQFE4.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-1524152295685494437</id><published>2011-12-09T14:20:00.001+03:00</published><updated>2011-12-09T14:28:34.150+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T14:28:34.150+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="flat assembler" /><category scheme="http://www.blogger.com/atom/ns#" term="system prorgamming" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><category scheme="http://www.blogger.com/atom/ns#" term="API import" /><category scheme="http://www.blogger.com/atom/ns#" term="macro" /><category scheme="http://www.blogger.com/atom/ns#" term="system internals" /><category scheme="http://www.blogger.com/atom/ns#" term="API export" /><title>Flat Assembler "Export" Macro with Custom Ordinal Base</title><summary type="html">
I have recently come across the need to build dynamic link libraries with custom ordinal base (different from 1). After searching the net and seeing lots of people writing their own export macros, I came to a conclusion that Occam's Razor principle still works here and decided to make simple modifications to the original export macro provided with FASM package. The modifications are marked with &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/y9sfrkq_yio" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/1524152295685494437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/flat-assembler-export-macro-with-custom.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1524152295685494437?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/1524152295685494437?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/y9sfrkq_yio/flat-assembler-export-macro-with-custom.html" title="Flat Assembler &quot;Export&quot; Macro with Custom Ordinal Base" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/flat-assembler-export-macro-with-custom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcFRXg_fip7ImA9WhRQFEk.&quot;"><id>tag:blogger.com,1999:blog-650001352631255056.post-2974392427512464146</id><published>2011-12-08T18:03:00.001+03:00</published><updated>2011-12-09T18:03:34.646+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T18:03:34.646+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software protection" /><category scheme="http://www.blogger.com/atom/ns#" term="advanced programming technique" /><category scheme="http://www.blogger.com/atom/ns#" term="windows internals" /><category scheme="http://www.blogger.com/atom/ns#" term="dll injection" /><category scheme="http://www.blogger.com/atom/ns#" term="obfuscation" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly language" /><category scheme="http://www.blogger.com/atom/ns#" term="low level development" /><title>Hiding Injected DLL in Windows</title><summary type="html">

Errare humanum est... For some reasons, I have missed an important aspect of DLL injection in my previous article. Namely - hiding your injected DLL. It may be unnecessary when you inject DLL into your own process (e.g. for debugging purposes), but what if you are a tough malware researcher trying to trace the activity of some bad executable? In such case, the less you inform the malware you &lt;img src="http://feeds.feedburner.com/~r/blogspot/JckOd/~4/j7HYcVoxuZI" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://syprog.blogspot.com/feeds/2974392427512464146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://syprog.blogspot.com/2011/12/hiding-injected-dll-in-windows.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2974392427512464146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/650001352631255056/posts/default/2974392427512464146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/JckOd/~3/j7HYcVoxuZI/hiding-injected-dll-in-windows.html" title="Hiding Injected DLL in Windows" /><author><name>Alexey Lyashko</name><uri>https://plus.google.com/108493326751983936020</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-stmOhcUNBY8/AAAAAAAAAAI/AAAAAAAAErI/6nnaYZMf6l8/s512-c/photo.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://syprog.blogspot.com/2011/12/hiding-injected-dll-in-windows.html</feedburner:origLink></entry></feed>
