<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mpu Gondrong di Waru Doyong</title>
	<atom:link href="http://oguds.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oguds.wordpress.com</link>
	<description>Senyum Anda Harapan Kami</description>
	<lastBuildDate>Mon, 16 Jan 2012 16:39:28 +0000</lastBuildDate>
	<language>id</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='oguds.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mpu Gondrong di Waru Doyong</title>
		<link>http://oguds.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://oguds.wordpress.com/osd.xml" title="Mpu Gondrong di Waru Doyong" />
	<atom:link rel='hub' href='http://oguds.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Server Linux Hemat Listrik</title>
		<link>http://oguds.wordpress.com/2011/11/20/server-linux-hemat-listrik/</link>
		<comments>http://oguds.wordpress.com/2011/11/20/server-linux-hemat-listrik/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 16:44:11 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Sembarang]]></category>

		<guid isPermaLink="false">http://oguds.wordpress.com/?p=654</guid>
		<description><![CDATA[Bagi penggemar Linux dan suka mengoprek OS tersebut, tantangan terkini boleh jadi menghidupkannya di perangkat embedded. Mengapa? Karena keterbatasan kadang malah mendorong munculnya kreativitas. Tidak sekedar masalah harga, tapi juga sumber daya. Coba misalkan server Linux hanya ditenagai baterai 12 volt, atau menarik daya 12 watt, tentu sangat menarik. Hemat listrik, hemat energi, dan juga [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=654&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://oguds.files.wordpress.com/2011/11/mr-32201.gif"><img class="alignleft size-full wp-image-662" title="TP-Link mr-3220" src="http://oguds.files.wordpress.com/2011/11/mr-32201.gif?w=480" alt=""   /></a>Bagi penggemar Linux dan suka mengoprek OS tersebut, tantangan terkini boleh jadi menghidupkannya di perangkat embedded. Mengapa? Karena keterbatasan kadang malah mendorong munculnya kreativitas. Tidak sekedar masalah harga, tapi juga sumber daya. Coba misalkan server Linux hanya ditenagai baterai 12 volt, atau menarik daya 12 watt, tentu sangat menarik. Hemat listrik, hemat energi, dan juga hemat biaya.<span id="more-654"></span></p>
<p>Nah, bicara perangkat embedded yang terjangkau dan oprek-able, alternatif berikut bisa dicoba: TP-Link MR-3220. Perangkat ini hanya berharga Rp 245 ribu, berisi prosesor Atheros 400MHz, RAM 32MB, NVRAM 4MB, Wifi, dan LAN.  Satu hal yang menarik di situ: USB port. Dengan adanya port ini, kita bisa mengakses banyak perangkat tambahan. Asalkan dayanya tidak terlalu membebani atau memakai catu daya sendiri. Apalagi sudah tersedia distribusi Linux versi OpenWrt yang siap pakai.</p>
<p>Di era sekarang, Internet adalah harga mati. Apa yang perlu ada di perangkat tersebut? Sudah tentu, modem GSM/CDMA. Demi menunjang tambahan aplikasi, kapasitas penyimpan juga harus ditambah. Dua perangkat ini juga murah, GSM modem ZTE MF 633 (dan slot MicroSD) Rp 190rb dan MicroSD Sandisk 4GB Rp 62rb. Dengan hanya sekitar Rp 500rb, kita sudah mendapatkan server Linux yang hemat energi dan hemat tempat pula.</p>
<p>OpenWrt sudah menggunakan filesystem yang overlay. Sehingga kapasitas NVRAM yang 4MB hanya sekedar menaruh kernel Linux dan modul/aplikasi pendukung, selanjutnya di-extroot sesuai kapasitas penyimpan tambahan. Tambahan MicroSD 4GB di atas, sangat memadai untuk meng-install banyak aplikasi. Apalagi OpenWrt juga mempunyai manajemen aplikasi dalam bentuk package, yang dilakukan dengan program opkg (seperti rpm di Redhat dkk).</p>
<p>So, tinggal lirik perangkat USB apalagi yang ingin ditanam di server Linux tersebut? Webcam, harddisk external, TV tuner, bluetooth, dst. Asalkan, ada tambahan adapter 5 volt sendiri bilamana tidak kuat diambil dari port USB. Barangkali, dulu yang hobi elektronik bisa disalurkan dengan menyambung-nyambung perangkat digital yang murah meriah.  Selamat mengoprek ya.</p>
<p>Link Terkait:</p>
<p><a href="http://www.tp-link.com/en/products/details/?model=TL-MR3220">http://www.tp-link.com/en/products/details/?model=TL-MR3220</a></p>
<p><a href="http://www.kaskus.us/showthread.php?t=10124215">http://www.kaskus.us/showthread.php?t=10124215</a></p>
<p><a href="http://wiki.openwrt.org/toh/tp-link/tl-mr3420">http://wiki.openwrt.org/toh/tp-link/tl-mr3420</a></p>
<p><a href="http://www.viraindo.com/">http://www.viraindo.com/</a></p>
<p><a href="http://www.rakitan.net/">http://www.rakitan.net/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/654/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=654&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2011/11/20/server-linux-hemat-listrik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2011/11/mr-32201.gif" medium="image">
			<media:title type="html">TP-Link mr-3220</media:title>
		</media:content>
	</item>
		<item>
		<title>SERUM VIRUS KUSUMAH</title>
		<link>http://oguds.wordpress.com/2011/08/20/serum-virus-kusumah/</link>
		<comments>http://oguds.wordpress.com/2011/08/20/serum-virus-kusumah/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 12:18:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Nostalgia]]></category>
		<category><![CDATA[virus komputer]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2011/08/20/serum-virus-kusumah/</guid>
		<description><![CDATA[Pernah mendengar nama Kusumah? Teman anda barangkali. Atau tetangga anda. Bagaimana bila Kusumah ini menempel di file-file program kita? Tentu saja itu adalah sebuah virus. Baiklah, kali ini kita akan membahas virus Kusumah. Virus ini jelas-jelas buatan hacker lokal, dan tampaknya ada 3 versi yang beredar luas. Sebenarnya virus ini tidak berbahaya, namun bagaimanapun tetap [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=653&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pernah mendengar nama Kusumah? Teman anda barangkali. Atau tetangga anda. Bagaimana bila Kusumah ini menempel di file-file program kita? Tentu saja itu adalah sebuah virus. Baiklah, kali ini kita akan membahas virus Kusumah.</p>
<p><span id="more-653"></span>
<p>Virus ini jelas-jelas buatan hacker lokal, dan tampaknya ada 3 versi yang beredar luas. Sebenarnya virus ini tidak berbahaya, namun bagaimanapun tetap mengganggu, dan harus secepatnya dibasmi. </p>
<h3>Karakteristik Virus </h3>
<h5>Kusumah.2588:</h5>
<ul>
<li>Menyerang file .COM, .EXE, dan Overlay. </li>
<li>Menambah besar file yang ditularinya sebesar 2588 byte. </li>
<li>Mencegat Vektor 08h yang digunakan sebagai penghitung cacahan waktu pada komputer. Bila hitungannya tercapai, maka virus ini akan menampilkan: </li>
</ul>
<p>&#160;&#160;&#160;&#160;&#160;&#160; <font face="Courier New" size="2">&#160; ÉÍ&lt; INGAT SHALAT.!! &gt;Í»      <br />&#160;&#160;&#160;&#160; º&#160;&#160;&#160;&#160; UNIVERSITAS&#160;&#160;&#160;&#160; º       <br />&#160;&#160;&#160;&#160; º&#160; JEND. ACHMAD YANI&#160; º       <br />&#160;&#160;&#160;&#160; º&#160; ® E l e k t r o ¯&#160; º       <br />&#160;&#160;&#160;&#160; ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¶       <br />&#160;&#160;&#160;&#160; º (C) KUSUMAH SASMITA º       <br />&#160;&#160;&#160;&#160; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼ </font></p>
<ul>
<li>Vektor 21h, inti dari fungsi DOS, dimanipulasi untuk beberapa fungsinya, yaitu: </li>
</ul>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400">
<ul>
<li>4Eh (Find First Matching File), dimanfaatkan untuk menelusuri tiap-tiap direktori mencari program COMMAND.COM untuk diinfeksi </li>
<li>41h (Delete File), digunakan sama dengan fungsi 41h namun dengan trigger fungsi berbeda </li>
<li>3Dh (Open File Using Handle), digunakan untuk menulari suatu file/program ketika akan dibuka. </li>
<li>4B00h (Execute Program), digunakan untuk menginfeksi program ketika akan dijalankan. </li>
<li>43h (Get/Set File Atributes), dimanipulasi agar menyebarkan virus ketika suatu file diperiksa atau diganti atributnya. </li>
<li>56h (Rename File), dimanfaatkan untuk menyerang file/program yang diganti namanya. </li>
<li>0FFFEh, menghasilkan AX=4A4Bh (&#8216;JK&#8217;) sebagai tanda virus telah aktif. </li>
<li>0FFFFh, menghasilkan AX=4B53h (&#8216;KS&#8217;), tanda aktif. </li>
<li>2521h, 2513h (Set Interrupt Vector), bila terjadi penggantian vektor 21h atau 13h, maka virus selalu mengupayakan agar dirinya selalu aktif. Virus memang ini selalu mengupayakan vektor yang dicegatnya selalu pertama kali mengarah pada rutinnya. </li>
<li>36h (Get Disk Free Space), digunakan untuk mencari program COMMAND.COM ketika dilakukan pengecekan besar sisa disk yang tersedia. Fungsi ini sering digunakan oleh perintah internal DOS, yaitu DIR.              </li>
</ul>
</td>
</tr>
</tbody>
</table>
<ul>
<li>Ketika pertama kali diinstalasi virus ini akan berusaha mencari dan menginfeksi file COMMAND.COM, terutama di direktori C:\DOS. </li>
<li>Mengganti label pada disket menjadi &#8216;KUSUMAH S&#8217;. </li>
<li>Pada tiap hari Jum&#8217;at akan dibuat file SELAMAT.COM yang bila dijalankan akan menampilkan: &#8216;Create by: KUSUMAH SASMITA, UNJANI Bdg-Cmh &#8230;. Good Day !&#8217; </li>
</ul>
<h5>Kusumah.3016:</h5>
<p>Sebagian besar sama dengan Kusumah.2588, namun dengan sedikit perbedaan di proses instalasi, tampilan, pencegatan fungsi, maupun struktur file yang diinfeksi. Beberapa perbedaan:</p>
<ul>
<li>Menambah besar file program sebanyak 3016 byte. </li>
<li>Mencegat Int 21 fungsi 3Dh, 4B00h, 43h, 56h, 0FFFFh, 2521h, 2513h. </li>
<li>Secara tidak langsung mencegat Int 1Ch, sebagai pengganti Int 08h. Proses ini dilakukan lewat fasilitas alarm pada Int 1Ah. </li>
<li>Tampilan bila cacahan terpenuhi: </li>
</ul>
<p><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ÉÍ&lt; INGAT SHALAT.!! &gt;Í»      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; º&#160;&#160;&#160;&#160; UNIVERSITAS&#160;&#160;&#160;&#160; º       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; º&#160; JEND. ACHMAD YANI&#160; º       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; º&#160; Bandung Indonesia&#160; º       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¶       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; º By: KUSUMAH SASMITA º       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ÈÍÍÍÍÍ&lt; W I N G &gt;ÍÍÍÍÍ¼ </font></p>
<ul>
<li>Pada awal program .COM terdapat string kalimat:      <br /><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; U N J A N I &#8211;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Ver.&#160; 2.00         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; By: KUSUMAH S         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Bandung         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Indonesia</font> </li>
<li>Pengecekan isi COMSPEC saat instalasi virus. </li>
</ul>
<h5>Kusumah.3967:</h5>
<p>Pada virus ini mulai banyak dikembangkan trik-trik baru dalam kerja virus. Banyak perbedaan dari kedua versi sebelumnya, terutama dari makin banyaknya manipulasi fungsi yang dilakukan. Perbedaan itu antara lain:</p>
<ul>
<li>Menambah besar file program sebesar 3967 byte. </li>
<li>Bisa dibilang semi &#8216;stealth&#8217; hingga mampu menerobos sebagian program imunisasi. Namun tidak setiap operasi file diberikan fasilitas ini, dan tampaknya hanya untuk menghindari pengecekan sendiri pada sebuah program. </li>
<li>Mencegat vektor pada lapisan dalam, yaitu dengan jalan menelusuri vektor Int 21h, dan memodifikasi pada titik terakhir. </li>
<li>Mencegat Int 21h, fungsi 4Eh, 43h, 0FFFFh, 0FFFEh, ditambah: </li>
</ul>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400">
<ul>
<li>2B01h (Set Date) DX=5351h (SQ), bila AL=00h berarti virus telah aktif di memori. </li>
<li>33h (Get Ctrl-Break Checking Flag), ini ada hubungannya dengan penelusuran vektor, yang mungkin untuk menandakan virus telah aktif. </li>
<li>6Ch (Extended Open/Create File), fungsi ini digunakan oleh perintah internal DOS &#8216;Copy&#8217;. </li>
<li>4Bh (Exec/Load Program), selain sub fungsi 00h (Exec) dicegat pula sub fungsi 01h/02h (Load) yang biasa digunakan program debugger. Virus memanipulasi fungsi ini sehingga program yang didebug seakan-akan tidak berubah. </li>
<li>3Bh (Change Current Dir), dimanfaatkan untuk menulari program COMMAND.COM bila ditemukan. </li>
<li>3Ch (Create File), 3Dh (Open File), 3Eh (Close File), 3Fh (Read File), 40h (Write To File), 42h (Move File Pointer), dimanipulasi untuk mendukung fasilitas &#8216;stealth&#8217; terhadap operasi file yang sering digunakan dalam DOS. </li>
<li>17h (Rename File Using FCB), dimanfaatkan untuk menyerang file/program yang diganti namanya. </li>
<li>11h (Search First/FCB), 12h (Search Next/FCB), untuk menyembunyikan perubahan besar file. Biasa digunakan perintah internal DOS &#8216;Dir&#8217;. </li>
</ul>
</td>
</tr>
</tbody>
</table>
<ul>
<li>Mulai menerapkan teknik enkripsi dan trik anti debugging yang mungkin dapat mempersulit mereka yang ingin membongkar virus ini. </li>
<li>Tampaknya tidak memiliki tampilan khusus, hanya kadang-kadang memberikan pesan “Moslem Power Never End.(P) KuSuMaH&#8217;s. ElEkTrO UnJaNi” bila virus gagal melakukan instalasi di memori. </li>
<li>Seperti umumnya virus file yang &#8216;stealth&#8217;, virus ini juga nampaknya mengecek dijalankannya program &#8216;CHKDSK&#8217; agar tidak memberikan hasil yang keliru. </li>
<li>Program SELAMAT.COM bila dijalankan akan menampilkan: &#8216;(P) KuSuMaH S, Elektro UNJANI Bdg-Cmh&#8217;. Parameter waktu turut diperhatikan dalam pembuatan file SELAMAT.COM. </li>
<li>Pada awal badan virus di file program terdapat string &#8216;KuSuMaH&#8217;S UnJaNi, Bandung&#8217;. </li>
</ul>
<h5>Kusumah.3968:</h5>
<p>Pada dasarnya sama dengan Kusumah.3967, hanya terdapat sedikit perbedaan. Walau begitu kedua virus ini saling tidak mengenal satu sama lain dengan baik, terbukti dengan saling bertumpuknya kedua virus bila diaktifkan secara berganti-ganti. Perbedaan utama:</p>
<ul>
<li>Menambah besar file sebesar 3968 byte. </li>
<li>Tidak terdapat string pengenal pada awal badan virus. </li>
</ul>
<p>Baik virus Kusumah.2588 maupun Kusumah.3016 terlihat banyak kemiripan dengan virus Keypressed. Sedangkan virus Kusumah.3967 dan Kusumah.3968 tampak banyak mengambil ide dari virus Die-hard (atau sebaliknya?). Keempat virus ini juga melakukan penyesuaian besar file asal hingga tepat per satuan paragraph (10h byte). Tampak jelas bahwa virus ini dibuat dari program berformat .COM, hal ini dapat dilihat dari pengaturan ofset program baik di file maupun di memori. </p>
<h3>Program Serum Virus </h3>
<p>Cara yang ampuh untuk membasmi virus ini yaitu dengan menggunakan program serum yang penulis sertakan. Program ANTIKSM.PAS dibuat dengan bahasa Pascal, dan dikompilasi dengan Turbo Pascal 6.0+. Sebaiknya Turbo Pascal 7.0 seperti yang penulis gunakan. Bila Anda menggunakan Borland Pascal 7.0, atur agar target kompiler ke modus real. </p>
<p>Secara garis besar program ini mempunyai dua prosedur untuk pembasmian virus Kusumah, yaitu: </p>
<ol>
<li><strong>PMem</strong>, mendeteksi keaktifan virus di memory. Virus Kusumah hanya dapat menyusup ke akhir memori konvensional (yang normal), dan bermasalah bila selain itu. Untuk melumpuhkannya cukup dengan mencari akhir dari memori 640K, dan melakukan pencarian terhadap identitas virus. Dilanjutkan dengan melakukan &#8216;patching&#8217; terhadap rutin-rutin virus di memory, sehingga jalur-jalur sistem yang dicegat dapat dikembalikan ke kondisi asalnya. Bila proses pelumpuhan ini gagal, maka program akan langsung berhenti, untuk mencegah penyebaran virus lebih lanjut. </li>
<li><strong>PDir</strong>, mendeteksi dan melenyapkan virus di file-file program pada direktori yang disebutkan lewat parameter. Pendeteksian meliputi seluruh program .EXE atau .COM. Bila diinginkan dapat dilakukan proses &#8216;scan&#8217; pada seluruh file, mengingat banyak file-file program yang termuat sebagai overlay atau driver sistem dengan bermacam ekstensi. Bila file positif terkena virus, maka akan segera dibersihkan dan dikembalikan seperti semula. Perhatian khusus bila file terserang lebih dari satu virus. Apabila virus Kusumah tidak berada pada lapisan terluar, maka program tidak mendeteksi adanya virus pada file tersebut. Hal ini sulit dicari jalan keluarnya, kecuali virus-virus yang masuk setelah Kusumah dibersihkan terlebih dahulu. </li>
</ol>
<p>Setelah listing program ANTIKSM.PAS tersedia, panggilah program Turbo Pascal dan buka listing tersebut. Bila dalam menu Compile tersedia pilihan Destination, pastikan untuk ditujukan ke Disk, agar terbentuk file ANTIKSM.EXE. Lalu lakukan proses Compile, Run, Make atau Build, sehingga tercipta file ANTIKSM.EXE yang siap untuk dijalankan. </p>
<p>Atau dapat pula Anda kompilasi langsung lewat program TPC.EXE, satu paket dengan Turbo Pascal, yaitu dengan mengetikkan:    <br /><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160; C:\&gt;TPC ANTIKSM      <br /></font>bila tidak ada kesalahan maka akan tercipta file ANTIKSM.EXE. </p>
<h3>Pemakaian Serum </h3>
<p>Untuk menjalankan program ANTIKSM, ketiklah di prompt DOS sebagai berikut:</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font face="Courier New" size="2">C:\&gt;ANTIKSM &lt;[dir1] [dir2]&#8230;&gt; [/S /A] </font></p>
<p><strong>[dir1] [dir2]&#8230;</strong>, maksudnya adalah direktori yang dituju bisa lebih dari satu direktori. Contoh:     <br /><font face="Courier New" size="2">&#160;&#160;&#160;&#160; C:\&gt;ANTIKSM C:\DOS D:\WINDOWS A:\ </font></p>
<p><strong>/S</strong>, maksudnya apabila terdapat sub direktori maka program akan masuk ke seluruh sub direktori yang ada. </p>
<p><strong>/A</strong>, artinya program tidak hanya memeriksa file-file yang berektensi .EXE atau .COM, namun seluruh file. </p>
<p>Ada baiknya sebelum menggunakan serum ini Anda cobakan dulu pada beberapa file untuk memastikan bahwa serum bekerja dengan baik. Juga perlu dipastikan bahwa memori dalam keadaan bebas virus (lain), agar proses berjalan sesuai yang diharapkan. </p>
<p>Penulis telah melakukan uji coba pembersihan terhadap bermacam-macam file, dan hasilnya berjalan dengan baik. Kesalahan pembersihan telah diusahakan seminim mungkin. Pada pemulihan file akibat infeksi virus Kusumah.2588 atau Kusumah.3016, besar file asal mungkin tidak kembali seperti semula. Hal ini akibat proses teknis dari kerja virus, dan sulit dicari cara untuk mengatasinya. Namun secara umum ini tidak menimbulkan efek apa-apa. </p>
<p>Dalam prosesnya program ini tidak mengharapkan input dari pemakai, kecuali lewat parameter. Jadi bila suatu operasi tulis file gagal, karena disket diprotek misalnya, proses terus berjalan dengan memberikan pesan kesalahan secara umum. Proses dapat diulang kembali bila kesalahan telah diperbaiki. Hal ini untuk menyederhanakan pembuatan program, sebab bisa dibilang hanya sedikit kesalahan yang dapat terjadi. </p>
<h3>Penutup</h3>
<p>Di era globalisasi ini tampaknya teknologi pervirusan, khususnya virus lokal, akan terus berkembang. Apalagi didukung program-program bantu yang memadai dan makin canggih. Ditambah pula banjirnya informasi, tentang apapun, yang dapat membuat efek tersendiri. </p>
<p>Tentang virus Kusumah ini tampaknya masih terus dikembangkan oleh pembuatnya. Tampak dari banyak versi yang dibuat oleh orang yang sama, namun dengan struktur dan teknik yang berbeda. Begitulah virus komputer, tantangan dan godaan seperti tidak ada habis-habisnya. Setidaknya, minumlah segelas air putih dan tarik nafas dalam-dalam. Pikiran jernih, itulah yang kita perlukan. </p>
<p>Akhirnya penulis berharap semoga program ini bermanfaat bagi pembaca sekalian. Komentar, saran, kritik, atau apapun silakan layangkan ke Antivirus Media untuk ditanggapi seperlunya. </p>
<h3>Daftar Pustaka </h3>
<ol>
<li>David Jurgens. HelpPC v2.10 (c)1991. </li>
<li>Ralf Brown. The MSDOS Interrupt List. </li>
<li>Ediman Lukito. Membongkar, Memberantas dan Mencegah Virus Komputer. </li>
</ol>
<h3>Listing Program</h3>
<pre><font face="Courier New"><font color="#008000">{***********************************************}</font>
<font color="#008000">{ File:      ANTIKSM.PAS =&gt; ANTIKSM.EXE         }</font>
<font color="#008000">{ Deskripsi: Anti Virus Kusumah                 }</font>
<font color="#008000">{ Kompiler:  Turbo Pascal 6.0+, Borland, Inc    }</font>
<font color="#008000">{ Utilitas:  Soft-ICE v2.64, Nu-Mega            }</font>
<font color="#008000">{ Penulis:   M. Harjono                         }</font>
<font color="#008000">{ Tanggal:   03 Juni 1997                       }</font>
<font color="#008000">{ Dedikasi:  * Pembaca AntiVirus Media          }</font>
<font color="#008000">{            * BL-TI-93                         }</font>
<font color="#008000">{ (c)1997 Antivirus Media                       }</font>
<font color="#008000">{***********************************************}</font>
<font color="#008000">{$S-,R-,G+,I+,X+,Q-,A+,B-}</font>
<font color="#008000">{$M 7505,0,0}</font>
<font color="#0000ff">program </font><font color="#000000">Anti_Kusumah</font><font color="#808000">;</font>

<font color="#0000ff">uses</font>
  <font color="#000000">Dos</font><font color="#808000">;</font>

<font color="#0000ff">type</font>
  <font color="#000000">R_Exe </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">MZ</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">_Mod</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">_Div</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">Rel</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">Hed</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">_M1</font><font color="#808000">,</font><font color="#000000">_M2</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">_SS</font><font color="#808000">,</font><font color="#000000">_SP</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">CkSum</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
    <font color="#000000">_IP</font><font color="#808000">,</font><font color="#000000">_CS</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_Com </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">Kod</font><font color="#808000">: </font><font color="#008080">byte</font><font color="#808000">;</font>
    <font color="#000000">JMP</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_Id </font><font color="#808000">= </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">6</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">byte</font><font color="#808000">;</font>
  <font color="#000000">R_PVir </font><font color="#808000">= </font><font color="#0000ff">function</font><font color="#808000">(</font><font color="#000000">Bs</font><font color="#808000">:</font><font color="#008080">word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufV</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">): </font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#000000">R_DVir </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">Lf</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;    </font><font color="#008000">{lok kode virus}</font>
    <font color="#000000">La</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;    </font><font color="#008000">{lok awal virus}</font>
    <font color="#000000">Lh</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;    </font><font color="#008000">{lok hdr asli}</font>
    <font color="#000000">Id</font><font color="#808000">: </font><font color="#000000">R_Id</font><font color="#808000">;       </font><font color="#008000">{Id vir}</font>
    <font color="#000000">Pr</font><font color="#808000">: </font><font color="#000000">R_PVir</font><font color="#808000">;     </font><font color="#008000">{rutin proses}</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_MVir </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">La</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;    </font><font color="#008000">{lok awal mem vir}</font>
    <font color="#000000">Lc</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;    </font><font color="#008000">{lok awal modif}</font>
    <font color="#000000">Kb</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;       </font><font color="#008000">{kode awal modif}</font>
    <font color="#000000">Kj</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;       </font><font color="#008000">{kode modif}</font>
    <font color="#000000">Id</font><font color="#808000">: </font><font color="#000000">R_Id</font><font color="#808000">;       </font><font color="#008000">{Id vir}</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">Exe </font><font color="#808000">= ^</font><font color="#000000">R_Exe</font><font color="#808000">;</font>
  <font color="#000000">Com </font><font color="#808000">= ^</font><font color="#000000">R_Com</font><font color="#808000">;</font>
  <font color="#000000">P_W </font><font color="#808000">= ^</font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#000000">P_L </font><font color="#808000">= ^</font><font color="#008080">longint</font><font color="#808000">;</font>

<font color="#0000ff">var</font>
  <font color="#000000">Lok_H</font><font color="#808000">: </font><font color="#008080">longint</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">MCBAkhir</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
<font color="#008000">{-- ambil MCB pertama --}</font>
  <font color="#000000">mov ah</font><font color="#808000">,</font><font color="#000000">52h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">bx</font><font color="#808000">-</font><font color="#000000">2</font><font color="#808000">]</font>
  <font color="#000000">cld</font>
<font color="#008000">{-- ambil dan set UMB link --}</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5802h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">jc </font><font color="#808000">@@</font><font color="#000000">U_1</font>
  <font color="#000000">push ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5803h</font>
  <font color="#0000ff">xor </font><font color="#000000">bx</font><font color="#808000">,</font><font color="#000000">bx</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">pop bx</font>
  <font color="#000000">jnc </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">U_1</font><font color="#808000">:</font>
  <font color="#000000">mov bl</font><font color="#808000">,-</font><font color="#000000">1</font>
<font color="#008000">{-- telusuri MCB --}</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#0000ff">xor </font><font color="#000000">si</font><font color="#808000">,</font><font color="#000000">si</font>
  <font color="#000000">SegES lodsb</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">5Ah</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">4Dh</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">stc</font>
  <font color="#000000">adc dx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">stc</font>
  <font color="#000000">adc dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">3</font><font color="#808000">]</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
<font color="#008000">{-- kembalikan UMB link --}</font>
  <font color="#000000">cmp bl</font><font color="#808000">,-</font><font color="#000000">1</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">U_O_2</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5803h</font>
  <font color="#000000">mov bh</font><font color="#808000">,</font><font color="#000000">0</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
<font color="#808000">@@</font><font color="#000000">U_O_2</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">SegIdMem</font><font color="#808000">(</font><font color="#000000">_Seg</font><font color="#808000">,</font><font color="#000000">Lok</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font><font color="#0000ff">var </font><font color="#000000">Id</font><font color="#808000">): </font><font color="#008080">word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">Id</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">_Seg</font>
  <font color="#0000ff">xor </font><font color="#000000">di</font><font color="#808000">,</font><font color="#000000">di</font>
  <font color="#000000">mov cx</font><font color="#808000">,$</font><font color="#000000">4000</font>
  <font color="#000000">cld</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">push cx</font>
  <font color="#000000">push si</font>
  <font color="#000000">push di</font>
  <font color="#ff0000">inc </font><font color="#000000">si</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Id</font><font color="#808000">-</font><font color="#000000">1</font>
  <font color="#000000">repz cmpsb</font>
  <font color="#000000">pop di</font>
  <font color="#000000">pop si</font>
  <font color="#000000">pop cx</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#ff0000">dec </font><font color="#000000">di</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">Lok</font>
  <font color="#000000">neg ax</font>
  <font color="#000000">sub di</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">xchg di</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">4</font>
  <font color="#0000ff">shr </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">cl</font>
  <font color="#000000">add ax</font><font color="#808000">,</font><font color="#000000">_Seg</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">3</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">CekId</font><font color="#808000">(</font><font color="#000000">P1</font><font color="#808000">,</font><font color="#000000">P2</font><font color="#808000">: </font><font color="#000000">pointer</font><font color="#808000">): </font><font color="#008080">boolean</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">P1</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">P2</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Id</font>
  <font color="#000000">cld</font>
  <font color="#000000">repz cmpsb</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">00</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">01</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{-- Bagian Pemulih di Memory --}</font>
<font color="#0000ff">const</font>
  <font color="#000000">PjDatM </font><font color="#808000">= </font><font color="#000000">4</font><font color="#808000">;</font>
  <font color="#000000">KusM </font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">PjDatM</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#000000">R_MVir </font><font color="#808000">=</font>
    <font color="#808000">((</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">8FA</font><font color="#808000">;</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">8CE</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">DBE8</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">72EB</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">75</font><font color="#808000">,$</font><font color="#000000">04</font><font color="#808000">,$</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">4B</font><font color="#808000">,$</font><font color="#000000">4A</font><font color="#808000">,$</font><font color="#000000">CF</font><font color="#808000">)),</font>
     <font color="#808000">(</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">A12</font><font color="#808000">;</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">9F8</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">4EE8</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">6CEB</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">75</font><font color="#808000">,$</font><font color="#000000">04</font><font color="#808000">,$</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">4B</font><font color="#808000">,$</font><font color="#000000">CF</font><font color="#808000">)),</font>
     <font color="#808000">(</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">76E</font><font color="#808000">;</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">75B</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">FB9C</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">A2EB</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">05</font><font color="#808000">,$</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">4B</font><font color="#808000">,$</font><font color="#000000">9D</font><font color="#808000">,$</font><font color="#000000">CF</font><font color="#808000">)),</font>
     <font color="#808000">(</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">75E</font><font color="#808000">;</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">74B</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">FB9C</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">A2EB</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">05</font><font color="#808000">,$</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">4B</font><font color="#808000">,$</font><font color="#000000">9D</font><font color="#808000">,$</font><font color="#000000">CF</font><font color="#808000">)));</font>

<font color="#0000ff">function </font><font color="#000000">PMem</font><font color="#808000">: </font><font color="#008080">shortint</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">_MCB</font><font color="#808000">,</font><font color="#000000">_Seg</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#000000">I</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">PMem </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">_MCB </font><font color="#808000">:= </font><font color="#000000">MCBAkhir</font><font color="#808000">;</font>
  <font color="#0000ff">for </font><font color="#000000">i </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">PjDatM </font><font color="#0000ff">do</font>
    <font color="#0000ff">with </font><font color="#000000">KusM</font><font color="#808000">[</font><font color="#000000">i</font><font color="#808000">] </font><font color="#0000ff">do</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">_Seg </font><font color="#808000">:= </font><font color="#000000">SegIdMem</font><font color="#808000">(</font><font color="#000000">_MCB</font><font color="#808000">,</font><font color="#000000">La</font><font color="#808000">,</font><font color="#000000">Id</font><font color="#808000">);</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">_Seg </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">MemW</font><font color="#808000">[</font><font color="#000000">_Seg</font><font color="#808000">:</font><font color="#000000">Lc</font><font color="#808000">]=</font><font color="#000000">Kb</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#000000">PMem </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
        <font color="#000000">MemW</font><font color="#808000">[</font><font color="#000000">_Seg</font><font color="#808000">:</font><font color="#000000">Lc</font><font color="#808000">] := </font><font color="#000000">Kj</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{-- Bagian Pemulih di File --}</font>
<font color="#008000">{$F+}</font>
<font color="#0000ff">function </font><font color="#000000">Kus1Com</font><font color="#808000">(</font><font color="#000000">Bs</font><font color="#808000">:</font><font color="#008080">word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufV</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">): </font><font color="#008080">word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">BufV</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufH</font>
  <font color="#000000">cmp Bs</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">E</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">repz movsb</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">U</font>
<font color="#808000">@@</font><font color="#000000">E</font><font color="#808000">:</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">Kus2Com</font><font color="#808000">(</font><font color="#000000">Bs</font><font color="#808000">:</font><font color="#008080">word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufV</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">): </font><font color="#008080">word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">BufV</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufH</font>
  <font color="#000000">cmp Bs</font><font color="#808000">,$</font><font color="#000000">70</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">E</font>
  <font color="#000000">mov cx</font><font color="#808000">,$</font><font color="#000000">70</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">repz movsb</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">U</font>
<font color="#808000">@@</font><font color="#000000">E</font><font color="#808000">:</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">Kus3Cxe</font><font color="#808000">(</font><font color="#000000">Bs</font><font color="#808000">:</font><font color="#008080">word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufV</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">): </font><font color="#008080">word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#000000">Bs</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufV</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">cld</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">E</font>
  <font color="#000000">cmp es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">cmp es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">+</font><font color="#000000">2</font><font color="#808000">],</font><font color="#000000">al</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">add di</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#000000">mov si</font><font color="#808000">,</font><font color="#000000">di</font>
<font color="#808000">@@</font><font color="#000000">4</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]   </font><font color="#008000">{dekrip header asli}</font>
  <font color="#0000ff">xor </font><font color="#000000">al</font><font color="#808000">,$</font><font color="#000000">FD</font>
  <font color="#000000">stosb</font>
  <font color="#000000">loop </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">Lok_H</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">Lok_H</font><font color="#808000">+</font><font color="#000000">2</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">push es</font>
  <font color="#000000">pop ds</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufH</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Exe</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">cmp ax</font><font color="#808000">,$</font><font color="#000000">5A4D</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">cmp ax</font><font color="#808000">,$</font><font color="#000000">4D5A</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Com</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">repz movsb</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">U</font>
<font color="#808000">@@</font><font color="#000000">E</font><font color="#808000">:</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">Kus1Exe</font><font color="#808000">(</font><font color="#000000">Bs</font><font color="#808000">:</font><font color="#008080">word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufV</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">): </font><font color="#008080">word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">BufV</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufH</font>
  <font color="#000000">cmp Bs</font><font color="#808000">,</font><font color="#000000">8</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">E</font>
  <font color="#000000">cld</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_SS</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_SP</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_CS</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_IP</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Exe</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">U</font>
<font color="#808000">@@</font><font color="#000000">E</font><font color="#808000">:</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
<font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#008000">{$F-}</font>

<font color="#0000ff">const</font>
  <font color="#000000">PjDatV </font><font color="#808000">= </font><font color="#000000">8</font><font color="#808000">;</font>
  <font color="#000000">KusV</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">PjDatV</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#000000">R_DVir </font><font color="#808000">=</font>
    <font color="#808000">((</font><font color="#000000">Lf</font><font color="#808000">:-</font><font color="#000000">3</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">2A8</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">A19</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">E2</font><font color="#808000">,$</font><font color="#000000">F7</font><font color="#808000">,$</font><font color="#000000">C3</font><font color="#808000">,$</font><font color="#000000">E8</font><font color="#808000">,$</font><font color="#000000">00</font><font color="#808000">,$</font><font color="#000000">00</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus1Com</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:-</font><font color="#000000">3</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">31A</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">B58</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">78</font><font color="#808000">,$</font><font color="#000000">52</font><font color="#808000">,$</font><font color="#000000">45</font><font color="#808000">,$</font><font color="#000000">E8</font><font color="#808000">,$</font><font color="#000000">00</font><font color="#808000">,$</font><font color="#000000">00</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus2Com</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:+</font><font color="#000000">9</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">11B</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">F36</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">01</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">CB</font><font color="#808000">,$</font><font color="#000000">A1</font><font color="#808000">,$</font><font color="#000000">A0</font><font color="#808000">,$</font><font color="#000000">10</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus3Cxe</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:+</font><font color="#000000">9</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">100</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">F37</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">01</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">CB</font><font color="#808000">,$</font><font color="#000000">A1</font><font color="#808000">,$</font><font color="#000000">A1</font><font color="#808000">,$</font><font color="#000000">10</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus3Cxe</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:+</font><font color="#000000">6</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">74E</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">107</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">FE</font><font color="#808000">,$</font><font color="#000000">FF</font><font color="#808000">,$</font><font color="#000000">CD</font><font color="#808000">,$</font><font color="#000000">21</font><font color="#808000">,$</font><font color="#000000">3D</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus1Exe</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:+</font><font color="#000000">12</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">8B7</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">42D</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">FF</font><font color="#808000">,$</font><font color="#000000">FF</font><font color="#808000">,$</font><font color="#000000">CD</font><font color="#808000">,$</font><font color="#000000">21</font><font color="#808000">,$</font><font color="#000000">3D</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus1Exe</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:+</font><font color="#000000">5</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">11C</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">105E</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">3B</font><font color="#808000">,$</font><font color="#000000">02</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">33</font><font color="#808000">,$</font><font color="#000000">DB</font><font color="#808000">,$</font><font color="#000000">C3</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus3Cxe</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lf</font><font color="#808000">:+</font><font color="#000000">5</font><font color="#808000">;</font><font color="#000000">La</font><font color="#808000">:-$</font><font color="#000000">101</font><font color="#808000">;</font><font color="#000000">Lh</font><font color="#808000">:$</font><font color="#000000">105F</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">2B</font><font color="#808000">,$</font><font color="#000000">02</font><font color="#808000">,$</font><font color="#000000">53</font><font color="#808000">,$</font><font color="#000000">33</font><font color="#808000">,$</font><font color="#000000">DB</font><font color="#808000">,$</font><font color="#000000">C3</font><font color="#808000">);</font><font color="#000000">Pr</font><font color="#808000">:</font><font color="#000000">Kus3Cxe</font><font color="#808000">));</font>

<font color="#0000ff">function </font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">NmF</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">): </font><font color="#008080">shortint</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">F1</font><font color="#808000">: </font><font color="#0000ff">file</font><font color="#808000">;</font>
  <font color="#000000">Buf</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">..$</font><font color="#000000">FF</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">byte</font><font color="#808000">;</font>
  <font color="#000000">Dapet</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#000000">Lok_V</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">: </font><font color="#008080">longint</font><font color="#808000">;</font>
  <font color="#000000">I</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;</font>
  <font color="#000000">_Exe</font><font color="#808000">: </font><font color="#008080">byte</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#008000">{$I-}</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#ff0000">Assign</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">NmF</font><font color="#808000">);</font>
  <font color="#000000">FileMode </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#ff0000">Reset</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">1</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">IOResult </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">),</font><font color="#000000">Dapet</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Dapet</font><font color="#808000">&lt;&gt;</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">)) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Exe</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">)^.</font><font color="#000000">MZ </font><font color="#808000">= $</font><font color="#000000">4D5A</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">Exe</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">)^.</font><font color="#000000">MZ </font><font color="#808000">= $</font><font color="#000000">5A4D</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#000000">_Exe </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
    <font color="#0000ff">with </font><font color="#000000">Exe</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">)^ </font><font color="#0000ff">do</font>
      <font color="#000000">Lok_V </font><font color="#808000">:= </font><font color="#008080">longint</font><font color="#808000">(</font><font color="#000000">hed</font><font color="#808000">+</font><font color="#000000">_cs</font><font color="#808000">)*$</font><font color="#000000">10 </font><font color="#808000">+ </font><font color="#000000">_ip </font><font color="#808000">- </font><font color="#000000">100</font><font color="#808000">;</font>
  <font color="#0000ff">end</font>
  <font color="#0000ff">else</font>
  <font color="#0000ff">begin</font>
    <font color="#000000">_Exe </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
    <font color="#0000ff">with </font><font color="#000000">Com</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">)^ </font><font color="#0000ff">do</font>
      <font color="#000000">Lok_V </font><font color="#808000">:= </font><font color="#000000">JMP </font><font color="#808000">+ </font><font color="#000000">3 </font><font color="#808000">- </font><font color="#000000">100</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Lok_V</font><font color="#808000">);</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">));</font>
  <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
  <font color="#0000ff">while not </font><font color="#000000">CekId</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">[</font><font color="#000000">KusV</font><font color="#808000">[</font><font color="#000000">i</font><font color="#808000">].</font><font color="#000000">Lf</font><font color="#808000">+</font><font color="#000000">100</font><font color="#808000">],@</font><font color="#000000">KusV</font><font color="#808000">[</font><font color="#000000">i</font><font color="#808000">].</font><font color="#000000">Id</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">I </font><font color="#808000">&lt;= </font><font color="#000000">PjDatV</font><font color="#808000">) </font><font color="#0000ff">do</font>
    <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">I </font><font color="#808000">&lt;= </font><font color="#000000">PjDatV</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#008000">{-- positif bervirus --}</font>
    <font color="#000000">PulihFile </font><font color="#808000">:= -</font><font color="#000000">1</font><font color="#808000">;</font>
    <font color="#000000">GetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">ReadOnly </font><font color="#808000">= </font><font color="#000000">ReadOnly</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#000000">SetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr </font><font color="#0000ff">and not</font><font color="#808000">(</font><font color="#000000">ReadOnly</font><font color="#808000">));</font>
    <font color="#000000">FileMode </font><font color="#808000">:= </font><font color="#000000">2</font><font color="#808000">;</font>
    <font color="#ff0000">Reset</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">1</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">IOResult </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">Exit</font><font color="#808000">;</font>
    <font color="#000000">GetFTime</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">);</font>
    <font color="#000000">Lok_H </font><font color="#808000">:= </font><font color="#000000">Lok_V</font><font color="#808000">+</font><font color="#000000">100</font><font color="#808000">+</font><font color="#000000">KusV</font><font color="#808000">[</font><font color="#000000">i</font><font color="#808000">].</font><font color="#000000">La</font><font color="#808000">;</font>
    <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Lok_H</font><font color="#808000">+</font><font color="#000000">KusV</font><font color="#808000">[</font><font color="#000000">i</font><font color="#808000">].</font><font color="#000000">Lh</font><font color="#808000">);</font>
    <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">),</font><font color="#000000">Dapet</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">_Exe</font><font color="#808000">=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">);</font>
      <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">));</font>
      <font color="#0000ff">with </font><font color="#000000">Exe</font><font color="#808000">(@</font><font color="#000000">BufH</font><font color="#808000">)^ </font><font color="#0000ff">do</font>
      <font color="#0000ff">begin</font>
        <font color="#000000">_Mod </font><font color="#808000">:= </font><font color="#000000">Lok_H </font><font color="#0000ff">mod </font><font color="#000000">512</font><font color="#808000">;</font>
        <font color="#000000">_Div </font><font color="#808000">:= (</font><font color="#000000">Lok_H </font><font color="#0000ff">div </font><font color="#000000">512</font><font color="#808000">);</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">_Mod </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">_Div</font><font color="#808000">);</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">);</font>
    <font color="#ff0000">BlockWrite</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">,</font><font color="#000000">KusV</font><font color="#808000">[</font><font color="#000000">i</font><font color="#808000">].</font><font color="#000000">Pr</font><font color="#808000">(</font><font color="#000000">Dapet</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">),</font><font color="#000000">Dapet</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Dapet</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#ff0000">IOResult </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
      <font color="#0000ff">Exit</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Lok_H</font><font color="#808000">);</font>
    <font color="#ff0000">Truncate</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
    <font color="#000000">SetFTime</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">);</font>
    <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">IOResult </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">Exit</font><font color="#808000">;</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">ReadOnly </font><font color="#808000">= </font><font color="#000000">ReadOnly</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#000000">SetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">);</font>
    <font color="#000000">PulihFile </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">InOutRes </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#008000">{$I+}</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">const</font>
  <font color="#000000">Par_Tidak</font><font color="#808000">: </font><font color="#0000ff">set of </font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">15 </font><font color="#808000">= [];</font>
  <font color="#000000">SubDir</font><font color="#808000">: </font><font color="#008080">boolean </font><font color="#808000">= </font><font color="#0000ff">false</font><font color="#808000">;</font>
  <font color="#000000">Semua</font><font color="#808000">: </font><font color="#008080">boolean </font><font color="#808000">= </font><font color="#0000ff">false</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">Kena</font><font color="#808000">,</font><font color="#000000">Proses</font><font color="#808000">,</font><font color="#000000">NSubDir</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>

<font color="#008000">{$S+}</font>
<font color="#0000ff">procedure </font><font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">: </font><font color="#000000">PathStr</font><font color="#808000">);</font>
<font color="#0000ff">var</font>
  <font color="#000000">SR</font><font color="#808000">: </font><font color="#000000">SearchRec</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">NSubDir</font><font color="#808000">);</font>
  <font color="#000000">FindFirst</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#ff00ff">'*.*'</font><font color="#808000">,</font><font color="#000000">anyfile</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">);</font>
  <font color="#0000ff">while </font><font color="#000000">DosError </font><font color="#808000">= </font><font color="#000000">0 </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">] &lt;&gt; </font><font color="#ff00ff">'.'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">VolumeID </font><font color="#808000">&lt;&gt; </font><font color="#000000">VolumeID</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">Directory </font><font color="#808000">= </font><font color="#000000">Directory</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#000000">SubDir </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">WriteLn</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Periksa '</font><font color="#808000">,</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">10</font><font color="#808000">);</font>
          <font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">+</font><font color="#ff00ff">'\'</font><font color="#808000">);</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#0000ff">end</font>
      <font color="#0000ff">else</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#000000">Semua </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#ff0000">pos</font><font color="#808000">(</font><font color="#ff00ff">'.EXE'</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">) &lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#ff0000">pos</font><font color="#808000">(</font><font color="#ff00ff">'.COM'</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">) &lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Proses</font><font color="#808000">);</font>
          <font color="#ff0000">Write</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">:</font><font color="#000000">14</font><font color="#808000">);</font>
          <font color="#0000ff">case </font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">) </font><font color="#0000ff">of</font>
             <font color="#000000">1</font><font color="#808000">:</font>
            <font color="#0000ff">begin</font>
              <font color="#ff0000">WriteLn</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi, dipulihkan]'</font><font color="#808000">);</font>
              <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
              <font color="#0000ff">while </font><font color="#808000">(</font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">)=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">do</font><font color="#808000">;</font>
            <font color="#0000ff">end</font><font color="#808000">;</font>
            <font color="#808000">-</font><font color="#000000">1</font><font color="#808000">:</font>
            <font color="#0000ff">begin</font>
              <font color="#ff0000">WriteLn</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi, gagal dipulihkan]'</font><font color="#808000">);</font>
              <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
            <font color="#0000ff">end</font><font color="#808000">;</font>
          <font color="#0000ff">end</font><font color="#808000">;</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#000000">FindNext</font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">);</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#008000">{$S-}</font>

<font color="#0000ff">procedure </font><font color="#000000">IntNull</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">03</font>
  <font color="#000000">iret</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">var</font>
  <font color="#000000">Par</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">[</font><font color="#000000">128</font><font color="#808000">];</font>
  <font color="#000000">I</font><font color="#808000">,</font><font color="#000000">P</font><font color="#808000">: </font><font color="#008080">integer</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#ff0000">WriteLn</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' Anti Virus Kusumah  v1.00'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' Dibuat oleh M. Harjono'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' (c)1997 Antivirus Media'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">);</font>
  <font color="#000000">P </font><font color="#808000">:= </font><font color="#ff0000">ParamCount</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">P </font><font color="#808000">= </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#ff0000">WriteLn</font><font color="#808000">(</font><font color="#ff00ff">'Sintak: ANTIKSM &lt;[dir1] [dir2]...&gt; [/S /A]'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /S = Masuk Sub Direktori'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /A = Semua File'</font><font color="#808000">);</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- init rutin pemulih --}</font>
<font color="#008000">{ KusV[1].Pr := Kus1Com;</font>
<font color="#008000">  KusV[2].Pr := Kus2Com;</font>
<font color="#008000">  KusV[3].Pr := Kus3Cxe;</font>
<font color="#008000">  KusV[4].Pr := Kus3Cxe;</font>
<font color="#008000">  KusV[5].Pr := Kus1Exe;</font>
<font color="#008000">  KusV[6].Pr := Kus1Exe;</font>
<font color="#008000">  KusV[7].Pr := Kus3Cxe;</font>
<font color="#008000">  KusV[8].Pr := Kus3Cxe;</font>
<font color="#008000">  {-- periksa memori --}</font>
  <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'Cek Memori.... '</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">PMem</font><font color="#808000">=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#ff0000">WriteLn</font><font color="#808000">(</font><font color="#ff00ff">'[virus aktif, dilumpuhkan]'</font><font color="#808000">)</font>
  <font color="#0000ff">else</font>
    <font color="#ff0000">WriteLn</font><font color="#808000">(</font><font color="#ff00ff">'[ok]'</font><font color="#808000">);</font>
  <font color="#008000">{-- olah parameter --}</font>
  <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">P </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#000000">Par </font><font color="#808000">:= </font><font color="#ff0000">ParamStr</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)=</font><font color="#000000">2</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">]=</font><font color="#ff00ff">'/'</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">case </font><font color="#ff0000">UpCase</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">2</font><font color="#808000">]) </font><font color="#0000ff">of</font>
        <font color="#ff00ff">'S'</font><font color="#808000">: </font><font color="#000000">SubDir </font><font color="#808000">:= </font><font color="#0000ff">true</font><font color="#808000">;</font>
        <font color="#ff00ff">'A'</font><font color="#808000">: </font><font color="#000000">Semua </font><font color="#808000">:= </font><font color="#0000ff">true</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#000000">Par_Tidak </font><font color="#808000">:= </font><font color="#000000">Par_Tidak </font><font color="#808000">+ [</font><font color="#000000">I</font><font color="#808000">];</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- init program --}</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">1B</font><font color="#808000">,@</font><font color="#000000">IntNull</font><font color="#808000">);</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">23</font><font color="#808000">,@</font><font color="#000000">IntNull</font><font color="#808000">);</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">24</font><font color="#808000">,@</font><font color="#000000">IntNull</font><font color="#808000">);</font>
  <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">Proses </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">NSubDir </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#008000">{-- periksa file --}</font>
  <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">P </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if not </font><font color="#808000">(</font><font color="#000000">I </font><font color="#0000ff">in </font><font color="#000000">Par_Tidak</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">Par </font><font color="#808000">:= </font><font color="#ff0000">ParamStr</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)] &lt;&gt; </font><font color="#ff00ff">':'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)] &lt;&gt; </font><font color="#ff00ff">'\'</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#000000">Par </font><font color="#808000">:= </font><font color="#000000">Par </font><font color="#808000">+ </font><font color="#ff00ff">'\'</font><font color="#808000">;</font>
      <font color="#ff0000">WriteLn</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Periksa '</font><font color="#808000">,</font><font color="#000000">Par</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">10</font><font color="#808000">);</font>
      <font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#ff0000">WriteLn</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Hasil:        '</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  Direktori = '</font><font color="#808000">,</font><font color="#000000">NSubDir</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  File      = '</font><font color="#808000">,</font><font color="#000000">Proses</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  Terkena   = '</font><font color="#808000">,</font><font color="#000000">Kena</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">);</font>
<font color="#0000ff">end</font><font color="#808000">.</font>
</font></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/653/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=653&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2011/08/20/serum-virus-kusumah/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>
	</item>
		<item>
		<title>Anti Virus Spanska.4250</title>
		<link>http://oguds.wordpress.com/2011/08/19/anti-virus-spanska-4250/</link>
		<comments>http://oguds.wordpress.com/2011/08/19/anti-virus-spanska-4250/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 11:22:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Nostalgia]]></category>
		<category><![CDATA[virus komputer]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2011/08/19/anti-virus-spanska-4250/</guid>
		<description><![CDATA[&#8216;Say it with flowers&#8217;, demikian ungkapan entah dari mana. Namun di era teknologi informasi sekarang ini, hacker yang iseng punya ungkapan tersendiri: &#8216;Say it with virus!&#8217;. Virus berisi 4250 byte kode ini termasuk virus yang sederhana dan jinak. Tugas intinya hanya untuk menginfeksi file Exe/Com yang akan dijalankan. Ada kemampuan tambahan yang memberikan nilai tambah [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=650&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8216;Say it with flowers&#8217;, demikian ungkapan entah dari mana. Namun di era teknologi informasi sekarang ini, hacker yang iseng punya ungkapan tersendiri: &#8216;Say it with virus!&#8217;.</p>
<p><span id="more-650"></span>
<p>Virus berisi 4250 byte kode ini termasuk virus yang sederhana dan jinak. Tugas intinya hanya untuk menginfeksi file Exe/Com yang akan dijalankan. Ada kemampuan tambahan yang memberikan nilai tambah pada virus ini, yaitu rutin pengacak kode (polimorfik) dan (sepertinya) rutin anti heuristik. Sayangnya teknik pemrograman yang digunakan sangat mudah dibaca, sehingga upaya untuk mempersulit pembuatan serum tampaknya sia-sia. Pada waktu-waktu tertentu, menit=30 dan detik&lt;15, virus ini menampilkan efek video berupa tampilan berbahasa Perancis dalam mode grafik. Sesuai nama pembuatnya, kita sebut saja virus ini dengan nama Spanska.4250. </p>
<h3>Instalasi dan Pencegatan </h3>
<p>Pada saat pertama aktif virus ini membuka kunci sandinya (dekrip) lewat rutin yang dapat berubah-ubah bentuk (polimorfik). Setelah seluruh kode virus kembali ke bentuk aslinya, virus lalu mengecek kehadirannya di memori lewat fungsi AX=6969h Int 21h, dan bila menghasilkan BX=6969h berarti virus telah aktif dan rutin instalasi tidak dilanjutkan. Selanjutnya virus memodifikasi alokasi memori, memindahkan tubuhnya ke sana, dan membelokkan vektor DOS ke rutin manipulasinya. Lalu virus berusaha mencari file WIN.COM pada direktori WINDOWS, dan bila ditemukan maka file ini akan langsung diinfeksi. Pada akhir proses dilakukan pengecekan terhadap waktu sistem, yang bila sesuai maka virus ini akan melaksanakan rutin efeknya. Setelah semuanya beres maka virus melompat ke awal rutin asli program dan program berjalan seperti semula. </p>
<p>Dalam fungsi DOS virus ini melakukan beberapa cegatan: </p>
<ul>
<li><strong>11h</strong> (Search First using FCB), <strong>12h</strong> (Search Next using FCB), fungsi yang biasa digunakan oleh instruksi internal DOS, DIR, dimanipulasi agar seakan-akan file yang terinfeksi tidak berubah ukurannya. Virus ini menggunakan tanda detik=30 untuk menentukan apakah suatu file telah terinfeksi, yang tentu saja tidak selalu benar. Selain itu fungsi ini juga telah usang (obsolete), dan mulai dari Windows 95 sudah tidak digunakan lagi. </li>
<li><strong>4B00h</strong> (Load and Execute Program), dimanipulasi untuk menularkan file Exe/Com yang akan dijalankan. Ada kecenderungan virus ini hanya menulari file yang berekstensi hanya Exe atau Com saja, dan tidak untuk ekstensi yang lain. Setiap kali menginfeksi virus ini selalu melakukan pengecekan tanggal dan melakukan proses acak lewat acuan tanggal tersebut. Juga virus ini mengecek apakah file yang akan dijalankan sejenis &#8216;New Executable&#8217;, program-program Windows atau OS/2, dan menolak untuk menginfeksi bila ya. Dan untuk mencegah agar infeksinya menimbulkan kecurigaan, virus ini juga menolak menginfeksi file-file program yang diawali huruf berikut: TB, VI, AV, NA, VS, FI, F-, FV, IV, DR, SC, GU, CO, dan memberi perlakuan khusus terhadap program berawalan PK, AR, RA, LH, dan BA. </li>
<li><strong>6969h</strong>, menghasilkan BX = 6969h, sebagai tanda virus telah aktif di memori. </li>
</ul>
<h3>Rutin Polimorfik </h3>
<p>Pada virus Spanska.4250 ini mempunyai kemampuan untuk berubah-ubah bentuk. Untuk keperluan ini virus telah dilengkapi dengan kombinasi beberapa rutin dengan proses kerja yang sama namun dengan kode instruksi yang berbeda-beda. Dengan memecah proses pembuka sandi ke beberapa bagian, dan tiap bagian memiliki beberapa kemungkinan, menghasilkan kode program yang dapat berbeda-beda pada tiap kali infeksi. </p>
<p>Rutin intinya sbb: </p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400">
<p><font face="Courier New" size="2">sub_6&#160;&#160; proc&#160;&#160; near              <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; push&#160;&#160; bx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; push&#160;&#160; dx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; push&#160;&#160; cx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xchg&#160;&#160; bx,ax               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; ah,2Ah               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; int&#160;&#160;&#160; 21h&#160;&#160;&#160;&#160;&#160;&#160;&#160; ;fungsi DOS ambil tanggal               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xchg&#160;&#160; dx,ax&#160;&#160;&#160;&#160;&#160; ;dh=tanggal, dl=hari               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xor&#160;&#160;&#160; ax,0FFFFh               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xor&#160;&#160;&#160; dx,dx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; div&#160;&#160;&#160; bx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xchg&#160;&#160; dx,ax               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; pop&#160;&#160;&#160; cx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; pop&#160;&#160;&#160; dx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; pop&#160;&#160;&#160; bx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; retn               <br />sub_6&#160;&#160; endp </font></p>
<p><font face="Courier New" size="2">sub_7&#160;&#160; proc&#160;&#160;&#160; near              <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; call&#160;&#160; sub_6               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; cx,bx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mul&#160;&#160;&#160; bx               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; add&#160;&#160;&#160; si,ax               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; rep&#160;&#160;&#160; movsb               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; retn               <br />sub_7&#160;&#160; endp </font></p>
<p><font face="Courier New" size="2">loc_xx:              <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; . . .               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; . . .               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; lea&#160;&#160;&#160; si,cs:[0EC5h][bp]&#160;&#160; ;pustaka instruksi               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; lea&#160;&#160;&#160; di,cs:[170h][bp]&#160;&#160;&#160; ;lokasi hasil acak               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; ax,8&#160;&#160;&#160;&#160;&#160; ;kemungkinan acak               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; bx,0Ah&#160;&#160;&#160; ;panjang rutin tiap bagian&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; call&#160;&#160; sub_7&#160;&#160;&#160;&#160; ;proses               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; lea&#160;&#160;&#160; si,cs:[0F15h][bp]               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; lea&#160;&#160;&#160; di,cs:[17Ah][bp]               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; ax,9               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; bx,4               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; call&#160;&#160; sub_7               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; . . .               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; . . .</font> </p>
</td>
</tr>
</tbody>
</table>
<p>Kelemahan utama dari cara ini adalah lokasi instruksi tetap untuk tiap-tiap bagian. Akibatnya tentu panjang rutin, walaupun isinya berubah-ubah, adalah tetap, yang mengakibatkan awal kode tersandi juga tetap. Apalagi dengan metode penyandian yang sangat sederhana, terdiri dari 6 kemungkinan: NEG, NOT, DEC, ROR, SUB, dan XOR, membuat cara untuk membuka sandinya juga sangat mudah. Kita cukup membaca awal kode tersandi, pada virus ini mulai alamat 0087h, dan lakukan operasi terbalik terhadap 6 kemungkinan di atas, yaitu: NEG, NOT, INC, ROL, ADD dan XOR. Tiap-tiap operasi dibandingkan terhadap rutin yang tidak tersandi. Bila sesuai maka metode itulah yang digunakan untuk menyandi seluruh tubuh virus. Parameter sandi, yang acak menurut tanggal, diletakkan virus pada akhir file, atau alamat relatif 1099h. </p>
<h3>Teknik Anti Heuristik</h3>
<p>Pada beberapa program anti virus dikenal teknik heuristik, yang tujuannya untuk mengenali serangkaian kode pada suatu program terhadap operasi yang mencurigakan. Ada beberapa kesamaan proses pada kebanyakan virus, yang umumnya tidak dijumpai pada program/pemrograman yang normal. Dengan mengenali keanehan tersebut, suatu&#160; program dapat dicurigai terserang suatu virus, walaupun virus tersebut tidak dikenal. </p>
<p>Melihat beberapa rutinnya, tampaknya virus Spanska.4250 ini berupaya untuk mengelabui teknik heuristik tersebut. Tampak dari beberapa instruksi yang bisa dikatakan aneh. Misalnya untuk membelokkan vektor interupsi DOS (21h), virus ini melakukan cara sbb: </p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400"><font face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160; </font><font face="Courier New"><font size="2">&#160; mov&#160;&#160;&#160; dx,12Dh&#160;&#160;&#160;&#160;&#160;&#160; ;alamat rutin manipulasi              <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; push&#160;&#160; ax               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; push&#160;&#160; bp               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; bp,sp               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; mov&#160;&#160;&#160; word ptr [bp+2],2522h&#160; ;fungsi 25h               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; pop&#160;&#160;&#160; bp               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; pop&#160;&#160;&#160; ax               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; dec&#160;&#160;&#160; ax&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ;vektor 21h               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; int&#160;&#160;&#160; 21h</font> </font></td>
</tr>
</tbody>
</table>
<p>Walaupun dengan penelusuran tubuh virus ini secara manual, cara kerja virus dapat diketahui dengan mudah. Tampaknya proses konversi dari instruksi yang normal ke bentuk anti heuristik dilakukan lewat suatu makro, fasilitas dalam bahasa assembly, yang mengakibatkan banyak terjadi perulangan instruksi hingga besar virus jadi membengkak. Untuk ukuran 4250 pada program virus yang biasa, ini bisa berupa suatu virus kompleks dengan kemampuan stealth (siluman) yang canggih.</p>
<h3>Program Serum Virus</h3>
<p>Bagi Anda yang berminat untuk mempelajari cara membuat program serum untuk virus ini, penulis telah menyertakan listing programnya. Program ditulis dengan bahasa Turbo Pascal versi 6.0+ pada mode real. Cara kerja maupun petunjuk pemakaian program dapat Anda pelajari dari listing tersebut. Sebenarnya listing ini hanya modifikasi dari program serum virus file buatan penulis, yang telah disesuaikan khusus untuk memberantas virus Spanska.4250. </p>
<h3>Penutup</h3>
<p>Melihat cara kerja dan rutin prosesnya, bolehlah virus ini masuk kategori sederhana. Namun ada satu hal yang membuat penulis salut, efek videonya. Tampilannya cukup menarik dan terkesan profesional. Untuk ukuran 4250 efek ini bisa dibilang cukup mengesankan. </p>
<blockquote><p>Reviens. Respire. Puis repars. J&#8217;aime ton mouvement. Bruja con ojos verdes Eres un grito de vida, un canto de libertad. (eh, apa sih artinya?) </p>
</blockquote>
<p>Akhirnya penulis berharap semoga program ini bermanfaat bagi pembaca sekalian. Komentar, saran, kritik, atau apapun silakan layangkan ke Antivirus Media untuk ditanggapi seperlunya.</p>
<h3>Listing Program</h3>
<pre><font face="Courier New"><font color="#008000">{$S-,R-,I+,G+,X+,A+,B-}</font>
<font color="#008000">{$M 7505,0,0}</font>
<font color="#008000">{***********************************************}</font>
<font color="#008000">{ File:      ANTISPAN.PAS =&gt; ANTISPAN.EXE       }</font>
<font color="#008000">{ Deskripsi: Anti Virus Spanska.4250            }</font>
<font color="#008000">{ Kompiler:  Turbo Pascal 6.0+, Borland, Inc    }</font>
<font color="#008000">{ Utilitas:  Debug.Exe, Microsoft, Corp         }</font>
<font color="#008000">{ Penulis:   M. Harjono                         }</font>
<font color="#008000">{ Tanggal:   27 Oktober 1997                    }</font>
<font color="#008000">{ Dedikasi:  * Pembaca Antivirus Media          }</font>
<font color="#008000">{            * BL-TI-93                         }</font>
<font color="#008000">{ (c)1997 Antivirus Media                       }</font>
<font color="#008000">{***********************************************}</font>

<font color="#0000ff">program </font><font color="#000000">Anti_Virus_Spanska</font><font color="#808000">;</font>
<font color="#0000ff">uses</font>
  <font color="#000000">Dos</font><font color="#808000">;</font>
<font color="#0000ff">type</font>
  <font color="#000000">R_Hdr </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#0000ff">case </font><font color="#008080">Byte </font><font color="#0000ff">of</font>
    <font color="#000000">1</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </font><font color="#000000">Kod</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
      <font color="#000000">JMP</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
      <font color="#000000">KodInfek</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">);</font>
    <font color="#000000">2</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </font><font color="#000000">MZ</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">_Mod</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">_Div</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">Rel</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">Hed</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">_M1</font><font color="#808000">,</font><font color="#000000">_M2</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">_SS</font><font color="#808000">,</font><font color="#000000">_SP</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">CkSum</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
      <font color="#000000">_IP</font><font color="#808000">,</font><font color="#000000">_CS</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">);</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_Pch </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">Lc</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Kb</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Kj</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">const</font>
  <font color="#000000">BnPch </font><font color="#808000">= </font><font color="#000000">1</font><font color="#808000">;</font>
  <font color="#000000">SpanJ</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">BnPch</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#000000">R_Pch </font><font color="#808000">=</font>
    <font color="#808000">((</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">012D</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">802E</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">26EB</font><font color="#808000">));</font>
  <font color="#000000">Par_Tidak</font><font color="#808000">: </font><font color="#0000ff">set of </font><font color="#000000">0</font><font color="#808000">..</font><font color="#000000">15 </font><font color="#808000">= [];</font>
  <font color="#000000">Pil</font><font color="#808000">: </font><font color="#0000ff">set of </font><font color="#000000">0</font><font color="#808000">..</font><font color="#000000">7 </font><font color="#808000">= [];</font>
  <font color="#000000">BnExt </font><font color="#808000">= </font><font color="#000000">5</font><font color="#808000">;</font>
  <font color="#000000">DaftExt</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">BnExt</font><font color="#808000">*</font><font color="#000000">3</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Char </font><font color="#808000">=</font>
    <font color="#ff00ff">'EXECOMBINOVROVL'</font><font color="#808000">;</font>
  <font color="#000000">MulaiDekrip </font><font color="#808000">= $</font><font color="#000000">0087</font><font color="#808000">;</font>
  <font color="#000000">ParDekrip   </font><font color="#808000">= $</font><font color="#000000">1099</font><font color="#808000">;</font>
  <font color="#000000">LokHdrAsli  </font><font color="#808000">= $</font><font color="#000000">04A0</font><font color="#808000">;</font>
  <font color="#000000">KodeVirus</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">8</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Byte </font><font color="#808000">=</font>
    <font color="#808000">($</font><font color="#000000">1F</font><font color="#808000">,$</font><font color="#000000">07</font><font color="#808000">,$</font><font color="#000000">06</font><font color="#808000">,$</font><font color="#000000">1E</font><font color="#808000">,$</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">69</font><font color="#808000">,$</font><font color="#000000">69</font><font color="#808000">,$</font><font color="#000000">CD</font><font color="#808000">);</font>
  <font color="#000000">OpsDek</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">..</font><font color="#000000">5</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Word </font><font color="#808000">=</font>
    <font color="#808000">($</font><font color="#000000">D8F6</font><font color="#808000">,$</font><font color="#000000">D0F6</font><font color="#808000">,$</font><font color="#000000">C0FE</font><font color="#808000">,$</font><font color="#000000">C0D0</font><font color="#808000">,$</font><font color="#000000">D000</font><font color="#808000">,$</font><font color="#000000">D030</font><font color="#808000">);</font>
  <font color="#000000">Kena</font><font color="#808000">: </font><font color="#008080">Word </font><font color="#808000">= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">Proses</font><font color="#808000">: </font><font color="#008080">Word </font><font color="#808000">= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">NSubDir</font><font color="#808000">: </font><font color="#008080">Word </font><font color="#808000">= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">TotPar </font><font color="#808000">= </font><font color="#000000">5</font><font color="#808000">;</font>
  <font color="#000000">DafPar</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">TotPar</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Char </font><font color="#808000">= </font><font color="#ff00ff">'RACGN'</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">Par</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">[</font><font color="#000000">128</font><font color="#808000">];</font>
  <font color="#000000">NPar</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">Exe</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">Buf</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">..</font><font color="#000000">4249</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">BufH</font><font color="#808000">: </font><font color="#000000">R_Hdr</font><font color="#808000">;</font>
  <font color="#000000">StrBar</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">[</font><font color="#000000">80</font><font color="#808000">];</font>

<font color="#0000ff">procedure </font><font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">K</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">);</font>
<font color="#0000ff">begin</font>
  <font color="#0000ff">case </font><font color="#000000">K </font><font color="#0000ff">of</font>
   <font color="#808000">-</font><font color="#000000">1</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi, gagal dipulihkan]'</font><font color="#808000">);</font>
   <font color="#808000">-</font><font color="#000000">2</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi]'</font><font color="#808000">);</font>
    <font color="#000000">0</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [ok]'</font><font color="#808000">);</font>
    <font color="#000000">1</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi, dipulihkan]'</font><font color="#808000">);</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">MCBAkhir</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#008000">{-- init UMB_Konv --}</font>
  <font color="#000000">mov dl</font><font color="#808000">,-</font><font color="#000000">1</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5802h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">jc </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5803h</font>
  <font color="#0000ff">xor </font><font color="#000000">bx</font><font color="#808000">,</font><font color="#000000">bx</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">jnc </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">mov dl</font><font color="#808000">,-</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">4</font><font color="#808000">:</font>
  <font color="#000000">push dx</font>
  <font color="#0000ff">xor </font><font color="#000000">si</font><font color="#808000">,</font><font color="#000000">si</font>
<font color="#008000">{-- mulai dari MCB pertama --}</font>
  <font color="#000000">mov ah</font><font color="#808000">,</font><font color="#000000">52h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">bx</font><font color="#808000">-</font><font color="#000000">2</font><font color="#808000">]</font>
<font color="#008000">{-- telusuri MCB --}</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">5Ah</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">4Dh</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">si</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">add dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">+</font><font color="#000000">3</font><font color="#808000">]</font>
  <font color="#ff0000">inc </font><font color="#000000">dx</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#ff0000">inc </font><font color="#000000">dx</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">dx</font>
<font color="#008000">{-- cari Id virus --}</font>
  <font color="#000000">mov cx</font><font color="#808000">,$</font><font color="#000000">4000    </font><font color="#008000">{16K byte akhir}</font>
  <font color="#0000ff">xor </font><font color="#000000">di</font><font color="#808000">,</font><font color="#000000">di</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">KodeVirus</font>
  <font color="#000000">cld</font>
  <font color="#000000">lodsb</font>
<font color="#808000">@@</font><font color="#000000">7</font><font color="#808000">:</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">6</font>
  <font color="#000000">push si</font>
  <font color="#000000">push di</font>
  <font color="#000000">push cx</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">KodeVirus</font><font color="#808000">-</font><font color="#000000">1</font>
  <font color="#000000">repz cmpsb</font>
  <font color="#000000">pop cx</font>
  <font color="#000000">pop di</font>
  <font color="#000000">pop si</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">7</font>
<font color="#808000">@@</font><font color="#000000">6</font><font color="#808000">:</font>
  <font color="#000000">xchg cx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#0000ff">not </font><font color="#000000">ax</font>
  <font color="#000000">add ax</font><font color="#808000">,$</font><font color="#000000">4000</font>
  <font color="#000000">sub ax</font><font color="#808000">,</font><font color="#000000">MulaiDekrip</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">4</font>
  <font color="#0000ff">shr </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">cl</font>
  <font color="#000000">add ax</font><font color="#808000">,</font><font color="#000000">dx</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#008000">{-- kembalikan mem alloc stra --}</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">pop ax</font>
  <font color="#000000">cmp al</font><font color="#808000">,-</font><font color="#000000">1</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">5</font>
  <font color="#000000">cbw</font>
  <font color="#000000">xchg bx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5803h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
<font color="#808000">@@</font><font color="#000000">5</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">WinKrit</font><font color="#808000">(</font><font color="#000000">M</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">); </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">1680</font>
  <font color="#000000">add ax</font><font color="#808000">,</font><font color="#000000">M</font>
  <font color="#ff0000">int </font><font color="#000000">2Fh</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">PMem</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#ff0000">Seg</font><font color="#808000">,</font><font color="#000000">I</font><font color="#808000">,</font><font color="#000000">J</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">Kena</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#ff0000">Seg </font><font color="#808000">:= </font><font color="#000000">MCBAkhir</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">Seg</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">BnPch </font><font color="#0000ff">do</font>
      <font color="#0000ff">with </font><font color="#000000">SpanJ</font><font color="#808000">[</font><font color="#000000">I</font><font color="#808000">] </font><font color="#0000ff">do</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">MemW</font><font color="#808000">[</font><font color="#ff0000">Seg</font><font color="#808000">:</font><font color="#000000">Lc</font><font color="#808000">] = </font><font color="#000000">Kb</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#000000">WinKrit</font><font color="#808000">(</font><font color="#000000">1</font><font color="#808000">);</font>
          <font color="#000000">MemW</font><font color="#808000">[</font><font color="#ff0000">Seg</font><font color="#808000">:</font><font color="#000000">Lc</font><font color="#808000">] := </font><font color="#000000">Kj</font><font color="#808000">;</font>
          <font color="#000000">WinKrit</font><font color="#808000">(</font><font color="#000000">2</font><font color="#808000">);</font>
          <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">SetFTime</font><font color="#808000">(</font><font color="#0000ff">var </font><font color="#000000">F</font><font color="#808000">: </font><font color="#0000ff">file</font><font color="#808000">; </font><font color="#000000">Wkt</font><font color="#808000">: </font><font color="#008080">Longint</font><font color="#808000">); </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">F</font>
  <font color="#000000">mov bx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">Wkt</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">Wkt</font><font color="#808000">+</font><font color="#000000">2</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">5701</font>
  <font color="#000000">pushf</font>
  <font color="#000000">call SaveInt21</font>
  <font color="#000000">jc </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov DosError</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">CekVirus</font><font color="#808000">(</font><font color="#0000ff">var </font><font color="#000000">BufD</font><font color="#808000">): </font><font color="#008080">Boolean</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufD</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">OpsDek</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">OpsDek</font><font color="#808000">/</font><font color="#000000">2</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">+</font><font color="#000000">ParDekrip</font><font color="#808000">]</font>
  <font color="#000000">add di</font><font color="#808000">,</font><font color="#000000">MulaiDekrip</font>
  <font color="#000000">cld</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">push cx</font>
  <font color="#000000">push si</font>
  <font color="#000000">push di</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">KodeVirus</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">KodeVirus</font>
  <font color="#000000">mov </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">cs</font><font color="#808000">:[@@</font><font color="#000000">Ops</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">2</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
<font color="#808000">@@</font><font color="#000000">Ops</font><font color="#808000">:</font>
  <font color="#0000ff">not </font><font color="#000000">al  </font><font color="#008000">{2 Byte}</font>
  <font color="#ff0000">inc </font><font color="#000000">di</font>
  <font color="#ff0000">inc </font><font color="#000000">si</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">]</font>
  <font color="#000000">loopz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">pop di</font>
  <font color="#000000">pop si</font>
  <font color="#000000">pop cx</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">loop </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">U</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">-</font><font color="#000000">2</font><font color="#808000">]</font>
  <font color="#000000">mov </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">cs</font><font color="#808000">:[@@</font><font color="#000000">Dek</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufD</font>
  <font color="#000000">add di</font><font color="#808000">,</font><font color="#000000">LokHdrAsli</font>
  <font color="#000000">push di</font>
  <font color="#000000">mov cl</font><font color="#808000">,$</font><font color="#000000">08</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">4</font>
<font color="#808000">@@</font><font color="#000000">4</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
<font color="#808000">@@</font><font color="#000000">Dek</font><font color="#808000">:</font>
  <font color="#0000ff">not </font><font color="#000000">al  </font><font color="#008000">{2 Byte}</font>
  <font color="#000000">stosb</font>
  <font color="#000000">loop </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">pop si</font>
  <font color="#000000">lea di</font><font color="#808000">,</font><font color="#000000">BufH</font>
  <font color="#000000">cmp Exe</font><font color="#808000">,</font><font color="#000000">1</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">Exe</font>
<font color="#808000">@@</font><font color="#000000">Com</font><font color="#808000">:</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">+</font><font color="#000000">2</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">OK</font>
<font color="#808000">@@</font><font color="#000000">Exe</font><font color="#808000">:</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Hdr</font><font color="#808000">.</font><font color="#000000">_IP</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Hdr</font><font color="#808000">.</font><font color="#000000">_CS</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Hdr</font><font color="#808000">.</font><font color="#000000">_SS</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">SegES lodsw</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Hdr</font><font color="#808000">.</font><font color="#000000">_SP</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Hdr</font><font color="#808000">.</font><font color="#000000">CkSum</font><font color="#808000">],</font><font color="#000000">cx</font>
<font color="#808000">@@</font><font color="#000000">OK</font><font color="#808000">:</font>
  <font color="#ff0000">inc </font><font color="#000000">cx</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">xchg cx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{$I-}</font>
<font color="#0000ff">function </font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">NmF</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">): </font><font color="#008080">shortint</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">F1</font><font color="#808000">: </font><font color="#0000ff">file</font><font color="#808000">;</font>
  <font color="#000000">PjBc</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">LokV</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">: </font><font color="#008080">Longint</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">PrsFile</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">FileMode </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">Exe </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#ff0000">Reset</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">1</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">InOutRes </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">),</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">PjBc</font><font color="#808000">&lt;&gt;</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">)) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">with </font><font color="#000000">BufH </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">MZ </font><font color="#808000">= $</font><font color="#000000">4D5A</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">MZ </font><font color="#808000">= $</font><font color="#000000">5A4D</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">CkSum</font><font color="#808000">&lt;&gt;$</font><font color="#000000">006B</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">Rel</font><font color="#808000">=$</font><font color="#000000">0040</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">Exit</font><font color="#808000">;</font>
      <font color="#000000">LokV </font><font color="#808000">:= </font><font color="#008080">Longint</font><font color="#808000">(</font><font color="#000000">Hed </font><font color="#808000">+ </font><font color="#000000">_CS</font><font color="#808000">) * $</font><font color="#000000">10 </font><font color="#808000">+ </font><font color="#000000">_IP</font><font color="#808000">;</font>
      <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Exe</font><font color="#808000">);</font>
    <font color="#0000ff">end</font>
    <font color="#0000ff">else</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Kod</font><font color="#808000">=$</font><font color="#000000">E9</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">KodInfek</font><font color="#808000">=$</font><font color="#000000">6B</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#000000">LokV </font><font color="#808000">:= </font><font color="#000000">JMP </font><font color="#808000">+ </font><font color="#000000">3</font>
      <font color="#0000ff">else</font>
        <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">LokV</font><font color="#808000">);</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">),</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">PjBc</font><font color="#808000">&lt;&gt;</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">)) </font><font color="#0000ff">or not </font><font color="#808000">(</font><font color="#000000">CekVirus</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">)) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#008000">{-- positif bervirus --}</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= -</font><font color="#000000">2</font><font color="#808000">;</font>
  <font color="#0000ff">if not </font><font color="#808000">(</font><font color="#000000">3 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= -</font><font color="#000000">1</font><font color="#808000">;</font>
  <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#000000">GetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">ReadOnly </font><font color="#808000">= </font><font color="#000000">ReadOnly</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#000000">SetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr </font><font color="#0000ff">and not</font><font color="#808000">(</font><font color="#000000">ReadOnly</font><font color="#808000">));</font>
  <font color="#000000">FileMode </font><font color="#808000">:= </font><font color="#000000">2</font><font color="#808000">;</font>
  <font color="#ff0000">Reset</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">1</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">InOutRes</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#000000">GetFTime</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">);</font>
  <font color="#008000">{-- sesuaikan hdr dengan pj file --}</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Exe</font><font color="#808000">=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">with </font><font color="#000000">BufH </font><font color="#0000ff">do</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">_Mod </font><font color="#808000">:= </font><font color="#000000">LokV </font><font color="#0000ff">mod </font><font color="#808000">$</font><font color="#000000">200</font><font color="#808000">;</font>
      <font color="#000000">_Div </font><font color="#808000">:= </font><font color="#000000">LokV </font><font color="#0000ff">div </font><font color="#808000">$</font><font color="#000000">200</font><font color="#808000">;</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">_Mod</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">_Div</font><font color="#808000">);</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- tulis hdr --}</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">);</font>
  <font color="#ff0000">BlockWrite</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">),</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">PjBc</font><font color="#808000">&lt;&gt;</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">)) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">InOutRes</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#008000">{-- buang virus --}</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">LokV</font><font color="#808000">);</font>
  <font color="#ff0000">Truncate</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#008000">{-- normalkan waktu file --}</font>
  <font color="#000000">Wkt </font><font color="#808000">:= </font><font color="#000000">Wkt </font><font color="#0000ff">and </font><font color="#808000">$</font><font color="#000000">FFFFFFF0</font><font color="#808000">;</font>
  <font color="#000000">SetFTime</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">ReadOnly </font><font color="#808000">= </font><font color="#000000">ReadOnly</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#000000">SetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">InOutRes</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">DosError</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">begin</font>
  <font color="#ff0000">Assign</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">NmF</font><font color="#808000">);</font>
  <font color="#000000">PrsFile</font><font color="#808000">;</font>
  <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#000000">InOutRes </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#008000">{$I+}</font>

<font color="#008000">{-- cari vektor 21h asli --}</font>
<font color="#0000ff">function </font><font color="#000000">Vektor21h</font><font color="#808000">: </font><font color="#000000">Pointer</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">PrefixSeg</font>
  <font color="#000000">mov ds</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov si</font><font color="#808000">,$</font><font color="#000000">0005</font>
  <font color="#0000ff">xor </font><font color="#000000">bx</font><font color="#808000">,</font><font color="#000000">bx</font>
  <font color="#0000ff">xor </font><font color="#000000">dx</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#000000">cld</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">lodsb</font>
  <font color="#000000">cmp al</font><font color="#808000">,$</font><font color="#000000">9A</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">cmp al</font><font color="#808000">,$</font><font color="#000000">EA</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">2</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">3</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">add si</font><font color="#808000">,</font><font color="#000000">4</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">cmp ax</font><font color="#808000">,$</font><font color="#000000">FF2E</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">lodsb</font>
  <font color="#000000">cmp al</font><font color="#808000">,$</font><font color="#000000">2E</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">xchg si</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">mov cx</font><font color="#808000">,$</font><font color="#000000">0100</font>
<font color="#808000">@@</font><font color="#000000">5</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,$</font><font color="#000000">FA</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">cmp </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">],$</font><font color="#000000">FC80</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">5</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">es</font>
  <font color="#000000">lea bx</font><font color="#808000">,[</font><font color="#000000">di</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">]</font>
<font color="#808000">@@</font><font color="#000000">4</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
  <font color="#000000">xchg bx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{-- konversi huruf kecil mjd besar --}</font>
<font color="#0000ff">procedure </font><font color="#000000">HBesar</font><font color="#808000">(</font><font color="#0000ff">var </font><font color="#000000">S</font><font color="#808000">); </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">S</font>
  <font color="#0000ff">xor </font><font color="#000000">cx</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#000000">jcxz </font><font color="#808000">@@</font><font color="#000000">L3</font>
  <font color="#000000">cld</font>
  <font color="#ff0000">inc </font><font color="#000000">di</font>
<font color="#808000">@@</font><font color="#000000">L1</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#ff00ff">'a'</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">L2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#ff00ff">'z'</font>
  <font color="#000000">ja </font><font color="#808000">@@</font><font color="#000000">L2</font>
  <font color="#000000">sub al</font><font color="#808000">,</font><font color="#ff00ff">' '</font>
<font color="#808000">@@</font><font color="#000000">L2</font><font color="#808000">:</font>
  <font color="#000000">stosb</font>
  <font color="#000000">loop </font><font color="#808000">@@</font><font color="#000000">L1</font>
<font color="#808000">@@</font><font color="#000000">L3</font><font color="#808000">:</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{-- cek ekstensi file terdaftar --}</font>
<font color="#0000ff">function </font><font color="#000000">CekNmf</font><font color="#808000">(</font><font color="#0000ff">var </font><font color="#000000">Buf</font><font color="#808000">): </font><font color="#008080">Boolean</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">0</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">Buf</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#ff00ff">'.'</font>
  <font color="#0000ff">xor </font><font color="#000000">cx</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#ff0000">inc </font><font color="#000000">di</font>
  <font color="#000000">cld</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">cmp cx</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">DaftExt</font>
  <font color="#000000">mov bx</font><font color="#808000">,</font><font color="#000000">BnExt</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">push si</font>
  <font color="#000000">push di</font>
  <font color="#000000">push cx</font>
  <font color="#000000">repz cmpsb</font>
  <font color="#000000">pop cx</font>
  <font color="#000000">pop di</font>
  <font color="#000000">pop si</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">add si</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#ff0000">dec </font><font color="#000000">bx</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">CekKbdIn</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ah</font><font color="#808000">,</font><font color="#000000">01</font>
  <font color="#ff0000">int </font><font color="#000000">16h</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">BacaKar</font><font color="#808000">: </font><font color="#008080">Char</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">0C08</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#ff00ff">'a'</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#ff00ff">'z'</font>
  <font color="#000000">ja </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">sub al</font><font color="#808000">,</font><font color="#ff00ff">' '</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">CekBatal</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">Kar</font><font color="#808000">: </font><font color="#008080">Char</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">CekKbdIn</font><font color="#808000">=$</font><font color="#000000">011B</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">79</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#ff00ff">'  Batal Proses (Y/T)? '</font><font color="#808000">);</font>
    <font color="#0000ff">repeat</font>
      <font color="#000000">Kar </font><font color="#808000">:= </font><font color="#000000">BacaKar</font><font color="#808000">;</font>
    <font color="#0000ff">until </font><font color="#808000">(</font><font color="#000000">Kar</font><font color="#808000">=</font><font color="#ff00ff">'Y'</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">Kar</font><font color="#808000">=</font><font color="#ff00ff">'T'</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Kar</font><font color="#808000">=</font><font color="#ff00ff">'Y'</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#000000">DosError </font><font color="#808000">:= $</font><font color="#000000">1001</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{$S+}</font>
<font color="#0000ff">procedure </font><font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">: </font><font color="#000000">PathStr</font><font color="#808000">);</font>
<font color="#0000ff">var</font>
  <font color="#000000">SR</font><font color="#808000">: </font><font color="#000000">SearchRec</font><font color="#808000">;</font>
  <font color="#000000">Kond</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">FindFirst</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#ff00ff">'*.*'</font><font color="#808000">,</font><font color="#000000">AnyFile</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">DosError</font><font color="#808000">&lt;&gt;</font><font color="#000000">3</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">NSubDir</font><font color="#808000">);</font>
  <font color="#0000ff">while </font><font color="#808000">(</font><font color="#000000">DosError</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">] &lt;&gt; </font><font color="#ff00ff">'.'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">VolumeID </font><font color="#808000">&lt;&gt; </font><font color="#000000">VolumeID</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">Directory </font><font color="#808000">= </font><font color="#000000">Directory</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if not </font><font color="#808000">(</font><font color="#000000">1 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">+</font><font color="#ff00ff">'\'</font><font color="#808000">);</font>
      <font color="#0000ff">end</font>
      <font color="#0000ff">else</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">2 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#000000">CekNmf</font><font color="#808000">(</font><font color="#000000">Sr</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Proses</font><font color="#808000">);</font>
          <font color="#000000">StrBar </font><font color="#808000">:= </font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">;</font>
          <font color="#000000">Kond </font><font color="#808000">:= </font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">StrBar</font><font color="#808000">);</font>
          <font color="#ff0000">Write</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'  '</font><font color="#808000">,</font><font color="#000000">StrBar</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">77</font><font color="#808000">-</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">StrBar</font><font color="#808000">),#</font><font color="#000000">13</font><font color="#808000">);</font>
          <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Kond</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#0000ff">begin</font>
            <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'  '</font><font color="#808000">,</font><font color="#000000">StrBar</font><font color="#808000">);</font>
            <font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">Kond</font><font color="#808000">);</font>
            <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
            <font color="#0000ff">while </font><font color="#808000">(</font><font color="#000000">Kond</font><font color="#808000">=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">)=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">do</font><font color="#808000">;</font>
          <font color="#0000ff">end</font><font color="#808000">;</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">DosError</font><font color="#808000">&lt;&gt;$</font><font color="#000000">1001</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">FindNext</font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">);</font>
      <font color="#000000">CekBatal</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#008000">{$S-}</font>

<font color="#0000ff">function </font><font color="#000000">DriveDisket</font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">): </font><font color="#008080">Boolean</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">4408</font>
  <font color="#000000">mov bl</font><font color="#808000">,</font><font color="#000000">Drv</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">0</font>
  <font color="#000000">jc </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#0000ff">or </font><font color="#000000">al</font><font color="#808000">,</font><font color="#000000">al</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#ff0000">inc </font><font color="#000000">dx</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">DriveAktif</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ah</font><font color="#808000">,$</font><font color="#000000">19</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">IntNull</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">03</font>
  <font color="#000000">iret</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">ProsesPar</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">I</font><font color="#808000">,</font><font color="#000000">J</font><font color="#808000">: </font><font color="#008080">Integer</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">ProsesPar </font><font color="#808000">:= -</font><font color="#000000">1</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Npar</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">NPar </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#000000">Par </font><font color="#808000">:= </font><font color="#ff0000">ParamStr</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
    <font color="#000000">HBesar</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">]=</font><font color="#ff00ff">'/'</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">]=</font><font color="#ff00ff">'-'</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)&lt;&gt;</font><font color="#000000">2</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">Exit</font><font color="#808000">;</font>
      <font color="#000000">J </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
      <font color="#0000ff">repeat</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">2</font><font color="#808000">]=</font><font color="#000000">DafPar</font><font color="#808000">[</font><font color="#000000">J</font><font color="#808000">]) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#000000">Pil </font><font color="#808000">:= </font><font color="#000000">Pil </font><font color="#808000">+ [</font><font color="#000000">J</font><font color="#808000">];</font>
          <font color="#000000">J </font><font color="#808000">:= </font><font color="#000000">TotPar</font><font color="#808000">+</font><font color="#000000">1</font><font color="#808000">;</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
        <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">J</font><font color="#808000">);</font>
      <font color="#0000ff">until </font><font color="#808000">(</font><font color="#000000">J</font><font color="#808000">&gt;</font><font color="#000000">TotPar</font><font color="#808000">);</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">J</font><font color="#808000">=</font><font color="#000000">TotPar</font><font color="#808000">+</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">Exit</font><font color="#808000">;</font>
      <font color="#000000">Par_Tidak </font><font color="#808000">:= </font><font color="#000000">Par_Tidak </font><font color="#808000">+ [</font><font color="#000000">I</font><font color="#808000">];</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">ProsesPar </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">var</font>
  <font color="#000000">I</font><font color="#808000">: </font><font color="#008080">Integer</font><font color="#808000">;</font>
  <font color="#000000">Drv</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">Int21h</font><font color="#808000">: </font><font color="#000000">Pointer</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#ff0000">Writeln</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' Anti Virus Spanska.4250  v1.02'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' Dibuat oleh M. Harjono'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' (c)1997 Antivirus Media'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">);</font>
  <font color="#008000">{-- proses parameter --}</font>
  <font color="#000000">NPar </font><font color="#808000">:= </font><font color="#ff0000">ParamCount</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">ProsesPar</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">'Sintak: ANTISPAN &lt;[dir1] [dir2]...&gt; [/r /a /c /g /n]'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /r = hanya per direktori aktif'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /a = proses semua file'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /c = deteksi dan bersihkan'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /g = tunggu ganti disket'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /n = vektor 21h normal'</font><font color="#808000">);</font>
    <font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">'Contoh: ANTISPAN C: D: /a /c =&gt; Bersihkan semua file di drive C: dan D:'</font><font color="#808000">);</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- init program --}</font>
  <font color="#000000">Int21h </font><font color="#808000">:= </font><font color="#000000">Vektor21h</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Int21h</font><font color="#808000">&lt;&gt;</font><font color="#0000ff">nil</font><font color="#808000">) </font><font color="#0000ff">and not</font><font color="#808000">(</font><font color="#000000">5 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">21</font><font color="#808000">,</font><font color="#000000">Int21h</font><font color="#808000">);</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">24</font><font color="#808000">,@</font><font color="#000000">IntNull</font><font color="#808000">);</font>
  <font color="#008000">{-- periksa memori --}</font>
  <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'Cek Memori....'</font><font color="#808000">);</font>
  <font color="#000000">PMem</font><font color="#808000">;</font>
  <font color="#008000">{-- periksa file --}</font>
  <font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">'Periksa File:'</font><font color="#808000">);</font>
  <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">NPar </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if not </font><font color="#808000">(</font><font color="#000000">I </font><font color="#0000ff">in </font><font color="#000000">Par_Tidak</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">Par </font><font color="#808000">:= </font><font color="#ff0000">ParamStr</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
      <font color="#000000">HBesar</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
      <font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)+</font><font color="#000000">1</font><font color="#808000">] := </font><font color="#ff00ff">'\'</font><font color="#808000">;</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)]&lt;&gt;</font><font color="#ff00ff">'\'</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">1 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)] = </font><font color="#ff00ff">':'</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#ff0000">Dec</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">]);</font>
        <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">]);</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#000000">Drv </font><font color="#808000">:= </font><font color="#000000">DriveAktif</font><font color="#808000">;</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">2</font><font color="#808000">] = </font><font color="#ff00ff">':'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">] </font><font color="#0000ff">in </font><font color="#808000">[</font><font color="#ff00ff">'A'</font><font color="#808000">..</font><font color="#ff00ff">'Z'</font><font color="#808000">]) </font><font color="#0000ff">then</font>
        <font color="#000000">Drv </font><font color="#808000">:= </font><font color="#ff0000">Ord</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">])-</font><font color="#ff0000">Ord</font><font color="#808000">(</font><font color="#ff00ff">'A'</font><font color="#808000">);</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">&lt;=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">DriveDisket</font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">+</font><font color="#000000">1</font><font color="#808000">)) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">4 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'  &lt;Tekan Enter...&gt;'</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">61</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">);</font>
          <font color="#0000ff">repeat</font>
          <font color="#0000ff">until </font><font color="#808000">(</font><font color="#000000">BacaKar</font><font color="#808000">=#</font><font color="#000000">13</font><font color="#808000">);</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#ff0000">Writeln</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Hasil:'</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">73</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  Direktori = '</font><font color="#808000">,</font><font color="#000000">NSubDir</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  File      = '</font><font color="#808000">,</font><font color="#000000">Proses</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  Terkena   = '</font><font color="#808000">,</font><font color="#000000">Kena</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">);</font>
<font color="#0000ff">end</font><font color="#808000">.</font>
</font></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/650/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=650&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2011/08/19/anti-virus-spanska-4250/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>
	</item>
		<item>
		<title>SERUM VIRUS HARE</title>
		<link>http://oguds.wordpress.com/2011/08/18/serum-virus-hare/</link>
		<comments>http://oguds.wordpress.com/2011/08/18/serum-virus-hare/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 10:58:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Nostalgia]]></category>
		<category><![CDATA[virus komputer]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2011/08/18/serum-virus-hare/</guid>
		<description><![CDATA[Virus multipartit nampaknya mulai menggejala belakangan ini. Namun itu saja belum cukup. Pembuatnya tak kurang akal untuk membuatnya semakin rumit, yaitu dengan teknik polimorfik. Ditambah trik-trik cerdiknya, sistem operasi Windows pun dapat terlewati dengan baik. Berikut akan kita bahas virus Hare.7786. Virus ini tergolong virus berbahaya, karena di dalamnya terdapat bom waktu yang dapat meledak, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=649&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="virus_multi" style="display:inline;border-width:0;margin:0 10px 0 0;" height="68" alt="virus_multi" src="http://oguds.files.wordpress.com/2011/10/virus_multi.gif?w=52&#038;h=68" width="52" align="left" border="0" /> Virus multipartit nampaknya mulai menggejala belakangan ini. Namun itu saja belum cukup. Pembuatnya tak kurang akal untuk membuatnya semakin rumit, yaitu dengan teknik polimorfik. Ditambah trik-trik cerdiknya, sistem operasi Windows pun dapat terlewati dengan baik. Berikut akan kita bahas virus <b>Hare.7786</b>.</p>
<p><span id="more-649"></span>
<p>Virus ini tergolong virus berbahaya, karena di dalamnya terdapat bom waktu yang dapat meledak, yaitu setiap tanggal 22 pada bulan Agustus dan September. Aksinya berupa tampilan dan penulisan ke hard disk. Tampaknya virus ini berusaha secara cerdik mengoptimalkan dirinya agar berjalan dengan baik pada sistem operasi Windows. Beberapa trik sederhana namun efektif dilakukan untuk itu. Namun teknik infeksi partisi yang kurang sempurna, membuat virus ini cukup bermasalah bila dijalankan pada hard disk dengan konfigurasi tertentu.</p>
<p>Tampaknya virus ini berasal dari luar negeri, selain karena pesan di tubuhnya cara kerjanya pun yang cukup aneh. Bila virus aktif di memory, terlihat serangkaian kalimat: <b>‘HDEuthanasia v3 By Demon Emperor: Hare Krshna, hare, hare..’</b>. Sesuai pesan tersebut dan panjang infeksinya, kita namakan saja virus ini virus <b>Hare.7786</b>.</p>
<h3>Instalasi Virus File</h3>
<p>Pada saat program EXE/COM/Overlay dijalankan, maka rutin virus yang menempel pada program tersebut yang akan pertama kali dijalankan. Pertama kali virus akan mendekrip dirinya sendiri, melalui serangkaian kode program yang dapat berubah-ubah bentuk (polimorfik). Lalu virus mengecek keberadaannya dalam sistem, melalui pemanggilan fungsi DOS, Int 21h AX=0FE23h. Bila didapat hasil AX=000Dh berarti virus sudah menetap di memori. Dilanjutkan dengan alokasi memori untuk tempat virus bekerja, yang dapat berupa memori konvensional (0-9FFFFh) maupun <i>Upper Memory Block</i> (0A0000h-100000h).</p>
<p>Pada proses selanjutnya virus juga berusaha untuk menginfeksi partisi hard disk. Dimulai dengan pengecekan fungsi virus untuk operasi disk, Int 13h AX=5445h. Bila hasil AX=4554h berarti rutin tersebut sudah aktif, partisi dianggap sudah terinfeksi. Bila tidak maka virus akan mencari lokasi fisik dari pojok hard disk, atau dikenal dengan <i>Landing Zone</i>. Proses ini dengan mudah dilakukan dengan mencari konfigurasi fisik hard disk (berapa track, berapa silinder dan berapa sektor), dan perhitungan track+1, silinder-1, sektor-10h. Partisi asli diletakkan di sektor ke-10h. Namun cara ini cukup riskan bila dijalankan pada komputer dengan hard disk &gt; 528 MB dan sebagian besar BIOS 486 DX2 ke bawah. Pada BIOS ini belum dikenal mode <b>LBA</b> (<i>Large Block Adressing</i>) ataupun mode <b>CHS</b> dengan track &gt; 1023. Akibatnya operasi track+1 pada 1023 (3FFh) menghasilkan 768 (300h). Lokasi ini bisa menimpa sembarang file.</p>
<p>Sesudah pojok hard disk ditentukan, maka badan virus ditulis di tempat tersebut melalui operasi disk normal (Int 13h). Pada penulisan kode partisi maka virus mempunyai 2 kemungkinan untuk melakukan proses ini. Bila Windows aktif dan sedang dalam modus <i>enhanced</i> maka operasi ini dilakukan secara &#8216;normal&#8217; yaitu dengan menelusuri vektor 13h, operasi <i>device</i> DOS, dan dengan tambahan &#8216;tebak-tebakan&#8217; dengan fasilitas <i>virus warning</i> dari BIOS. Pada BIOS 386 ke atas biasanya terdapat fasilitas untuk mencegah penulisan ke daerah partisi hard disk. Bila dideteksi ada penulisan ke partisi, maka biasanya BIOS memberi suatu peringatan dengan kemungkinan jawaban &#8216;Y&#8217;es atau &#8216;N&#8217;o. Entah apa maksudnya, namun virus Hare ini melakukan beberapa kemungkinan jawaban, yaitu NNNYY. Jika Windows tidak aktif maka virus ini akan melakukan penulisan langsung lewat operasi port. Untuk operasi ini virus Hare secara cerdik memeriksa langsung isi CMOS untuk apakah ada hard disk (IDE) terpasang. Maklum saja, biasanya hard disk model SCSI tidak terdaftar dalam CMOS, selain mengandalkan info BIOS internalnya. Dengan demikian jangan heran bila peringatan BIOS tidak muncul (sedikitpun) namun ternyata virus Hare telah bersarang dalam partisi Anda. </p>
<p>Selanjutnya virus menelusuri vektor DOS (21h) dan titik terdalam vektor ini yang dipanggil bila virus melakukan operasi DOS secara internal. Biasanya ini dilakukan untuk menghindari deteksi dari program anti virus. Untuk pencegatan vektor virus ini melakukannya secara biasa, yaitu pada titik teratas. Tidak heran, karena cara inilah yang paling aman bila virus ingin selamat saat dijalankan lewat Windows. Tidak kenal kompromi, bila dideteksi variabel sistem <b>&#8216;WIN..=&#8217;</b> aktif, maka virus akan menghapus file <b>&#8216;WIN..\SYSTEM\ IOSUBSYS\HSFLOP.PDR&#8217;</b>. Sehingga nantinya operasi yang mengakses disket akan berlangsung lewat BIOS, yang tentu saja di bawah kendali virus. </p>
<p>Lalu virus mengembalikan register-register yang berubah dan kembali ke titik awal program asli. Sejak saat ini virus Hare telah aktif dalam sistem dan telah pula menginfeksi partisi. Dalam fungsi DOS virus ini melakukan beberapa cegatan:</p>
<ul>
<li><b>4Eh</b> (<i>Find First Matching File</i>), <b>11h</b> (<i>Search First Entry Using MCB</i>), <b>4Fh</b> (<i>Find Next Matching File</i>), <b>12h</b> (<i>Search Next Entry Using MCB</i>), dimanipulasi agar seakan-akan file terinfeksi tidak berubah (besar), karena ternyata masih terdapat perbedaan kecil antara file yang terinfeksi dan yang tidak. Virus ini menggunakan tanda detik=34 untuk menandakan program telah terinfeksi, yang tidak selalu benar. </li>
<li><b>3Dh</b> (<i>Open File Using Handle</i>), digunakan untuk menulari suatu file/program ketika akan dibuka, dengan syarat program tersebut bukan yang sedang dijalankan. </li>
<li><b>3Eh</b> (<i>Close File Using Handle</i>), digunakan untuk menulari suatu file/program ketika akan ditutup. Virus ini mengambil langsung nama file dari <i>Sistem File Table</i> (<b>SFT</b>). </li>
<li><b>4B00h</b> (<i>Execute Program</i>), digunakan selain untuk menginfeksi program ketika akan dijalankan, juga untuk memulihkan file program sebelum dijalankan. Hal ini untuk mencegah suatu program, termasuk anti virus yang menetap, mengetahui perubahan dari file program. Konsep ini cukup aneh namun terbukti aman dan efektif untuk mengelabui program anti virus. </li>
<li><b>00h</b> (<i>Program Terminate</i>), <b>4Ch</b> (<i>Terminate Process With Return Code</i>), <b>31h</b> (<i>Terminate Process and Remain Resident</i>), dimanipulasi dalam rangkaian proses siluman, yaitu program yang telah selesai dijalankan sebelum kembali ke DOS maka akan dinfeksi kembali. </li>
<li><b>36h</b> (<i>Get Disk Free Space</i>), disimulasikan agar suatu program (antivirus) yang selalu mengecek besar ruang kosong pada disk tidak mengetahui perbedaan akibat membengkaknya suatu file, ketika file (program) tersebut diperiksa. </li>
<li><b>0FE23h</b>, penanda virus sudah aktif di memori, dengan hasil AX=000Dh. </li>
</ul>
<p>Virus Hare juga menolak menginfeksi file program dengan nama berikut: <b>TB*.*</b>, <b>F-*.*</b>, <b>IV*.*</b>, <b>CH*.*</b>, <b>COMMAND*.*</b> dan nama program yang mengandung huruf V. Lebih baik mencegah daripada ketahuan, begitu mungkin prinsipnya.</p>
<h3>Instalasi Virus Boot/Partisi</h3>
<p>Pertama kali rutin virus aktif pada saat boot, dimulai dengan melakukan dekrip lewat rutin yang polimorfik, penentuan lokasi virus bersarang (memori konvensional-9 Kb), dan pemuatan badan virus dari daerah <i>landing zone</i> hard disk atau disket pada track 41/81. Lalu virus melakukan pengecekan/infeksi partisi dan menuliskan ulang tabel partisi beserta kode partisi yang sudah tertempel virus. Virus Hare untuk sementara tidak melakukan pencegatan pada vektor 13h. Penulis kira trik ini ada kaitannya dengan Windows 95, yang tujuannya mencegah cegatan virus dikenal sebagai mode kompabilitas DOS. Dilanjutkan dengan pengecekan tanggal, yaitu setiap tanggal 22 pada bulan Agustus dan September, virus menampilkan sederetan string dan melakukan aksinya. Setelah mencegat vektor <b>1Ch</b> (<i>System Timer Tick</i>), rutin asli partisi/boot dijalankan.</p>
<p>Lewat <b>Int 1Ch</b> virus Hare mengecek apakan vektor DOS (21h) sudah diinisialiasi dan dapat segera dicegat. Proses cegat dan cek ini berulang beberapa kali, hingga pada proses terakhir virus mencegat sistem secara keseluruhan, yaitu <b>Int 13h</b> (<i>Disk</i>), <b>Int 21h</b> (<i>DOS</i>), dan <b>Int 28h</b> (<i>Dos Idle</i>). Cara yang cukup rumit ini terbukti mampu berjalan secara aman tanpa mengundang kecurigaan sistem. Namun bukan berarti tanpa kesalahan. Entah apa yang tidak benar, bila driver <b>DBLBUFF.SYS</b> dimuat dalam sistem, sistem operasi mogok berjalan. Setelah dicoba untuk menghapus file tersebut, barulah DOS maupun Windows berjalan dengan normal. Yang membingungkan, sebab driver tersebut biasanya akan dimuat baik dalam Windows 3.xx mapun Windows 95. Bila semuanya berjalan baik maka operasi virus selanjutnya tidak menimbulkan masalah berarti.</p>
<p>Dalam vektor 13h virus ini melakukan beberapa cegatan:</p>
<ul>
<li><b>02h</b> (<i>Read Sector</i>), virus akan memberikan data sektor yang asli bila dilakukan pembacaan pada lokasi boot/partisi. </li>
<li><b>03h</b> (<i>Write Sector</i>), virus akan menulis sektor pada lokasi penyembunyian sektor asli. </li>
<li><b>16h</b> (<i>Change Status</i>), pada kesempatan ini virus akan melakukan inisialisasi/infeksi pada disket. </li>
<li><b>5445h</b>, bila AX=4554h berarti rutin virus boot/partisi telah aktif. </li>
</ul>
<h3>Rutin Polimorfik</h3>
<p>Virus Hare mempunyai kemampuan untuk berubah-ubah kode pada awal rutin dekripnya. Padahal untuk mengetahui suatu program terinfeksi virus atau tidak, kita memerlukan suatu deretan kode yang bersifat tetap sebagai penanda virus. Biasanya deretan kode ini terletak minimal pada rutin dekripnya, karena kebanyakan virus mengenkripsi badan virusnya untuk mempersulit khalayak umum curiga atau mengetahui cara kerjanya.</p>
<p>Untungnya rutin polimorfik dalam virus Hare tidak rumit, dan lebih untung lagi karena virus Hare sendiri menyediakan cara tercepat untuk memulihkan file program ke bentuk semula. Setidaknya bila Hare percaya pada kemungkinan tersebut, mengapa kita tidak. Bila digambarkan maka rutin dekrip virus Hare sbb:</p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400">
<p>Titik_Awal: </p>
<p>. . . </p>
<p>mov dl,11h {2 byte} </p>
<p>. . . </p>
<p>cs: {1 byte} </p>
<p>xor [si],dl {2 byte} </p>
<p>. . .</p>
</td>
</tr>
</tbody>
</table>
<p>Pada rutin di atas, terdapat 4 kemungkinan kode dapat berubah, register isian awal (dl), operand isian (11h), operasi dekrip (xor), dan lokasi memori tujuan ([si]). Tentu saja di antara kode-kode tersebut dapat berupa kode-kode atau data-data sampah yang tidak berguna, dengan panjang yang dapat berubah-ubah. Kemungkinan lain dari kombinasi tersebut misalnya:</p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="400">
<p>Titik_Awal: </p>
<p>. . . </p>
<p>mov al,56h {2 byte} </p>
<p>. . . </p>
<p>cs: {1 byte} </p>
<p>sub [di],al {2 byte} </p>
<p>. . .</p>
</td>
</tr>
</tbody>
</table>
<p>Dari 2 contoh di atas Anda dapat melihat ada sesuatu yang sama. Ya, kode <i>segment override</i> cs: (2Eh). Langkah pertama kita cari dulu lokasi awal rutin virus. Sesuai referensi dari Hare, kita baca sebanyak 32h byte, dan cari mundur kode 2Eh. Bila ditemukan dan 1 byte di depannya salah satu dari 3 kemungkinan operasi, yaitu <b>xor</b>, <b>sub</b>, dan <b>and</b>, maka ambil kode operand ke-2 dan cari mundur kode pengisian register, hingga didapat operand untuk proses dekrip. Dari titik ini lokasi mundur 1E6Ah merupakan awal badan virus, yang setelah kita dekrip awal perlu di-not lagi agar kode virus terbuka seluruhnya. Header asli program terletak pada ofset 16Bh dari awal badan virus.</p>
<p>Pada infeksi pada partisi/boot, walaupun virus Hare berulang kali menginfeksi hard disk (yang berakibat berubah-ubahnya kode partisi), namun badan virus pada lokasi persembunyiannya tidak dienkripsi. Dan untuk mengecek apakah partisi/boot telah tertular virus dapat dengan mudah dicek melalui perhitungan Word(Buf[102h]) &#8211; Word(Buf[100h]) yang bila = 0CCFFh berarti kemungkinan besar boot/partisi telah tertular virus. Pemastian lebih lanjut dengan menelusuri ke badan virusnya.</p>
<h3>Program Serum Virus</h3>
<p>Penulis menyertakan listing program untuk mengatasi virus Hare ini. Program <b>ANTIHARE.PAS</b> dibuat dengan bahasa Pascal, dan dikompilasi dengan Turbo Pascal 6.0+. Sebaiknya Turbo Pascal 7.0 seperti yang penulis gunakan. Bila Anda menggunakan Borland Pascal 7.0, atur agar target kompiler ke modus <i>real</i>.</p>
<p>Secara garis besar program ini mempunyai 3 prosedur untuk pembasmian virus Hare, yaitu:</p>
<ol>
<li><b>PMem</b>, mendeteksi keaktifan virus di memory. Virus Hare mampu menyusup baik di memori konvensional maupun UMB, sehingga keduanya perlu kita periksa. Dalam operasinya virus Hare mencegat 3 <i>interrupt</i>, yaitu <b>13h</b> (<i>Disk</i>), <b>21h</b> (fungsi DOS), dan <b>28h</b> (DOS <i>idle loop</i>). Untuk melumpuhkannya kita cukup mencari segment awal dari lokasi virus, dan melakukan pemulihan jalur interupsi dengan urutan dan tempat yang tepat. </li>
<li><b>PDir</b>, mendeteksi dan melenyapkan virus di file-file program pada direktori yang disebutkan lewat parameter. Pendeteksian meliputi seluruh program berektensi <b>EXE</b>, <b>COM</b>, <b>BIN</b>, <b>OVR</b> dan <b>OVL</b>. Bila diinginkan dapat dilakukan proses <i>scan</i> pada seluruh file, mengingat banyak file-file program yang termuat sebagai overlay atau driver sistem dengan bermacam ekstensi. Bila file positif terkena virus, maka akan segera dibersihkan dan dikembalikan seperti semula. Perhatian khusus bila file terserang lebih dari satu virus. Apabila virus Hare tidak berada pada lapisan terluar, maka program tidak mendeteksi adanya virus pada file tersebut. Hal ini sulit dicari jalan keluarnya, kecuali virus-virus yang masuk setelah Hare dibersihkan terlebih dahulu. </li>
<li><b>PBoot</b>, mendeteksi dan melenyapkan virus baik di partisi maupun boot sektor. Dalam penginfeksian partisi virus Hare tidak mengembalikan konfigurasi tabel partisi, sehingga membuat hard disk tidak dikenal bila dijalankan pada sistem DOS yang bersih. Untuk itu pada setiap awal proses pembersihan, program serum akan selalu memeriksa kode partisi pada setiap hard disk yang terpasang, dan memulihkannya bila terinfeksi. </li>
</ol>
<p>Setelah listing program <b>ANTIHARE.PAS</b> tersedia, panggilah program Turbo Pascal dan buka listing tersebut. Bila dalam menu Compile tersedia pilihan Destination, pastikan untuk ditujukan ke Disk, agar terbentuk file ANTIHARE.EXE. Lalu lakukan proses <i>Compile</i>, <i>Run</i>, <i>Make</i> atau <i>Build</i>, sehingga tercipta file <b>ANTIHARE.EXE</b> yang siap untuk dijalankan.</p>
<p>Atau dapat pula Anda kompilasi langsung lewat program <b>TPC.EXE</b>, satu paket dengan Turbo Pascal, yaitu dengan mengetikkan: </p>
<h4>C:\&gt;TPC ANTIKSM</h4>
<p>bila tidak ada kesalahan maka akan tercipta file ANTIHARE.EXE.</p>
<h3>Pemakaian Serum</h3>
<p>Untuk menjalankan program ANTIHARE ketiklah di <i>prompt</i> DOS sebagai berikut:</p>
<p><b>C:\&gt;ANTIHARE &lt;[dir1] [dir2]&#8230;&gt; [/S /A /C /G /N]</b></p>
<p><b>[dir1] [dir2]&#8230;</b>, maksudnya adalah direktori yang dituju bisa lebih dari satu direktori. Contoh: C:\&gt;ANTIHARE C:\DOS D:\WINDOWS A:\</p>
<p><b>/S</b>, maksudnya apabila terdapat sub direktori maka program akan masuk ke seluruh sub direktori yang ada.</p>
<p><b>/A</b>, artinya program tidak hanya memeriksa file-file yang berektensi EXE, COM, BIN, OVR atau OVL, namun seluruh file.</p>
<p><b>/C</b>, artinya program serum melakukan pembersihan pada program yang terinfeksi. Bila tidak disertakan, maka program serum hanya akan melakukan pendeteksian.</p>
<p><b>/G</b>, agar program berhenti sejenak untuk menunggu pemakai menukar disket. Hal ini diperlukan bila Anda ingin memeriksa disket lain pada komputer dengan drive tunggal.</p>
<p><b>/N</b>, agar program tidak melakukan pencarian vektor DOS terdalam. Dalam kerjanya program serum akan berusaha memanggil langsung titik terdalam dari vektor DOS, yang tujuannya agar operasi pembersihan file dapat berlangsung lebih aman. Bila serum tidak bekerja dengan baik, gunakan parameter ini agar program bekerja secara normal. Beberapa driver mensyaratkan Anda</p>
<p>memanggil vektor DOS secara normal, karena driver tersebut memanipulasi fungsi-fungsi DOS secara internal. Contohnya program NETX.COM dari Novell Netware.</p>
<p>Ada baiknya sebelum menggunakan serum ini Anda cobakan dulu pada beberapa file untuk memastikan bahwa serum bekerja dengan baik. Juga perlu dipastikan bahwa memori dalam keadaan bebas virus (lain), agar proses berjalan sesuai yang diharapkan. Bagi pemakai Windows 95, bila program serum ini mengalami kegagalan dalam melakukan suatu proses, Anda dapat mengatasinya dengan <i>shut down</i> ke mode MS-DOS, dan lakukan pembersihan dari sana.</p>
<p>Dalam prosesnya program ini tidak mengharapkan input dari pemakai, kecuali lewat parameter. Jadi bila suatu operasi tulis file gagal, karena disket diprotek misalnya, proses terus berjalan dengan memberikan pesan kesalahan secara umum. Proses dapat diulang kembali bila kesalahan telah diperbaiki. Bila Anda ingin menghentikan proses di tengah jalan, lakukan dengan menekan <b>Ctrl-C</b> atau <b>Ctrl-Break</b>.</p>
<h3>Penutup</h3>
<p>Ada pepatah mengatakan, ‘Demi nila setitik rusak susu sebelanga’. Mungkin virus komputer dapat kita ibaratkan nila setitik tadi, sebab dari kehadirannya yang tak seberapa dapat merusakkan sistem komputer kita. Pemecahannya seringkali tidak semudah menginstall ulang seluruh program. Arti penting data turut menjadi pertimbangan. Tanpa pemusnahan secara tepat dan menyeluruh, jadilah nila setitik tadi sesuatu yang sangat menjengkelkan.</p>
<p>Akhirnya penulis berharap semoga program ini bermanfaat bagi pembaca sekalian. Komentar, saran, kritik, atau apapun silakan layangkan ke Antivirus Media untuk ditanggapi seperlunya.</p>
<h3>Daftar Pustaka</h3>
<ol>
<li>David Jurgens. HelpPC v2.10 (c)1991. </li>
<li>Ralf Brown. The MSDOS Interrupt List. </li>
<li>PT Gramedia. 8088 Assembler. </li>
<li>AVP Virus Encyclopedia. </li>
</ol>
<p>&#160;</p>
<blockquote><h3>Demi Nila Setitik</h3>
<p>Pada proses pembedahan virus ini, penulis mendapat beberapa ‘kejutan’ ringan. Pertama masalah bom waktu. Pada saat penelitian virus ini, penulis tentu saja tidak mengetahui efek apa yang akan dilakukan oleh virus ini. HUT kemerdekaan lewat 3 hari, mulailah penulis melakukan penelitian terhadap virus ini. Yah, cukup terkejut juga ketika mengetahui bahwa virus ini mempunyai ‘humor’ tidak lucu 2 hari lagi. Terpaksa tanggal sistem diamankan ‘demi kepentingan bersama’.</p>
<p>Tentang partisi hard disk ada kejutan lain. Kebetulan konfigurasi hard disk penulis menggunakan</p>
<p>LBA dengan 1022 silinder, 64 track, dan 63 sektor. Bayangkan bila silindernya 1023, terjadilah kondisi ‘tahu tapi tak tahu’. Tahu bahwa hard disk ditulis, tapi tidak tahu file apa yang bermasalah. Kondisi 4-T tadi tentu saja cukup riskan, mengingat komputer hanya akan bekerja dengan baik dalam kondisi ‘tahu sama tahu’.</p>
<p>Belum lagi kejutan bahwa virus mampu melakukan penulisan langsung ke hard disk. Selama ini penulis cukup percaya bahwa BIOS mampu mencegah penulisan illegal ke daerah partisi. Pada virus-virus partisi lama memang BIOS cukup berdaya untuk mengatasi hal tersebut. Dan kini, apakah fasilitas ‘Virus Warning’ tersebut masih ada ‘gunanya’?</p>
<p>Tentu saja penulis jadi makin penasaran dengan kejutan-kejutan lain dari virus ini. Trik-trik dan cara kerja virus penulis amati dengan seksama. Beberapa kelemahan dan keunggulan virus dianalisa dan dicatat sebagai bahan perbandingan dengan banyak virus yang lain. Hingga akhirnya terciptalah serum anti virus Hare ini. Minimal penulis mengetahui teknologi baru yang akan dikembangkan oleh pembuat virus.</p>
<p>Dan para pembuat virus mungkin akan berseru: ‘Tunggulah kejutan berikutnya’.</p>
</blockquote>
<h3>&#160;</h3>
<h3>Listing Program</h3>
<pre><font face="Courier New">
<font color="#008000">{$S-,R-,I+,G+,X+,A+,B-}</font>
<font color="#008000">{$M 7505,0,0}</font>
<font color="#008000">{***********************************************}</font>
<font color="#008000">{ File:      ANTIHARE.PAS =&gt; ANTIHARE.EXE       }</font>
<font color="#008000">{ Deskripsi: Anti Virus Hare.7786               }</font>
<font color="#008000">{ Kompiler:  Turbo Pascal 6.0+, Borland, Inc    }</font>
<font color="#008000">{ Utilitas:  Debug.Exe, Microsoft, Corp         }</font>
<font color="#008000">{ Penulis:   M. Harjono                         }</font>
<font color="#008000">{ Tanggal:   30 Agustus 1997                    }</font>
<font color="#008000">{ Dedikasi:  * Pembaca Antivirus Media          }</font>
<font color="#008000">{            * BL-TI-93                         }</font>
<font color="#008000">{              (kapan skripsi diganti kliping?) }</font>
<font color="#008000">{ (c)1997 Antivirus Media                       }</font>
<font color="#008000">{***********************************************}</font>

<font color="#0000ff">program </font><font color="#000000">Anti_Virus_Hare</font><font color="#808000">;</font>
<font color="#0000ff">uses</font>
  <font color="#000000">Dos</font><font color="#808000">;</font>
<font color="#0000ff">type</font>
  <font color="#000000">R_Exe </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">MZ</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">_Mod</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">_Div</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Rel</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Hed</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">_M1</font><font color="#808000">,</font><font color="#000000">_M2</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">_SS</font><font color="#808000">,</font><font color="#000000">_SP</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">CkSum</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">_IP</font><font color="#808000">,</font><font color="#000000">_CS</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_Com </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">Kod</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
    <font color="#000000">JMP</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_PL </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#ff0000">Lo</font><font color="#808000">,</font><font color="#ff0000">Hi</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">Com </font><font color="#808000">= ^</font><font color="#000000">R_Com</font><font color="#808000">;</font>
  <font color="#000000">P_W </font><font color="#808000">= ^</font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">R_Pch </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">Lc</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Kb</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Kj</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">R_Dat </font><font color="#808000">= </font><font color="#0000ff">record</font>
    <font color="#000000">La</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Ld</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
    <font color="#000000">Id</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">8</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">const</font>
  <font color="#000000">HareD</font><font color="#808000">: </font><font color="#000000">R_Dat </font><font color="#808000">=</font>
    <font color="#808000">(</font><font color="#000000">La</font><font color="#808000">:$</font><font color="#000000">14</font><font color="#808000">;</font><font color="#000000">Ld</font><font color="#808000">:$</font><font color="#000000">16B</font><font color="#808000">;</font><font color="#000000">Id</font><font color="#808000"> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> $</font><font color="#000000">B8</font><font color="#808000">,$</font><font color="#000000">23</font><font color="#808000">,$</font><font color="#000000">FE</font><font color="#808000">,$</font><font color="#000000">CD</font><font color="#808000">,$</font><font color="#000000">21</font><font color="#808000">,$</font><font color="#000000">3D</font><font color="#808000">,$</font><font color="#000000">0D</font><font color="#808000">,$</font><font color="#000000">00</font><font color="#808000">));</font>
  <font color="#000000">BnPch </font><font color="#808000">= </font><font color="#000000">3</font><font color="#808000">;</font>
  <font color="#000000">HareJ</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">BnPch</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#000000">R_Pch </font><font color="#808000">=</font>
    <font color="#808000">((</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">038E</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">FC80</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">45EB</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">17EF</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">5350</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">31EB</font><font color="#808000">),</font>
     <font color="#808000">(</font><font color="#000000">Lc</font><font color="#808000">:$</font><font color="#000000">1B47</font><font color="#808000">;</font><font color="#000000">Kb</font><font color="#808000">:$</font><font color="#000000">FA81</font><font color="#808000">;</font><font color="#000000">Kj</font><font color="#808000">:$</font><font color="#000000">3FEB</font><font color="#808000">));</font>
  <font color="#000000">HareMundur </font><font color="#808000">= $</font><font color="#000000">1E6A</font><font color="#808000">;</font>
  <font color="#000000">Batal</font><font color="#808000">: </font><font color="#008080">Byte </font><font color="#808000">= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">Par_Tidak</font><font color="#808000">: </font><font color="#0000ff">set of </font><font color="#000000">0</font><font color="#808000">..</font><font color="#000000">15 </font><font color="#808000">= [];</font>
  <font color="#000000">Pil</font><font color="#808000">: </font><font color="#0000ff">set of </font><font color="#000000">0</font><font color="#808000">..</font><font color="#000000">7 </font><font color="#808000">= [];</font>
  <font color="#000000">BnExt </font><font color="#808000">= </font><font color="#000000">5</font><font color="#808000">;</font>
  <font color="#000000">DaftExt</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">BnExt</font><font color="#808000">*</font><font color="#000000">3</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Char </font><font color="#808000">=</font>
    <font color="#ff00ff">'EXECOMBINOVROVL'</font><font color="#808000">;</font>
  <font color="#000000">DevBaca  </font><font color="#808000">= $</font><font color="#000000">02</font><font color="#808000">;</font>
  <font color="#000000">DevTulis </font><font color="#808000">= $</font><font color="#000000">03</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">Kena</font><font color="#808000">,</font><font color="#000000">Proses</font><font color="#808000">,</font><font color="#000000">NSubDir</font><font color="#808000">: </font><font color="#008080">word</font><font color="#808000">;</font>
  <font color="#000000">Buf</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">..$</font><font color="#000000">1FF</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">BnHd</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">Int13h</font><font color="#808000">: </font><font color="#000000">Pointer</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">CekIdVir</font><font color="#808000">(</font><font color="#000000">PjC</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufM</font><font color="#808000">): </font><font color="#008080">Shortint</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#008000">{-- cari awal virus --}</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufM</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">HareD</font><font color="#808000">.</font><font color="#000000">Id</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#000000">PjC</font>
  <font color="#000000">cld</font>
  <font color="#000000">lodsb</font>
<font color="#808000">@@</font><font color="#000000">L1</font><font color="#808000">:</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">U1</font>
  <font color="#000000">push si</font>
  <font color="#000000">push di</font>
  <font color="#000000">push cx</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">HareD</font><font color="#808000">.</font><font color="#000000">Id</font><font color="#808000">-</font><font color="#000000">1</font>
  <font color="#000000">repz cmpsb</font>
  <font color="#000000">pop cx</font>
  <font color="#000000">pop di</font>
  <font color="#000000">pop si</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">L1</font>
  <font color="#000000">xchg cx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">U1</font><font color="#808000">:</font>
  <font color="#000000">xchg cx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">MCBAkhir</font><font color="#808000">(</font><font color="#000000">Pil</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">): </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#008000">{-- init UMB_Konv --}</font>
  <font color="#000000">mov dl</font><font color="#808000">,-</font><font color="#000000">1</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5802h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">jc </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5803h</font>
  <font color="#0000ff">xor </font><font color="#000000">bx</font><font color="#808000">,</font><font color="#000000">bx</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">jnc </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">mov dl</font><font color="#808000">,-</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">4</font><font color="#808000">:</font>
  <font color="#000000">push dx</font>
  <font color="#0000ff">xor </font><font color="#000000">si</font><font color="#808000">,</font><font color="#000000">si</font>
  <font color="#0000ff">xor </font><font color="#000000">dx</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#000000">cmp Pil</font><font color="#808000">,</font><font color="#000000">dl</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">Konv</font>
<font color="#008000">{-- mulai dari UMB --}</font>
  <font color="#ff0000">int </font><font color="#000000">12h</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">6</font>
  <font color="#0000ff">shl </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">cl</font>
  <font color="#ff0000">dec </font><font color="#000000">ax</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">cmp </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">8</font><font color="#808000">],</font><font color="#ff00ff">'CS'</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#008000">{-- mulai dari MCB pertama --}</font>
<font color="#808000">@@</font><font color="#000000">Konv</font><font color="#808000">:</font>
  <font color="#000000">mov ah</font><font color="#808000">,</font><font color="#000000">52h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">bx</font><font color="#808000">-</font><font color="#000000">2</font><font color="#808000">]</font>
<font color="#008000">{-- telusuri MCB --}</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">5Ah</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">4Dh</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">si</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">add dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">+</font><font color="#000000">3</font><font color="#808000">]</font>
  <font color="#ff0000">inc </font><font color="#000000">dx</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">add dx</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">+</font><font color="#000000">3</font><font color="#808000">]</font>
  <font color="#ff0000">inc </font><font color="#000000">dx</font>
  <font color="#000000">mov es</font><font color="#808000">,</font><font color="#000000">dx</font>
<font color="#008000">{-- cari Id virus --}</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">4000    </font><font color="#008000">{16K byte akhir}</font>
  <font color="#000000">push ax</font>
  <font color="#0000ff">xor </font><font color="#000000">di</font><font color="#808000">,</font><font color="#000000">di</font>
  <font color="#000000">push es</font>
  <font color="#000000">push di</font>
  <font color="#000000">call CekIdVir</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">xchg cx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#0000ff">not </font><font color="#000000">ax</font>
  <font color="#000000">add ax</font><font color="#808000">,$</font><font color="#000000">4000</font>
  <font color="#000000">sub ax</font><font color="#808000">,</font><font color="#000000">HareD</font><font color="#808000">.</font><font color="#000000">La</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">4</font>
  <font color="#0000ff">shr </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">cl</font>
  <font color="#000000">add ax</font><font color="#808000">,</font><font color="#000000">dx</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#008000">{-- kembalikan mem alloc stra --}</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">pop ax</font>
  <font color="#000000">cmp al</font><font color="#808000">,-</font><font color="#000000">1</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">5</font>
  <font color="#000000">cbw</font>
  <font color="#000000">xchg bx</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">5803h</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
<font color="#808000">@@</font><font color="#000000">5</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">K</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">);</font>
<font color="#0000ff">begin</font>
  <font color="#0000ff">case </font><font color="#000000">K </font><font color="#0000ff">of</font>
   <font color="#808000">-</font><font color="#000000">1</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi, gagal dipulihkan]'</font><font color="#808000">);</font>
   <font color="#808000">-</font><font color="#000000">2</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi]'</font><font color="#808000">);</font>
    <font color="#000000">0</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [ok]'</font><font color="#808000">);</font>
    <font color="#000000">1</font><font color="#808000">: </font><font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">' [terinfeksi, dipulihkan]'</font><font color="#808000">);</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">WinKrit</font><font color="#808000">(</font><font color="#000000">M</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">); </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">1680</font>
  <font color="#000000">add ax</font><font color="#808000">,</font><font color="#000000">M</font>
  <font color="#ff0000">int </font><font color="#000000">2Fh</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">PMem</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#ff0000">Seg</font><font color="#808000">,</font><font color="#000000">I</font><font color="#808000">,</font><font color="#000000">J</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">Kena</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#0000ff">for </font><font color="#000000">J </font><font color="#808000">:= </font><font color="#000000">0 </font><font color="#0000ff">to </font><font color="#000000">1 </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#ff0000">Seg </font><font color="#808000">:= </font><font color="#000000">MCBAkhir</font><font color="#808000">(</font><font color="#000000">J</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">Seg</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">BnPch </font><font color="#0000ff">do</font>
        <font color="#0000ff">with </font><font color="#000000">HareJ</font><font color="#808000">[</font><font color="#000000">I</font><font color="#808000">] </font><font color="#0000ff">do</font>
          <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">MemW</font><font color="#808000">[</font><font color="#ff0000">Seg</font><font color="#808000">:</font><font color="#000000">Lc</font><font color="#808000">] = </font><font color="#000000">Kb</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#0000ff">begin</font>
            <font color="#000000">WinKrit</font><font color="#808000">(</font><font color="#000000">1</font><font color="#808000">);</font>
            <font color="#000000">MemW</font><font color="#808000">[</font><font color="#ff0000">Seg</font><font color="#808000">:</font><font color="#000000">Lc</font><font color="#808000">] := </font><font color="#000000">Kj</font><font color="#808000">;</font>
            <font color="#000000">WinKrit</font><font color="#808000">(</font><font color="#000000">2</font><font color="#808000">);</font>
            <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
          <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">RqDev</font><font color="#808000">(</font><font color="#000000">Op</font><font color="#808000">,</font><font color="#000000">Dr</font><font color="#808000">:</font><font color="#008080">Byte</font><font color="#808000">; </font><font color="#000000">Hd</font><font color="#808000">,</font><font color="#000000">Tr</font><font color="#808000">,</font><font color="#000000">Sc</font><font color="#808000">:</font><font color="#008080">Word</font><font color="#808000">): </font><font color="#008080">Shortint</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">lea bx</font><font color="#808000">,</font><font color="#000000">Buf</font>
  <font color="#000000">push ds</font>
  <font color="#000000">pop es</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">Hd</font>
  <font color="#000000">xchg dh</font><font color="#808000">,</font><font color="#000000">dl</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">Dr</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#000000">Tr</font>
  <font color="#000000">xchg ch</font><font color="#808000">,</font><font color="#000000">cl</font>
  <font color="#000000">ror cl</font><font color="#808000">,</font><font color="#000000">1</font>
  <font color="#000000">ror cl</font><font color="#808000">,</font><font color="#000000">1</font>
  <font color="#000000">mov di</font><font color="#808000">,</font><font color="#000000">Sc</font>
  <font color="#ff0000">inc </font><font color="#000000">di</font>
  <font color="#0000ff">and </font><font color="#000000">di</font><font color="#808000">,$</font><font color="#000000">3F</font>
  <font color="#0000ff">or </font><font color="#000000">cx</font><font color="#808000">,</font><font color="#000000">di</font>
  <font color="#000000">mov di</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#000000">cmp dl</font><font color="#808000">,$</font><font color="#000000">80</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#ff0000">dec </font><font color="#000000">di</font>
  <font color="#ff0000">dec </font><font color="#000000">di</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">push dx</font>
  <font color="#0000ff">xor </font><font color="#000000">ax</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">pushf</font>
  <font color="#000000">call Int13h</font>
  <font color="#000000">pop dx</font>
  <font color="#000000">mov ah</font><font color="#808000">,</font><font color="#000000">Op</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">01</font>
  <font color="#000000">pushf</font>
  <font color="#000000">call Int13h</font>
  <font color="#000000">jnc </font><font color="#808000">@@</font><font color="#000000">U</font>
  <font color="#ff0000">dec </font><font color="#000000">di</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">stc</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">0</font>
  <font color="#000000">sbb al</font><font color="#808000">,</font><font color="#000000">0</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">PBoot</font><font color="#808000">(</font><font color="#000000">_Drv</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">);</font>
<font color="#0000ff">var</font>
  <font color="#000000">_Hd</font><font color="#808000">,</font><font color="#000000">_Tr</font><font color="#808000">,</font><font color="#000000">_Sc</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">Kena</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">RqDev</font><font color="#808000">(</font><font color="#000000">DevBaca</font><font color="#808000">,</font><font color="#000000">_Drv</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">) = </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">and</font>
    <font color="#808000">(</font><font color="#000000">P_W</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">[$</font><font color="#000000">102</font><font color="#808000">])^-</font><font color="#000000">P_W</font><font color="#808000">(@</font><font color="#000000">Buf</font><font color="#808000">[$</font><font color="#000000">100</font><font color="#808000">])^ = $</font><font color="#000000">CCFF</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">_Drv</font><font color="#808000">&lt;$</font><font color="#000000">80</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">_Hd </font><font color="#808000">:= $</font><font color="#000000">01</font><font color="#808000">;</font>
      <font color="#000000">_Sc </font><font color="#808000">:= $</font><font color="#000000">00</font><font color="#808000">;</font>
      <font color="#000000">_Tr </font><font color="#808000">:= $</font><font color="#000000">51</font><font color="#808000">;</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">[$</font><font color="#000000">15</font><font color="#808000">]=$</font><font color="#000000">FD</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#000000">_Tr </font><font color="#808000">:= $</font><font color="#000000">29</font><font color="#808000">;</font>
    <font color="#0000ff">end</font>
    <font color="#0000ff">else</font>
    <font color="#0000ff">asm</font>
      <font color="#000000">mov ah</font><font color="#808000">,$</font><font color="#000000">08</font>
      <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">_Drv</font>
      <font color="#ff0000">int </font><font color="#000000">13h</font>
      <font color="#ff0000">inc </font><font color="#000000">ch</font>
      <font color="#ff0000">dec </font><font color="#000000">dh</font>
      <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">cx</font>
      <font color="#0000ff">and </font><font color="#000000">cl</font><font color="#808000">,$</font><font color="#000000">3F</font>
      <font color="#000000">sub cl</font><font color="#808000">,$</font><font color="#000000">11</font>
      <font color="#000000">mov ch</font><font color="#808000">,</font><font color="#000000">0</font>
      <font color="#000000">mov _Sc</font><font color="#808000">,</font><font color="#000000">cx</font>
      <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">6</font>
      <font color="#0000ff">shr </font><font color="#000000">al</font><font color="#808000">,</font><font color="#000000">cl</font>
      <font color="#000000">xchg ah</font><font color="#808000">,</font><font color="#000000">al</font>
      <font color="#000000">mov _Tr</font><font color="#808000">,</font><font color="#000000">ax</font>
      <font color="#000000">xchg dh</font><font color="#808000">,</font><font color="#000000">dl</font>
      <font color="#000000">mov dh</font><font color="#808000">,</font><font color="#000000">0</font>
      <font color="#000000">mov _Hd</font><font color="#808000">,</font><font color="#000000">dx</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">RqDev</font><font color="#808000">(</font><font color="#000000">DevBaca</font><font color="#808000">,</font><font color="#000000">_Drv</font><font color="#808000">,</font><font color="#000000">_Hd</font><font color="#808000">,</font><font color="#000000">_Tr</font><font color="#808000">,</font><font color="#000000">_Sc</font><font color="#808000">)=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">and</font>
      <font color="#808000">(</font><font color="#000000">CekIdVir</font><font color="#808000">($</font><font color="#000000">100</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">)=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#008000">{-- ambil sektor asli dan kembalikan --}</font>
      <font color="#000000">Kena </font><font color="#808000">:= -</font><font color="#000000">1</font><font color="#808000">;</font>
      <font color="#0000ff">if not</font><font color="#808000">(</font><font color="#000000">3 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#000000">Kena </font><font color="#808000">:= -</font><font color="#000000">2</font>
      <font color="#0000ff">else</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">3 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">RqDev</font><font color="#808000">(</font><font color="#000000">DevBaca</font><font color="#808000">,</font><font color="#000000">_Drv</font><font color="#808000">,</font><font color="#000000">_Hd</font><font color="#808000">,</font><font color="#000000">_Tr</font><font color="#808000">,</font><font color="#000000">_Sc</font><font color="#808000">+$</font><font color="#000000">10</font><font color="#808000">) = </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">and</font>
           <font color="#808000">(</font><font color="#000000">RqDev</font><font color="#808000">(</font><font color="#000000">DevTulis</font><font color="#808000">,</font><font color="#000000">_Drv</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">) = </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">_Drv</font><font color="#808000">&lt;$</font><font color="#000000">80</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'   Boot Sektor'</font><font color="#808000">);</font>
      <font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font>
  <font color="#0000ff">else</font>
    <font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">CekHare</font><font color="#808000">(</font><font color="#000000">PjC</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">Buf</font><font color="#808000">): </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">Buf</font>
  <font color="#000000">std</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">2Eh</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#000000">PjC</font>
  <font color="#0000ff">xor </font><font color="#000000">dx</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#000000">jcxz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">+</font><font color="#000000">2</font><font color="#808000">]</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">30h    </font><font color="#008000">{xor}</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">00h    </font><font color="#008000">{add}</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">28h    </font><font color="#008000">{sub}</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">xchg ah</font><font color="#808000">,</font><font color="#000000">al</font>
  <font color="#000000">test al</font><font color="#808000">,$</font><font color="#000000">C0   </font><font color="#008000">{cek mod=00}</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#0000ff">shr </font><font color="#000000">al</font><font color="#808000">,</font><font color="#000000">cl</font>
  <font color="#000000">add al</font><font color="#808000">,$</font><font color="#000000">B0    </font><font color="#008000">{kode reg}</font>
  <font color="#000000">mov cl</font><font color="#808000">,$</font><font color="#000000">32</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">+</font><font color="#000000">2</font><font color="#808000">]</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">cld</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">Dekrip</font><font color="#808000">(</font><font color="#000000">Dek</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">; </font><font color="#0000ff">var </font><font color="#000000">BufH</font><font color="#808000">): </font><font color="#008080">Longint</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">Buf</font>
  <font color="#000000">mov cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">Buf</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">Dek</font>
  <font color="#000000">xchg ah</font><font color="#808000">,</font><font color="#000000">al</font>
  <font color="#000000">add al</font><font color="#808000">,</font><font color="#000000">4</font>
  <font color="#000000">mov </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">cs</font><font color="#808000">:[@@</font><font color="#000000">2</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">cld</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">lodsb</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#0000ff">xor </font><font color="#000000">al</font><font color="#808000">,$</font><font color="#000000">00    </font><font color="#008000">{-tetap-}</font>
  <font color="#0000ff">not </font><font color="#000000">al</font>
  <font color="#000000">mov ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">],</font><font color="#000000">al</font>
  <font color="#000000">loop </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#008000">{-- cari awal virus --}</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">Buf</font>
  <font color="#000000">push ax</font>
  <font color="#000000">lea di</font><font color="#808000">,</font><font color="#000000">Buf</font>
  <font color="#000000">push ds</font>
  <font color="#000000">push di</font>
  <font color="#000000">call CekIdVir</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">U</font>
  <font color="#0000ff">not </font><font color="#000000">cx</font>
  <font color="#000000">add cx</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">Buf</font>
  <font color="#000000">sub cx</font><font color="#808000">,</font><font color="#000000">HareD</font><font color="#808000">.</font><font color="#000000">La</font>
  <font color="#008000">{-- pindahkan data prog ke bufh --}</font>
  <font color="#000000">add di</font><font color="#808000">,</font><font color="#000000">HareD</font><font color="#808000">.</font><font color="#000000">Ld</font>
  <font color="#000000">sub di</font><font color="#808000">,</font><font color="#000000">HareD</font><font color="#808000">.</font><font color="#000000">La</font>
  <font color="#000000">lea si</font><font color="#808000">,[</font><font color="#000000">di</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">]</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">BufH</font>
  <font color="#000000">cmp </font><font color="#008080">byte </font><font color="#ff0000">ptr </font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">+</font><font color="#000000">7</font><font color="#808000">*</font><font color="#000000">2</font><font color="#808000">],</font><font color="#000000">01  </font><font color="#008000">{EXE?}</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">stosw</font>
  <font color="#000000">lodsb</font>
  <font color="#000000">stosb</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Com</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">U</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_IP</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_CS</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_SP</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_SS</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_Mod</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">mov es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">.</font><font color="#000000">R_Exe</font><font color="#808000">.</font><font color="#000000">_Div</font><font color="#808000">],</font><font color="#000000">ax</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#0000ff">type </font><font color="#000000">R_Exe</font>
<font color="#808000">@@</font><font color="#000000">U</font><font color="#808000">:</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">cx</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{$I-}</font>
<font color="#0000ff">function </font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">NmF</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">): </font><font color="#008080">shortint</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">F1</font><font color="#808000">: </font><font color="#0000ff">file</font><font color="#808000">;</font>
  <font color="#000000">BufH</font><font color="#808000">: </font><font color="#000000">R_Exe</font><font color="#808000">;</font>
  <font color="#000000">PjBc</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">,</font><font color="#000000">Dek</font><font color="#808000">: </font><font color="#008080">Word</font><font color="#808000">;</font>
  <font color="#000000">LokV</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">,</font><font color="#000000">LokD</font><font color="#808000">: </font><font color="#008080">Longint</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">PrsFile</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">FileMode </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#ff0000">Reset</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">1</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">InOutRes </font><font color="#808000">&lt;&gt; </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">),</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">PjBc</font><font color="#808000">&lt;&gt;</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">)) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">.</font><font color="#000000">MZ </font><font color="#808000">= $</font><font color="#000000">4D5A</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">BufH</font><font color="#808000">.</font><font color="#000000">MZ </font><font color="#808000">= $</font><font color="#000000">5A4D</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">with </font><font color="#000000">BufH </font><font color="#0000ff">do</font>
      <font color="#000000">LokV </font><font color="#808000">:= </font><font color="#008080">Longint</font><font color="#808000">(</font><font color="#000000">hed</font><font color="#808000">+</font><font color="#000000">_cs</font><font color="#808000">)*$</font><font color="#000000">10 </font><font color="#808000">+ </font><font color="#000000">_ip</font><font color="#808000">;</font>
  <font color="#0000ff">end</font>
  <font color="#0000ff">else</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">with </font><font color="#000000">Com</font><font color="#808000">(@</font><font color="#000000">BufH</font><font color="#808000">)^ </font><font color="#0000ff">do</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Kod</font><font color="#808000">=$</font><font color="#000000">E9</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#000000">LokV </font><font color="#808000">:= </font><font color="#000000">JMP </font><font color="#808000">+ </font><font color="#000000">3</font>
      <font color="#0000ff">else</font>
        <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">LokV</font><font color="#808000">);</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,$</font><font color="#000000">40</font><font color="#808000">,</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#000000">Dek </font><font color="#808000">:= </font><font color="#000000">CekHare</font><font color="#808000">(</font><font color="#000000">PjBc</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">[</font><font color="#000000">PjBc</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">]);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Dek</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">LokV</font><font color="#808000">-</font><font color="#000000">HareMundur</font><font color="#808000">);</font>
  <font color="#ff0000">BlockRead</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Buf</font><font color="#808000">,</font><font color="#ff0000">SizeOf</font><font color="#808000">(</font><font color="#000000">Buf</font><font color="#808000">),</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#000000">LokD </font><font color="#808000">:= </font><font color="#000000">Dekrip</font><font color="#808000">(</font><font color="#000000">Dek</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#000000">R_PL</font><font color="#808000">(</font><font color="#000000">LokD</font><font color="#808000">).</font><font color="#ff0000">Lo</font><font color="#808000">=</font><font color="#000000">0 </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#008000">{-- positif bervirus --}</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= -</font><font color="#000000">2</font><font color="#808000">;</font>
  <font color="#0000ff">if not </font><font color="#808000">(</font><font color="#000000">3 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= -</font><font color="#000000">1</font><font color="#808000">;</font>
  <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#000000">GetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">ReadOnly </font><font color="#808000">= </font><font color="#000000">ReadOnly</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#000000">SetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr </font><font color="#0000ff">and not</font><font color="#808000">(</font><font color="#000000">ReadOnly</font><font color="#808000">));</font>
  <font color="#000000">FileMode </font><font color="#808000">:= </font><font color="#000000">2</font><font color="#808000">;</font>
  <font color="#ff0000">Reset</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">1</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">InOutRes</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#000000">GetFTime</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">);</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">0</font><font color="#808000">);</font>
  <font color="#ff0000">BlockWrite</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">BufH</font><font color="#808000">,</font><font color="#000000">R_PL</font><font color="#808000">(</font><font color="#000000">LokD</font><font color="#808000">).</font><font color="#ff0000">Lo</font><font color="#808000">,</font><font color="#000000">PjBc</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">PjBc</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#808000">(</font><font color="#000000">InOutRes</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#ff0000">Seek</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,(</font><font color="#000000">LokV</font><font color="#808000">-</font><font color="#000000">HareMundur</font><font color="#808000">)-</font><font color="#000000">R_PL</font><font color="#808000">(</font><font color="#000000">LokD</font><font color="#808000">).</font><font color="#ff0000">Hi</font><font color="#808000">);</font>
  <font color="#ff0000">Truncate</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">InOutRes</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#ff0000">Dec</font><font color="#808000">(</font><font color="#000000">Wkt</font><font color="#808000">);</font>
  <font color="#000000">SetFTime</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Wkt</font><font color="#808000">);</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">ReadOnly </font><font color="#808000">= </font><font color="#000000">ReadOnly</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#000000">SetFAttr</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">Attr</font><font color="#808000">);</font>
  <font color="#000000">PulihFile </font><font color="#808000">:= </font><font color="#000000">1</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">begin</font>
  <font color="#ff0000">Assign</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">,</font><font color="#000000">NmF</font><font color="#808000">);</font>
  <font color="#000000">PrsFile</font><font color="#808000">;</font>
  <font color="#ff0000">Close</font><font color="#808000">(</font><font color="#000000">F1</font><font color="#808000">);</font>
  <font color="#000000">InOutRes </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#008000">{$I+}</font>

<font color="#008000">{-- cari vektor 21h asli --}</font>
<font color="#0000ff">function </font><font color="#000000">Vektor21h</font><font color="#808000">: </font><font color="#000000">Pointer</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ds</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#000000">PrefixSeg</font>
  <font color="#000000">mov ds</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">mov si</font><font color="#808000">,$</font><font color="#000000">0005</font>
  <font color="#0000ff">xor </font><font color="#000000">bx</font><font color="#808000">,</font><font color="#000000">bx</font>
  <font color="#0000ff">xor </font><font color="#000000">dx</font><font color="#808000">,</font><font color="#000000">dx</font>
  <font color="#000000">cld</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">lodsb</font>
  <font color="#000000">cmp al</font><font color="#808000">,$</font><font color="#000000">9A</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">cmp al</font><font color="#808000">,$</font><font color="#000000">EA</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">2</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">lds si</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">3</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">add si</font><font color="#808000">,</font><font color="#000000">4</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">cmp ax</font><font color="#808000">,$</font><font color="#000000">FF2E</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">lodsb</font>
  <font color="#000000">cmp al</font><font color="#808000">,$</font><font color="#000000">2E</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">lodsw</font>
  <font color="#000000">xchg si</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">ds</font><font color="#808000">:[</font><font color="#000000">si</font><font color="#808000">]</font>
  <font color="#000000">mov cx</font><font color="#808000">,$</font><font color="#000000">0100</font>
<font color="#808000">@@</font><font color="#000000">5</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,$</font><font color="#000000">FA</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">4</font>
  <font color="#000000">cmp </font><font color="#008080">word </font><font color="#ff0000">ptr </font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">],$</font><font color="#000000">FC80</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">5</font>
  <font color="#000000">mov dx</font><font color="#808000">,</font><font color="#000000">es</font>
  <font color="#000000">lea bx</font><font color="#808000">,[</font><font color="#000000">di</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">]</font>
<font color="#808000">@@</font><font color="#000000">4</font><font color="#808000">:</font>
  <font color="#000000">pop ds</font>
  <font color="#000000">xchg bx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{-- konversi huruf kecil mjd besar --}</font>
<font color="#0000ff">procedure </font><font color="#000000">HBesar</font><font color="#808000">(</font><font color="#0000ff">var </font><font color="#000000">S</font><font color="#808000">); </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">S</font>
  <font color="#0000ff">xor </font><font color="#000000">cx</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#000000">jcxz </font><font color="#808000">@@</font><font color="#000000">L3</font>
  <font color="#000000">cld</font>
  <font color="#ff0000">inc </font><font color="#000000">di</font>
<font color="#808000">@@</font><font color="#000000">L1</font><font color="#808000">:</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#ff00ff">'a'</font>
  <font color="#000000">jb </font><font color="#808000">@@</font><font color="#000000">L2</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#ff00ff">'z'</font>
  <font color="#000000">ja </font><font color="#808000">@@</font><font color="#000000">L2</font>
  <font color="#000000">sub al</font><font color="#808000">,$</font><font color="#000000">20</font>
<font color="#808000">@@</font><font color="#000000">L2</font><font color="#808000">:</font>
  <font color="#000000">stosb</font>
  <font color="#000000">loop </font><font color="#808000">@@</font><font color="#000000">L1</font>
<font color="#808000">@@</font><font color="#000000">L3</font><font color="#808000">:</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{-- cek ekstensi file terdaftar --}</font>
<font color="#0000ff">function </font><font color="#000000">CekNmf</font><font color="#808000">(</font><font color="#0000ff">var </font><font color="#000000">Buf</font><font color="#808000">): </font><font color="#008080">Boolean</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">0</font>
  <font color="#000000">les di</font><font color="#808000">,</font><font color="#000000">Buf</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#ff00ff">'.'</font>
  <font color="#0000ff">xor </font><font color="#000000">cx</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#000000">mov cl</font><font color="#808000">,</font><font color="#000000">es</font><font color="#808000">:[</font><font color="#000000">di</font><font color="#808000">]</font>
  <font color="#ff0000">inc </font><font color="#000000">di</font>
  <font color="#000000">cld</font>
  <font color="#000000">repnz scasb</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">cmp cx</font><font color="#808000">,</font><font color="#000000">3</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#000000">lea si</font><font color="#808000">,</font><font color="#000000">DaftExt</font>
  <font color="#000000">mov bx</font><font color="#808000">,</font><font color="#000000">BnExt</font>
<font color="#808000">@@</font><font color="#000000">2</font><font color="#808000">:</font>
  <font color="#000000">push si</font>
  <font color="#000000">push di</font>
  <font color="#000000">push cx</font>
  <font color="#000000">repz cmpsb</font>
  <font color="#000000">pop cx</font>
  <font color="#000000">pop di</font>
  <font color="#000000">pop si</font>
  <font color="#000000">jz </font><font color="#808000">@@</font><font color="#000000">3</font>
  <font color="#000000">add si</font><font color="#808000">,</font><font color="#000000">cx</font>
  <font color="#ff0000">dec </font><font color="#000000">bx</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">2</font>
  <font color="#000000">jmp </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">3</font><font color="#808000">:</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">1</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#008000">{$S+}</font>
<font color="#0000ff">procedure </font><font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">: </font><font color="#000000">PathStr</font><font color="#808000">);</font>
<font color="#0000ff">var</font>
  <font color="#000000">SR</font><font color="#808000">: </font><font color="#000000">SearchRec</font><font color="#808000">;</font>
  <font color="#000000">Kond</font><font color="#808000">: </font><font color="#008080">Shortint</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">NSubDir</font><font color="#808000">);</font>
  <font color="#000000">FindFirst</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#ff00ff">'*.*'</font><font color="#808000">,</font><font color="#000000">AnyFile</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">);</font>
  <font color="#0000ff">while </font><font color="#808000">(</font><font color="#000000">DosError</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Batal</font><font color="#808000">=</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">] &lt;&gt; </font><font color="#ff00ff">'.'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">VolumeID </font><font color="#808000">&lt;&gt; </font><font color="#000000">VolumeID</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Attr </font><font color="#0000ff">and </font><font color="#000000">Directory </font><font color="#808000">= </font><font color="#000000">Directory</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">1 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">WriteLn</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Periksa '</font><font color="#808000">,</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">10</font><font color="#808000">);</font>
          <font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">+</font><font color="#ff00ff">'\'</font><font color="#808000">);</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#0000ff">end</font>
      <font color="#0000ff">else</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">2 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">or </font><font color="#000000">CekNmf</font><font color="#808000">(</font><font color="#000000">Sr</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Proses</font><font color="#808000">);</font>
          <font color="#ff0000">Write</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#808000">,</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">:</font><font color="#000000">14</font><font color="#808000">);</font>
          <font color="#000000">Kond </font><font color="#808000">:= </font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">);</font>
          <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Kond</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
          <font color="#0000ff">begin</font>
            <font color="#000000">Kondisi</font><font color="#808000">(</font><font color="#000000">Kond</font><font color="#808000">);</font>
            <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Kena</font><font color="#808000">);</font>
            <font color="#0000ff">while </font><font color="#808000">(</font><font color="#000000">Kond</font><font color="#808000">=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">PulihFile</font><font color="#808000">(</font><font color="#000000">S</font><font color="#808000">+</font><font color="#000000">SR</font><font color="#808000">.</font><font color="#000000">Name</font><font color="#808000">)=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">do</font><font color="#808000">;</font>
          <font color="#0000ff">end</font><font color="#808000">;</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
    <font color="#000000">FindNext</font><font color="#808000">(</font><font color="#000000">SR</font><font color="#808000">);</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#0000ff">end</font><font color="#808000">;</font>
<font color="#008000">{$S-}</font>

<font color="#0000ff">function </font><font color="#000000">DriveDisket</font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">): </font><font color="#008080">Boolean</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">4408</font>
  <font color="#000000">mov bl</font><font color="#808000">,</font><font color="#000000">Drv</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">mov dl</font><font color="#808000">,</font><font color="#000000">0</font>
  <font color="#000000">jc </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#0000ff">or </font><font color="#000000">al</font><font color="#808000">,</font><font color="#000000">al</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
  <font color="#ff0000">inc </font><font color="#000000">dx</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">xchg dx</font><font color="#808000">,</font><font color="#000000">ax</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">function </font><font color="#000000">DriveAktif</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov ah</font><font color="#808000">,$</font><font color="#000000">19</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">TungguEnter</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
<font color="#808000">@@</font><font color="#000000">1</font><font color="#808000">:</font>
  <font color="#000000">mov ax</font><font color="#808000">,$</font><font color="#000000">0C08</font>
  <font color="#ff0000">int </font><font color="#000000">21h</font>
  <font color="#000000">cmp al</font><font color="#808000">,</font><font color="#000000">13</font>
  <font color="#000000">jnz </font><font color="#808000">@@</font><font color="#000000">1</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">IntNull</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">mov al</font><font color="#808000">,</font><font color="#000000">03</font>
  <font color="#000000">iret</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">procedure </font><font color="#000000">CekBreak</font><font color="#808000">; </font><font color="#000000">assembler</font><font color="#808000">;</font>
<font color="#0000ff">asm</font>
  <font color="#000000">push ax</font>
  <font color="#000000">push ds</font>
  <font color="#000000">mov ax</font><font color="#808000">,</font><font color="#ff0000">Seg </font><font color="#808000">@</font><font color="#000000">Data</font>
  <font color="#000000">mov ds</font><font color="#808000">,</font><font color="#000000">ax</font>
  <font color="#ff0000">inc </font><font color="#000000">Batal</font>
  <font color="#000000">pop ds</font>
  <font color="#000000">pop ax</font>
  <font color="#000000">iret</font>
<font color="#0000ff">end</font><font color="#808000">;</font>

<font color="#0000ff">const</font>
  <font color="#000000">TotPar </font><font color="#808000">= </font><font color="#000000">5</font><font color="#808000">;</font>
  <font color="#000000">DafPar</font><font color="#808000">: </font><font color="#0000ff">array</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">..</font><font color="#000000">TotPar</font><font color="#808000">] </font><font color="#0000ff">of </font><font color="#008080">Char </font><font color="#808000">= </font><font color="#ff00ff">'SACGN'</font><font color="#808000">;</font>
<font color="#0000ff">var</font>
  <font color="#000000">Par</font><font color="#808000">: </font><font color="#0000ff">string</font><font color="#808000">[</font><font color="#000000">128</font><font color="#808000">];</font>
  <font color="#000000">I</font><font color="#808000">,</font><font color="#000000">P</font><font color="#808000">,</font><font color="#000000">J</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">Drv</font><font color="#808000">: </font><font color="#008080">Byte</font><font color="#808000">;</font>
  <font color="#000000">Int21h</font><font color="#808000">: </font><font color="#000000">Pointer</font><font color="#808000">;</font>
<font color="#0000ff">begin</font>
  <font color="#ff0000">WriteLn</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' Anti Virus Hare  v1.01.001'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' Dibuat oleh M. Harjono'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">254</font><font color="#ff00ff">' (c)1997 Antivirus Media'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">);</font>
  <font color="#000000">P </font><font color="#808000">:= </font><font color="#ff0000">ParamCount</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">P </font><font color="#808000">= </font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#ff0000">Writeln</font><font color="#808000">(</font><font color="#ff00ff">'Sintak: ANTIHARE &lt;[dir1] [dir2]...&gt; [/s /a /c /g /n]'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /s = masuk sub direktori'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /a = proses semua file'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /c = deteksi dan bersihkan'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /g = tunggu ganti disket'</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">+</font>
            <font color="#ff00ff">'  /n = vektor 21h normal'</font><font color="#808000">);</font>
    <font color="#0000ff">Exit</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- olah parameter --}</font>
  <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">P </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#000000">Par </font><font color="#808000">:= </font><font color="#ff0000">ParamStr</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
    <font color="#000000">HBesar</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
    <font color="#0000ff">if </font><font color="#808000">(</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)=</font><font color="#000000">2</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">]=</font><font color="#ff00ff">'/'</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#0000ff">for </font><font color="#000000">J </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">TotPar </font><font color="#0000ff">do</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">2</font><font color="#808000">]=</font><font color="#000000">DafPar</font><font color="#808000">[</font><font color="#000000">J</font><font color="#808000">]) </font><font color="#0000ff">then</font>
          <font color="#000000">Pil </font><font color="#808000">:= </font><font color="#000000">Pil </font><font color="#808000">+ [</font><font color="#000000">J</font><font color="#808000">];</font>
      <font color="#000000">Par_Tidak </font><font color="#808000">:= </font><font color="#000000">Par_Tidak </font><font color="#808000">+ [</font><font color="#000000">I</font><font color="#808000">];</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- init program --}</font>
  <font color="#000000">GetIntVec</font><font color="#808000">($</font><font color="#000000">13</font><font color="#808000">,</font><font color="#000000">Int13h</font><font color="#808000">);</font>
  <font color="#000000">Int21h </font><font color="#808000">:= </font><font color="#000000">Vektor21h</font><font color="#808000">;</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Int21h</font><font color="#808000">&lt;&gt;</font><font color="#0000ff">nil</font><font color="#808000">) </font><font color="#0000ff">and not</font><font color="#808000">(</font><font color="#000000">5 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">21</font><font color="#808000">,</font><font color="#000000">Int21h</font><font color="#808000">);</font>
  <font color="#008000">{---}</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">21</font><font color="#808000">,</font><font color="#000000">SaveInt21</font><font color="#808000">);</font>
  <font color="#008000">{---}</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">23</font><font color="#808000">,@</font><font color="#000000">CekBreak</font><font color="#808000">);</font>
  <font color="#000000">SetIntVec</font><font color="#808000">($</font><font color="#000000">24</font><font color="#808000">,@</font><font color="#000000">IntNull</font><font color="#808000">);</font>
  <font color="#000000">Kena </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">Proses </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#000000">NSubDir </font><font color="#808000">:= </font><font color="#000000">0</font><font color="#808000">;</font>
  <font color="#008000">{-- periksa memori --}</font>
  <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'Cek Memori....'</font><font color="#808000">);</font>
  <font color="#000000">PMem</font><font color="#808000">;</font>
  <font color="#008000">{-- periksa partisi --}</font>
  <font color="#000000">BnHd </font><font color="#808000">:= </font><font color="#000000">Mem</font><font color="#808000">[$</font><font color="#000000">40</font><font color="#808000">:$</font><font color="#000000">75</font><font color="#808000">];</font>
  <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">BnHD</font><font color="#808000">&lt;&gt;</font><font color="#000000">0</font><font color="#808000">) </font><font color="#0000ff">then</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">BnHd </font><font color="#0000ff">do</font>
    <font color="#0000ff">begin</font>
      <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">'Cek Partisi..'</font><font color="#808000">,</font><font color="#000000">I</font><font color="#808000">-</font><font color="#000000">1</font><font color="#808000">);</font>
      <font color="#000000">PBoot</font><font color="#808000">($</font><font color="#000000">7F</font><font color="#808000">+</font><font color="#000000">I</font><font color="#808000">);</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#008000">{-- periksa boot/file --}</font>
  <font color="#0000ff">for </font><font color="#000000">I </font><font color="#808000">:= </font><font color="#000000">1 </font><font color="#0000ff">to </font><font color="#000000">P </font><font color="#0000ff">do</font>
  <font color="#0000ff">begin</font>
    <font color="#0000ff">if not </font><font color="#808000">(</font><font color="#000000">I </font><font color="#0000ff">in </font><font color="#000000">Par_Tidak</font><font color="#808000">) </font><font color="#0000ff">then</font>
    <font color="#0000ff">begin</font>
      <font color="#000000">Par </font><font color="#808000">:= </font><font color="#ff0000">ParamStr</font><font color="#808000">(</font><font color="#000000">I</font><font color="#808000">);</font>
      <font color="#000000">HBesar</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)] &lt;&gt; </font><font color="#ff00ff">':'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)] &lt;&gt; </font><font color="#ff00ff">'\'</font><font color="#808000">) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#ff0000">Inc</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">0</font><font color="#808000">]);</font>
        <font color="#000000">Par</font><font color="#808000">[</font><font color="#ff0000">Length</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">)] := </font><font color="#ff00ff">'\'</font><font color="#808000">;</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#ff0000">Writeln</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Periksa '</font><font color="#808000">,</font><font color="#000000">Par</font><font color="#808000">,</font><font color="#ff00ff">' '</font><font color="#808000">:</font><font color="#000000">10</font><font color="#808000">);</font>
      <font color="#000000">Drv </font><font color="#808000">:= </font><font color="#000000">DriveAktif</font><font color="#808000">;</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">2</font><font color="#808000">] = </font><font color="#ff00ff">':'</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">] </font><font color="#0000ff">in </font><font color="#808000">[</font><font color="#ff00ff">'A'</font><font color="#808000">..</font><font color="#ff00ff">'Z'</font><font color="#808000">]) </font><font color="#0000ff">then</font>
        <font color="#000000">Drv </font><font color="#808000">:= </font><font color="#ff0000">Ord</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">[</font><font color="#000000">1</font><font color="#808000">])-</font><font color="#ff0000">Ord</font><font color="#808000">(</font><font color="#ff00ff">'A'</font><font color="#808000">);</font>
      <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">&lt;=</font><font color="#000000">1</font><font color="#808000">) </font><font color="#0000ff">and </font><font color="#808000">(</font><font color="#000000">DriveDisket</font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">+</font><font color="#000000">1</font><font color="#808000">)) </font><font color="#0000ff">then</font>
      <font color="#0000ff">begin</font>
        <font color="#0000ff">if </font><font color="#808000">(</font><font color="#000000">4 </font><font color="#0000ff">in </font><font color="#000000">Pil</font><font color="#808000">) </font><font color="#0000ff">then</font>
        <font color="#0000ff">begin</font>
          <font color="#ff0000">Write</font><font color="#808000">(</font><font color="#ff00ff">' &lt;Tekan Enter&gt; '</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">);</font>
          <font color="#000000">TungguEnter</font><font color="#808000">;</font>
        <font color="#0000ff">end</font><font color="#808000">;</font>
        <font color="#000000">PBoot</font><font color="#808000">(</font><font color="#000000">Drv</font><font color="#808000">);</font>
      <font color="#0000ff">end</font><font color="#808000">;</font>
      <font color="#000000">PDir</font><font color="#808000">(</font><font color="#000000">Par</font><font color="#808000">);</font>
    <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#0000ff">end</font><font color="#808000">;</font>
  <font color="#ff0000">Writeln</font><font color="#808000">(#</font><font color="#000000">13</font><font color="#ff00ff">'Hasil:        '</font><font color="#808000">#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  Direktori = '</font><font color="#808000">,</font><font color="#000000">NSubDir</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  File      = '</font><font color="#808000">,</font><font color="#000000">Proses</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">+</font>
          <font color="#ff00ff">'  Terkena   = '</font><font color="#808000">,</font><font color="#000000">Kena</font><font color="#808000">:</font><font color="#000000">6</font><font color="#808000">,#</font><font color="#000000">13</font><font color="#808000">#</font><font color="#000000">10</font><font color="#808000">);</font>
<font color="#0000ff">end</font><font color="#808000">.</font>
</font></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/649/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=649&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2011/08/18/serum-virus-hare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2011/10/virus_multi.gif" medium="image">
			<media:title type="html">virus_multi</media:title>
		</media:content>
	</item>
		<item>
		<title>RUTIN SERBU-1 (RS-1)</title>
		<link>http://oguds.wordpress.com/2011/08/17/rutin-serbu-1-rs-1/</link>
		<comments>http://oguds.wordpress.com/2011/08/17/rutin-serbu-1-rs-1/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 14:08:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Nostalgia]]></category>
		<category><![CDATA[virus komputer]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2011/08/17/rutin-serbu-1-rs-1/</guid>
		<description><![CDATA[Tulisan ini dibuang sayang. Dokumentasi keisengan dahulu kala, sekitar 15 tahun lalu. Membuat virus komputer tentu bukanlah tindakan yang baik, apalagi membuat susah hidup orang lain. Saya pun mengecam mereka-mereka yang masih melakukannya hingga hari ini, dengan dampak kerusakan yang semakin besar. Bukankah era teknologi informasi sekarang sedemikian meriah, dengan kreativitas yang semakin berkembang dan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=643&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="virus_komputer" style="display:inline;border-width:0;margin:0 10px 0 0;" height="68" alt="virus_komputer" src="http://oguds.files.wordpress.com/2011/10/virus_komputer1.gif?w=68&#038;h=68" width="68" align="left" border="0" /> Tulisan ini dibuang sayang. Dokumentasi keisengan dahulu kala, sekitar 15 tahun lalu. Membuat virus komputer tentu bukanlah tindakan yang baik, apalagi membuat susah hidup orang lain. Saya pun mengecam mereka-mereka yang masih melakukannya hingga hari ini, dengan dampak kerusakan yang semakin besar. Bukankah era teknologi informasi sekarang sedemikian meriah, dengan kreativitas yang semakin berkembang dan menantang? Marilah kita semua membangun secara positif di era informasi ini, demi kemajuan kita bersama. Amin.</p>
<p><span id="more-643"></span><br />
<h3>RUTIN SERBU-1 (RS-1), dibuat dengan TURBO PASCAL (Borland)</h3>
<p>Membutuhkan:</p>
<ul>
<li>Prosesor 8086+ (lingkungan asli DOS) </li>
<li>PC-DOS/MS-DOS 3.30+ </li>
</ul>
<p>Fisik Program: </p>
<ul>
<li>Besar fisik +/ 3.5 KB </li>
<li>Menempati memory +/ 3.8 KB </li>
<li>Mencegat fungsi Int. 21h dan 2Fh </li>
</ul>
<p>Karakteristik:</p>
<ul>
<li>Anti Debugging&#160; (Int 3, Breakpoint) </li>
<li>Anti SoftIce (Int 3, Back Door) </li>
<li>Anti Tracing (Int 1, Single Step) </li>
<li>Anti Cek Memory (MDSCAND, dkk) </li>
<li>Anti VSafe (Int 16h) </li>
<li>Anti SHIELD GATE MAV (Int 21h, Dup) </li>
<li>Anti Self Check CPAV&#160; (Int 21h, Hdl) </li>
<li>Anti Intervensi Virus (Int 21h, tulis HDL) </li>
<li>Anti Jumper </li>
<li>Ada Enkrip </li>
<li>Optimasi Kode </li>
<li>Simulasi operasi file/direktory </li>
<li>Telusur vektor, cegat paling depan </li>
<li>Bisa menetap di UMB </li>
<li>Bisa menetap di memory tengah </li>
<li>Cek optimal konfigurasi Sistem Operasi, seperti: DOS di Konv, HMA, UMB, shell Command.COM, shell di Windows </li>
<li>Bisa bikin komputer bengong (hang) </li>
<li>(karang aja sendiri, pokoke supaya kelihatan cuanggih&#8230;) </li>
</ul>
<p>&#160;</p>
<h4>Perhatian:</h4>
<p>Program ini dibuat untuk kepentingan sendiri, tidak untuk konsumsi umum. Penulis TIDAK BERTANGGUNG JAWAB APAPUN terhadap perubahan / modifikasi program ini, atas kepentingan/tujuan apapun. Kerusakan atau apapun yang terjadi baik akibat program ini maupun akibat-akibat lainnya, jelas bukan tanggung jawab penulis. Baik buruknya segala hal tentang program ini juga jangan dikaitkan dengan penulis. Bila anda tidak setuju, boleh MEMBUANG PROGRAM ini. Jelas khan&#8230;. </p>
<p>Listing program ini boleh dimiliki dalam rangka pengetahuan akan virus komputer, atau alasan-alasan lain yang positip dan tidak merugikan. Masing-masing individu hendaknya menjunjung tinggi moral dan etika yang luhur atas tujuan masing-masing. </p>
<p>Yap, lempar tangan sembunyi di batu&#8230;. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<h4>Serangan: </h4>
<p>Program ini menyerang file EXE, COM, GIF, JPG atau file-file yang dijalankan melalui Int 21h fungsi 4B00h dan 4B01h. Sangat aktif menular dalam setiap operasi file yang menggunakan handle yaitu buka file (3Dh), dan tutup file (3Eh). Karena langsung mengakses Sistem File Table (SFT) maka operasinya cukup solid dan sulit untuk dicegah. Segala cara yang mungkin untuk menularkan file (kayaknya) sudah digunakan secara optimal. </p>
<h4>Siluman:</h4>
<p>Untuk mengurangi kecurigaan konsumen bahwa sistemnya terinfeksi, perlu dirancang simulasi yang memadai. Pada virus ini banyak menggunakan teknik-teknik penyembunyian diri cukup canggih, yang hampir sulit ditemukan pada pemakaian yang umum. Seperti: Ukuran file, tanggal, dan isi file dibuat tidak berubah. Operasi pembandingan file tidak menunjukkan perubahan berarti. Hampir semua program anti virus tempelan (sejenis &#8216;Self Check&#8217;) terlewati dengan mudah. Terutama musuh kita, program antivirus lokal, tertipu dengan mulus. </p>
<p>Pengecekan vektor interupsi, penelurusan vektor, pencegatan vektor, dll juga terlewati dengan gembira, karena virus ini mengusahakan dirinya terletak paling depan dari vektor fungsi DOS (21h dan 2Fh), yaitu semungkin-mungkinnya selapis di atas kernel DOS. Pada operasi internal, virus juga memanggil langsung kernel DOS, tanpa melewati cegatan-cegatan yang biasanya dilakukan program-program tambahan DOS. Dengan begitu selain operasi virus (mungkin) berjalan lebih cepat, kerja virus jadi terkesan tersembunyi, tanpa dapat dilacak oleh program lain. </p>
<p>Khusus penelusuran vektor, virus ini menggunakan cara sederhana tapi ampuh untuk mengetahui apakah suatu interrupt (DOS) sedang ditelusuri, yaitu dengan pengecekan &#8216;flag&#8217; Trap (operasi per langkah). Bila dideteksi hal tersebut, yang sudah pasti tidak terjadi pada kerja yang umum, maka penelusuran tersebut dibelokkan ke arah lain, dan fungsi DOS kembali secara segera (IRET). Dengan demikian program penelusur akan merasa pintar (padahal bodoh) bahwa tidak ada hal yang mencurigakan. Penelusuran ini juga digunakan oleh virus sendiri untuk mengecek apakah virus sudah berada di memory. </p>
<h4>Pencegatan:</h4>
<p>Virus ini bekerja dengan mencegat beberapa fungsi umum dari int 21h, yaitu: </p>
<p><strong>Fn 11h, 12h, 4Eh, 4Fh:</strong>     <br />Untuk memodifikasi besar file, sehingga besar file yang tertular seakan-akan tidak berubah. Fungsi 11h dan 12h walaupun fungsi lama,     <br />disarankan untuk tidak lagi digunakan, namun ternyata masih digunakan oleh shell DOS COMMAND.COM, yaitu untuk instruksi DIR. Program aplikasi umumnya memakai fn 4Eh dan 4Fh. </p>
<p>Walaupun sedikit banyak mampu menipu mata manusia, namun tetap saja program dapat mengetahui perbedaan tersebut. Masalahnya sulit untuk menyimpan nilai-nilai awal yang telah diubah tanpa menimbulkan kecurigaan baik bila virus aktif maupun tidak. Virus ini menggunakan detik untuk mengecek apakah file telah terkena virus. Dengan mengecek detik tersebut, bisa diketahui apakah besar file perlu dikurangi atau tidak. Dan proses pemeriksaan maupun pengubahan nilai ini harus secara cepat, sama sekali tidak perlu buka/tutup file dahulu. </p>
<p>Pada Windows 3.1 modus Enchanced, entah kenapa, fungsi 4Eh dan 4Fh menghasilkan format yang aneh. Hal ini terjadi pada program File    <br />Manager. Karena penulis tidak mempunyai debugger Windows yang memadai, kesalahan tersebut sulit untuk dianalisa. Namun hal ini tidak terjadi pada Windows modus standard. Akhirnya dengan sedikit trik, keanehan yang tidak berbahaya tersebut bisa diperkecil. </p>
<p><strong>Fn 3Dh:      <br /></strong>Fungsi ini secara luas digunakan untuk membuka sebuah file atau device. Fungsi ini pula yang dibebankan secara khusus untuk menularkan virus secara cepat, mengambil isi file yang normal, mendekrip, dan menyimpannya di memory. Pencegatan rutin ini cukup rumit, karena perlu mencegah pengolahan device atau sistem yang tidak kompatibel. Dan tambahan kerumitan lagi karena fungsi ini bekerja menurut handel file, karenanya perlu beberapa fungsi DOS yang tidak umum (sebagian Int 2Fh). Fungsi ini juga merupakan palang pintu untuk menentukan apakah suatu file perlu disimulasikan, sebagai kelanjutan operasi file lainnya, seperti: baca file, tulis file atau tutup file. </p>
<p>Proses penularan file sepenuhnya bekerja menurut handel file. Dengan cara ini maka suatu file .COM/.EXE sepenuhnya terlacak, bagaimanapun cara untuk mengaksesnya. Pengerjaan ini dilakukan langsung lewat SFT (Sistem File Table) sehingga bisa melakukan perubahan-perubahan secara langsung secara mudah. Ada kekurangan besar dengan cara ini, yaitu simulasi file tidak dilakukan bila suatu handel file tidak sesuai dengan handel DOS, terutama pada DOS yang ditumpangi oleh Jaringan (Network), seperti Novell. Tentu saja dengan segala cara ditempuh agar file .COM/.EXE harus tertular. Dan walaupun simulasi file tidak dilakukan, diharapkan tidak mengacaukan kerja operasi file yang sesungguhnya. </p>
<p><strong>Fn 4Bh, sub fn 00 dan 01:      <br /></strong>Secara umum digunakan untuk menjalankan suatu file (sub fn 01) atau mengambil file tanpa menjalankannya (sub fn 02). Sub fn 02 biasa     <br />digunakan untuk operasi &#8216;debugging&#8217;. Fungsi ini sangat favorit dan berharga untuk operasi virus. Hampir semua virus file mencegat fungsi ini untuk melakukan operasinya. Bila suatu program akan dijalankan, maka suatu virus akan terlebih dulu mengecek file tersebut, dan bila belum tertular maka akan ditularkan terlebih dahulu sebelum dijalankan. Kebaikan fungsi ini adalah kompatibilitas yang tinggi pada sistem operasi berbasis DOS. Hanya program-program DOS yang dapat dijalankan lewat fungsi ini. Jadi virus tidak pusing-pusing melakukan pengecekan lain untuk memastikan apakah suatu file perlu ditular atau tidak. Hal ini jelas berbeda dengan pencegatan operasi file, seperti baca dan tulis. </p>
<p>Virus ini memecah metode penularan menurut 2 cara, lewat operasi handel file dan lewat operasi menjalankan/memuat file program. Pada cara lewat handel file cara penularan memakai fungsi-fungsi internal DOS, sedangkan bila lewat cara kedua (fn 4Bh ini) cara penularan memakai fungsi-fungsi file yang umum, sehingga diharapkan semua file teratasi. Penularan lewat cegatan ini juga mengabaikan ekstension file (.EXE/.COM), jadi bisa menulari file dengan ekstension tidak umum. Pada sistem yang tidak kompatibel penuh dengan MS-DOS, diharapkan lewat cegatan fungsi ini bisa melapis kekurangan tersebut. </p>
<p><strong>Fn 3Fh:      <br /></strong>Fungsi ini digunakan untuk membaca file atau device. Pencegatan fungsi ini sebagai kelanjutan dari operasi simulasi file. Bila akan dilakukan pembacaan file yang telah bervirus dan pada lokasi file yang telah dirubah (awal file) maka akan diberikan isi yang asli sebelum perubahan. Dengan begitu program pembaca file akan tertipu dengan senang hati. Juga bila akan membaca lokasi akhir file, karena SFT file telah dikutak-katik, maka file akan terpotong tepat seperti sebelum tertular. Hasilnya: isi maupun panjang file menurut handel tidak berubah sama sekali. Namun perlu diingat bahwa simulasi file dicadangkan hanya untuk pemakaian 8 handel, jadi bila dibuka handel lebih dari itu simulasi file tidak dilakukan, dan isi file akan terlihat apa adanya. Sebenarnya ini tidak masalah karena pemrograman yang baik hanya melibatkan sedikit handel untuk melakukan akses file, yaitu dengan membuka dan menutup file secara bergantian. Lagi pula masak ke-8-8-nya file bervirus semua, aneh apa edan. Pada &#8216;virus scanner&#8217; malah biasanya cuman pake 1 handel saja. </p>
<p><strong>Fn 40h:      <br /></strong>Fungsi untuk menulis file. Fungsi ini dicegat untuk mengembalikan keutuhan suatu file yang telah tertular. Karena sebenarnya file bervirus isinya secara fisik jelas berbeda dengan sebelum tertular, maka bila dilakukan pengeditan isi file, maka isi file yang sebenarnya dikembalikan terlebih dahulu untuk tidak mengacaukan operasi file. Diberikan penanda bahwa file tersebut telah ditulis, jadi tidak perlu lagi pemboongan dilakukan. Termasuk pula besar file dikembalikan seperti semula. Tapi ingaaat, ini hanya sementara waktu. Bila handel tadi ditutup, maka dengan sangat bahagia penularan berlangsung kembali. </p>
<p>Ada hal unik tentang pencegatan fungsi ini, yaitu untuk mencegah penambahan suatu file yang telah bervirus. Jadi suatu file bisa diubah isinya tapi tidak bisa ditambah. Dengan begitu bila terjadi penambahan file secara illegal, yang biasanya dilakukan oleh virus lain, maka hal tersebut akan diabaikan (disalahkan) dan ditahan untuk tidak benar-benar dilakukan. Jadi, bila suatu file telah tertular virus ini maka diharapkan tidak akan tertular virus lain (ceritanya perang antar virus nih&#8230;). Namun untuk mencegah kemungkinan proses penambahan file memang dilakukan oleh operasi yang normal, dilakukan perkecualian terhadap file yang dibuat sesudah virus bersarang di memory. Diharapkan memang itu adalah operasi yang sah. Tentu saja pada komputer XT atau sejenis yang tidak memiliki penanggalan otomatis, operasi cegah tulis ini jebol terus. </p>
<p><strong>Fn 3Eh:      <br /></strong>Fungsi menutup file. Lewat fungsi ini juga dibebankan operasi untuk menularkan virus, yaitu yang berasal dari pembuatan file maupun     <br />pengeditan file. Karena virus ini tidak mencegat langsung fungsi DOS untuk membuat file, maka virus hanya akan ditularkan ketika handel file tersebut ditutup. Sami mawon khaaannn&#8230;. Juga bila suatu file sudah diubah isinya, yang otomatis virus mengembalikan isi file tersebut ke keadaan semula, pada saat akan ditutup ini file tersebut akan tertular kembali. Pokoknya handel file apapun yang sah berupa EXE/COM diharap agar tertular. Itulah, ketika suatu program penghapus virus menyangka telah menghilangkan virus dari file, maka ketika file tersebut akan ditutup maka kembali tertular. Pusing-pusing deh&#8230;. </p>
<p>Selain itu, cara-cara untuk memulihkan file juga sudah diusahakan untuk ditanggulangi di sini. Misalnya atribut file yang dipulihkan, yang dapat memulihkan operasi DIR direktory, pada saat ditutup ini akan dicek kembali dan akan dipulihkan bila diubah secara tidak sah. Juga bila suatu file yang entah kenapa, atau karena sistem DOS tidak kompatibel, bersifat mencurigakan, maka diupayakan agar bisa terpulihkan pada saat sistem sudah berjalan baik. Jadi bisa dibilang pencegatan fungsi ini merupakan upaya garda terakhir dalam pemrosesan file. </p>
<h4>Anti Virus:</h4>
<p>Dari uraian pencegatan di atas, jelas terlintas bahwa untuk membuat suatu pencegah terhadap virus ini adalah dengan melumpuhkan keaktifan virus di memory. Atau dengan kata lain harus dikembalikan terlebih dahulu fungsi-fungsi DOS yang asli sebelum dilakukan operasi pembersihan. Hal ini sudah terpikirkan. Dengan teknik anti telusur menegaskan, tidak segampang itu melumpuhkan virus. Juga sedikit pengacauan byte-byte penanda virus, agar anti-virus bisa sedikit &#8216;berpikir&#8217;. Termasuk pula terhadap trik pemulihan jalur fungsi (&#8216;jumper&#8217;), yang membuat anti virus yang mencoba melewati fungsi-fungsi yang dicegat virus dipaksa berpikir minimal 2 kali. Tentu saja tidak hal yang tidak mungkin. Bila Eddy Tanzil saja bisa menembus tembok Cipinang, apalagi terhadap virus ini. Masih banyak jalan. Untuk ini saya menunggu perkembangan selanjutnya. </p>
<h4>Rutin Pemulih:</h4>
<p>Percayalah pada diri sendiri. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<h4>Efek Samping:</h4>
<p>Setiap tanggal tertentu, virus ini akan menghanguskan prosesor anda. Termasuk melelehkan hard disk anda maupun disket anda dalam jarak radius 10 meter. Bila anda biasa mendengarkan radio selagi mengulik komputer, sama seperti saya, maka virus ini akan membangkitkan gelombang elektromagnetik ultra tinggi yang dapat meledakkan radio tersebut atau minimal membuat kerusakan yang sangat parah. Termasuk pula bila dalam radius 10 meter terdapat peralatan elektronik, seperti TV, Laser Disk, Compact Disc, ataupun Solder, maka dengan frekuensi ultra tinggi tadi, bisa diibaratkan dengan cara kerja mikrowave, akan mengalami pengasapan lokal (siap-siap aja tusuk satenya). </p>
<h4>Lalu:</h4>
<p>Eh, gue tadi ngomong apa sih. Sorry, efek samping tadi memang benar-benar di &#8216;samping&#8217;, yang jelas saja boong dong. Gue &#8216;salut&#8217; berat dengan anda yang percaya hal itu dapat terjadi. </p>
<h4>Gila:</h4>
<p>Ngomong-ngomong elu gila apa enggak sih???? </p>
<h4>Anti Debugging:</h4>
<p>Suatu virus yang baik, paling tidak mempunyai suatu trik anti debugging. Termasuk virus yang ringan tangan ini. Belajar dari virus-virus lain dan iseng-iseng men-debug program saya mendapat cara-cara yang lumayan ampuh. Yang jelas kalo anda pake WS, telah saya coba dengan cukup seksama, ternyata virus ini mampu melewati debugger tersebut. Saya pikir kalo dari yang mudah tadi saja bisa apalagi yang sulit. Maka debugger sedikit baik sperti Turbo Debugger atau SoftIce, pasti juga bisa. Ingat prinsip ini: Mulailah dari yang mudah (maaf dengan Prof. Habibie). </p>
<h4>Tampilan:</h4>
<p>Oke lah dengan efek samping. Setiap tanggal 17 Agustus, anda tahu kan tanggal itu, maka virus ini sekedar mengingatkan anda bahwa ada yang perlu dilakukan sebagian orang pada tanggal tersebut, akan menampilkan bendera merah putih kecil pada pojok kanan atas monitor anda. Setidaknya anda belum lupa kalau bendera kita masih merah putih. </p>
<h4>Waspada:</h4>
<p>Ini masalah kompatibilitas. Beberapa program, yah mungkin beberapa ribu atau lebih, tidak jalan akibat virus ini. Saya telah sedapat mungkin berusaha memperbaiki hal ini. Tapi sesuai fenomena gunung es, hanya sedikit di puncak yang kelihatan, sedangkan teramat banyak di bawah yang belum terjangkau. Sekarang tinggal pilih: Virus atau Program Itu. Yang jelas virus ini tidak memberikan anda waktu berpikir banyak. </p>
<p>Catatan penting bahwa kerja suatu virus hampir dapat dipastikan membawa efek-efek tertentu. Mustahil bahwa ada suatu virus yang tidak berefek sama sekali terhadap sistem. Bagaimana mungkin? Mungkin yang perlu ditekankan adalah untuk mengurangi efek-efek tadi sekecil mungkin, yang dalam hal ini suatu virus dituntut untuk berpikir secerdas mungkin dan tahu sebanyak mungkin. Itulah, menurut saya, yang membuat pengerjaan virus menjadi tidak sederhana atau malah bisa dibilang cukup sulit. Kalo cuman bangga bisa mbengkakin file sih, tidak ada yang istimewa. </p>
<p>Bagaimana dengan Win95 ? Hmm, jalan tuh, maksudnya komputernya bisa jalan, coba aja digeret pake tali, pasti jalan. </p>
<h4>Lain-lain:</h4>
<p>Hmmm, apa yah yang kira-kira bisa saya bualkan di sini ???? Auk_ah_gelap! Maaf, tidak semua hal tentang virus RS-1 saya uraikan di sini. Karena satu sebab, yaitu maleessss, maka hal tersebut tetap menjadi suatu misteri. </p>
<h4>NB:</h4>
<p>Tulisan ini dibuat tanpa pikiran yang panjang-panjang, jadi maklum bila ada hal-hal yang tidak berkenan. Tapi saya yakin anda bisa memahami hal ini. Terlalu banyak hal-hal yang tidak berkenan yang kita alami. Auuww, gila gue &#8216;kali yah? </p>
<p>Wassalam, </p>
<p>Emhaka!    <br />(suatu hari di tahun 1996)     <br />HUAAAHHHH&#8230;.. (gue ngantuk berat nih)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/643/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=643&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2011/08/17/rutin-serbu-1-rs-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2011/10/virus_komputer1.gif" medium="image">
			<media:title type="html">virus_komputer</media:title>
		</media:content>
	</item>
		<item>
		<title>Mencoba AXIS</title>
		<link>http://oguds.wordpress.com/2010/08/30/mencoba-axis/</link>
		<comments>http://oguds.wordpress.com/2010/08/30/mencoba-axis/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 20:57:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Teknologi Informasi]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[modem]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2010/08/30/mencoba-axis/</guid>
		<description><![CDATA[Internet murah sedang menjadi tren. Baik operator GSM dan CDMA sama-sama banting harga. Kisarannya antara Rp 25 ribu/bulan untuk GSM dan Rp 45 ribu/bulan untuk CDMA. Kali ini dicoba salah satu operator GSM, yaitu Axis. Kartu perdana AXIS tergolong murah, Rp 3000 untuk pulsa 3000. Di KRL sering pula dijual dengan harga Rp 1000, biasanya [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=629&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="modem gsm" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;margin:0 10px 0 0;" height="64" alt="modem gsm" src="http://oguds.files.wordpress.com/2010/08/modemgsm.jpg?w=80&#038;h=64" width="80" align="left" border="0" /> Internet murah sedang menjadi tren. Baik operator GSM dan CDMA sama-sama banting harga. Kisarannya antara Rp 25 ribu/bulan untuk GSM dan Rp 45 ribu/bulan untuk CDMA. Kali ini dicoba salah satu operator GSM, yaitu Axis.</p>
<p> <span id="more-629"></span>
<p>Kartu perdana AXIS tergolong murah, Rp 3000 untuk pulsa 3000. Di KRL sering pula dijual dengan harga Rp 1000, biasanya dengan pulsa yang lebih sedikit (mungkin edisi murah khusus KRL). Harga untuk layanan Internet bermacam-macam, dari harian, mingguan, hingga bulanan. Boleh dibilang harganya sangat murah, dan sudah termasuk PPN pula.</p>
<p>Berhubung percobaan ini untuk melihat kinerjanya dalam menyedot data, dipilihkan paket tanpa batas untuk harian, dengan harga Rp 15 ribu. Maksimal <i>bandwidth</i> adalah 384 Kbps. Kebetulan modem GSM yang digunakan mempunyai kecepatan maksimal yang sama. Bila digunakan di <i>handphone</i>, sinyal yang didapat termasuk layanan Edge (2.5G), dengan kisaran maksimal <i>bandwidth</i> sekitar 400 Kbps.</p>
<h4>Faktor Antena</h4>
<p>Percobaan kali ini juga dalam rangka berburu sinyal, yaitu mencari operator GSM dengan kualitas sinyal memadai. Antena yang digunakan cukup mendukung, yaitu antena Yagi (mirip-mirip antena TV), hanya terpasang secara vertikal. Dari antena ke modem memakai kabel coaxial 75 ohm (seperti kabel antena TV, dengan alasan ekonomis), dan menggunakan sistem induksi untuk sampai ke modem. Induksi dilakukan dengan lilitan kawat / kotak kumparan terhadap antena modem (yang penguatannya hanya sekitar 3 db).</p>
<p>Konon antena Yagi tersebut diklaim pembuatnya memiliki penguatan (<em>gain</em>) hingga 35 db. Memang cukup terbukti, meskipun hanya dengan induksi tapi mampu mendongkrak sinyal hingga 2x lebih besar. Lebih ideal lagi bila langsung disambung dengan <i>pigtail</i> ke modem, sayangnya harga <i>pigtail</i> sendiri relatif mahal. Lagipula, impedansi keduanya tidak cocok, sehingga bisa menimbulkan rasio SWR tinggi yang berakibat pancaran tidak efisien dan berbalik menjadi panas ke modemnya.</p>
<p>Antena Yagi memiliki arah tertentu (<i>directed</i>), persis seperti antena TV, sehingga pengaturan posisi menjadi cukup penting. Meskipun sulit juga menentukan arah yang benar, karena kecepatan modem bisa naik turun tergantung dari banyak faktor. Misalnya beban jaringan yang tinggi, atau <i>backbone</i> dari ISP yang sudah jenuh. Melihat dari besarnya sinyal pun kurang mendukung, karena semuanya terlihat dalam kondisi excelent. Ini salah satu indikator semu dalam komunikasi dua arah, penerimaan mungkin kuat karena daya dari BTS besar, tapi pengiriman cenderung lemah karena daya terbatas dari modem. Alhasil, sambil mengunduh data, arah antena diputar-putar yang sekiranya paling optimal. Tanda dari arah yang tidak tepat adalah hasil download yang terputus-putus, kadang cepat sekali, kadang lambat sekali, atau malah mangkrak.</p>
<h4>Pegel Linux</h4>
<p>Lingkungan uji coba menggunakan sistem operasi Linux, karena lebih luwes untuk memantau jaringan. Tentu saja akses ke situ via telnet, karena ogah betul menggunakan GUI di Linux (hehe). Linux yang digunakan adalah Fedora Core 8, dengan modem GSM berjenis PCMCIA yang diakses via PCI card. Kebetulan drivernya sudah <i>built-in</i>. Setting ifcfg, wvdial, dan pppd cukup sederhana. Beberapa program downloader dicoba, seperti wget, axel, aria2, dan prozilla.</p>
<p>Sekedar catatan, utility lain yang berguna untuk server berbasis koneksi ppp adalah dnsmasq dan vnstat. Program dnsmasq bisa digunakan sebagai dns server / forwarder, dhcp server, dan tftp server. Ini sangat berguna untuk jaringan kecil atau menengah, tanpa memasang banyak program atau setting. Sedangkan vnstat berguna untuk mencatat besarnya data yang digunakan untuk koneksi ppp, misalnya mencegah agar kuota tidak terlampaui.</p>
<h4>Telaah Hasil Percobaan</h4>
<p>Salah satu situs yang terkenal sangat cepat adalah kernel.org yang menyimpan source dari kernel Linux. Dicoba untuk mengunduh file yang cukup besar, yaitu linux-2.6.35.3.tar.bz2 yang berukuran 69 MByte. Dengan wget (pilihan debug) bisa terlihat bahwa AXIS menggunakan squid sebagai server proxy. Hal ini cukup bisa dikritisi, apakah merupakan langkah yang tepat, mengingat skalabilitas squid cukup terbatas. Bagi keperluan ISP yang sangat besar, server proxy yang tidak dibuat dengan skalabilitas memadai, hasilnya malah kontraproduktif. Bila obyek yang dicache terlalu banyak, akibatnya persentase cache-miss sedemikian besar, menjadikan proxy penyebab kelambatan.</p>
<p>Koneksi via proxy adalah state-full + buffered, dan memakan sumber daya memory maupun disk yang sangat besar. Proxy berlaku sebagai man-in the-middle. Apalagi, saat ini kondisinya lebih banyak data streaming, misalnya video, yang tidak tercache. Termasuk pula file-file berukuran sangat besar. Selain itu salah satu kendala squid sebagai produk open source, adalah minimnya kontributor yang berdedikasi, sehingga hasilnya adalah produk yang dikerjakan manakala suka atau lowong.</p>
<p>Hasil yang perlu dikritisi adalah buruknya manajemen bandwidth di sini. Entah ini suatu kesengajaan atau kesalahan, satu koneksi bisa memakan bandwidth yang sangat besar, tapi koneksi lain menjadi macet atau gagal. Misalnya dari mengunduh file di atas, bisa tercapai rata-rata 42 KByte/s, tetapi program lain tidak bisa mengakses situs berbeda. Bagi program seperti browser yang multi threaded / multi connection / multi tab, hasilnya akan tersendat-sendat.</p>
<p>File lain yang diunduh adalah Fedora LiveCD dengan ukuran 700 MByte dari situsnya. Kali ini digunakan axel dengan multiple connection. Kecepatan pun cukup relatif. Misalnya entah karena apa stabil di kisaran 7 KByte/s hingga beberapa waktu, dan naik secara bertahap menjadi full 42 KByte/s dalam waktu lama. Boleh jadi ini akibat kondisi jaringan yang sedang penuh, sehingga koneksi data di-downgrade menjadi kecil, sampai saluran kosong kembali. Sebab lain, akibat buffer di proxy, yang mirip ember diisi hingga taraf tertentu, sebelum disembur secara cepat ke client. Sebab lain lagi, memang manajemen bandwidth di proxy seperti itu.</p>
<p>Hal lain adalah terlihatnya backbone (tulang punggung) jaringan AXIS ke jaringan internasional maupun dalam negeri cukup terbatas. Akibatnya, ada situs-situs tertentu yang terbuka cukup cepat, tapi ada situs lain yang terbuka dengan luar biasa lambat. Sehingga percuma lah koneksi ke server proxy terbilang cepat, tapi kucuran data ke ember berpipa kecil. Pengguna tentu berharap koneksi yang stabil ke segala penjuru, bukan hanya cepat ke situs-situs tertentu. </p>
<p>Akhir kata, tampaknya Axis harus membenahi lebih lanjut pengaturan bandwidthnya dengan lebih baik, termasuk menambah kucuran data yang lebih besar ke berbagai jaringan. Harga Internet yang murah, bukan berarti kualitasnya murahan toh? Sementara ini, operator lain tampaknya lebih menjanjikan. Tentu hasil ini belum tentu sama bila dilakukan oleh pihak lain. Bila ada telaah teknis yang salah, CMIIW.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/629/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/629/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/629/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/629/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/629/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/629/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/629/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/629/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=629&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2010/08/30/mencoba-axis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2010/08/modemgsm.jpg" medium="image">
			<media:title type="html">modem gsm</media:title>
		</media:content>
	</item>
		<item>
		<title>ISP Sudah Diminta Sensor Konten Porno</title>
		<link>http://oguds.wordpress.com/2010/08/25/isp-sudah-diminta-sensor-konten-porno/</link>
		<comments>http://oguds.wordpress.com/2010/08/25/isp-sudah-diminta-sensor-konten-porno/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 05:49:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Mailing List]]></category>
		<category><![CDATA[Teknologi Informasi]]></category>
		<category><![CDATA[pornografi]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2010/08/25/isp-sudah-diminta-sensor-konten-porno/</guid>
		<description><![CDATA[Ketika pengesaham UU ITE tahun 2008, yang dihebohkan juga dengan munculnya video Fitna, pemblokiran Internet menjadi topik diskusi panjang. Sebagian pihak mendukung, sebagian lain alergi. Kini topik ini mengemuka kembali di Internet, seiring surat edaran Menkominfo yang meminta ISP menutup konten porno. sN&#62; ISP blokir port port tertentu, misalnya: 135,139,445,1433,1434 Menurut saya tidak perlu, cukup [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=634&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="sensor pornografi" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;margin:0 5px 0 0;" height="64" alt="sensor pornografi" src="http://oguds.files.wordpress.com/2010/08/sensorpornografi.jpg?w=80&#038;h=64" width="80" align="left" border="0" /> Ketika pengesaham UU ITE tahun 2008, yang dihebohkan juga dengan munculnya video Fitna, pemblokiran Internet menjadi topik diskusi panjang. Sebagian pihak mendukung, sebagian lain alergi. Kini topik ini mengemuka kembali di Internet, seiring surat edaran Menkominfo yang meminta ISP menutup konten porno.</p>
<p> <span id="more-634"></span><br />
<blockquote>
<p>sN&gt; ISP blokir port port tertentu, misalnya: 135,139,445,1433,1434</p>
</blockquote>
<p>Menurut saya tidak perlu, cukup port-port yang diketahui merupakan tujuan http/https (termasuk proxy), seperti 80, 443, 8080, dst. ISP juga tidak harus memasang proxy, tapi dari mengecek misalnya 1024 byte pertama setiap koneksi, yang merupakan header http. Dari situ terlihat host tujuan dan file yang ingin diambil.</p>
<p>Tidak mungkin memblok 100%, bahkan 70%, tapi hanya mengurangi akses atau kenyamanan, seperti kata Menkominfo supaya gak &#8216;ngablak&#8217;. Jalur-jalur &#8216;tikus&#8217; tentu tetap terbuka, misalnya proxy tidak umum, VPN, tunneling, dst, tapi butuh usaha lebih. Saya mencoba mengakses Proxy / VPN gratisan hasilnya lambat sekali. Orang yang berniat mengakses pornografi pasti tujuannya mencari kesenangan, dengan mengurangi atau mengganggu kenyamanan tersebut, kemungkinan besar niatnya akan batal.</p>
<p>Masalah berikutnya, database situs-situs yang perlu diblok. Pertama butuh database yang sangat cepat, mungkin bisa embedded DB (yang diupdate secara berkala). Tidak perlu berukuran besar, cukup situs porno yang sangat populer (ini bisa dievaluasi melalui log). Tingkah laku pengakses pasti ada polanya, seperti kita yang seringkali memulai dari Google. Kombinasi secara teknis dan psikologis, mudah-mudahan hasilnya cukup efektif tanpa memberatkan atau mengganggu trafik secara keseluruhan.</p>
<blockquote><p>w&gt; Setelah saya cek software yang digunakan KOMINFO ternyata Squidguard walau dinamakan trustpositif. Ini lumayan berbahaya</p>
</blockquote>
<p>Saya kebetulan tidak lihat acara di MetroTV, tapi sepakat bahwa Squidguard atau sejenisnya akan membebani ISP. Buat skala kecil seperti warnet, kantor, kampus, dst, mungkin ok, tapi skala besar seperti ISP tentu tidak layak. Apalagi bila ada sejenis regular expression, pasti makin pelan saja.</p>
<p>Seperti saya pernah singgung, yang pas itu (semi) state-less proxy, dalam arti cukup menangkap 1 KB pertama per paket HTTP. Asumsinya ini berisi header. Lepas 1 KB pertama, setiap paket dilepas saja. Squid jelas-jelas state-full proxy (via TCP), akan makan memory, disk, dst. Implementasinya seperti L7 filter, hanya digabung dengan DB.</p>
<p>Database sendiri jelas harus (embedded) in-memory DB (semuanya ada di memory), di-update atau batch report secara berkala (misal 1x sehari). Batasan host yang diblokir juga ada, misalnya 1 juta host paling populer. Intinya supaya jalannya data sesedikit mungkin terganggu.</p>
<p>Blokir lewat DNS seperti Nawala bisa juga, tapi hanya sebagai komplemen, karena cara ini cukup mudah diakali (misalnya membuat DNS sendiri atau memasukkan di /etc/hosts). Sabili sendiri cara blokirnya seperti apa ya? Negara seperti China juga ada yang tahu cara blokirnya?</p>
<p>Namun semuanya kembali ke ISP, konfigurasi mesin yang digunakan seperti apa, dan bisa dimodifikasi seperti apa. Barangkali bila Kominfo bisa memberi dana riset untuk filtering ini akan sangat membantu (jangan cuma bisa menekan doank). Pastinya semua butuh waktu tidak sebentar.</p>
<blockquote><p>YH&gt; Coba anda baca uu tel 36 1999 pasal 21 dan 22.</p>
</blockquote>
<p>Saya ikut nimbrung ya, meski bukan pakar hukum. Di Pasal 22 itu tertulis begini: &quot;Pasal 22 Setiap orang dilarang melakukan perbuatan tanpa hak, tidak sah, atau memanipulasi &#8230;&quot;. Pasal itu cukup luwes untuk memberi kewenangan kepada mereka, hemat saya, di bidang kerjanya masing-masing. Di ranah Internet ya ISP yang punya hak, termasuk memanipulasi data untuk kepentingan teknis dengan prosedur yang sah. Apalagi Pasal 21 sudah memberikan dasar kewajiban pula bagi ISP.</p>
<p>Realitasnya, mana bisa penyelenggara komunikasi tidak memanipulasi data? Manipulasi data sendiri mau diartikan apa? Data Internet, dari hulu hingga hilir tentu ada proses manipulasi secara berjenjang. Misalnya dikompres, dichecksum, dipecah, dirouting, difilter, dst. Lha bukankah sangat umum ISP memfilter spam? Bila tidak difilter, itu ISP-nya malah sontoloyo.</p>
<p>Prisipnya menurut saya, dalam hak itu harus jelas bagaimana prosedurnya dan siapa yang bertanggungjawab. Jadi manipulasi akan legal bila pelaksanaannya juga jelas dan legal. Pegawai bank tentu secara legal bisa memeriksa rekening tertentu, lha wong ada akses koq, tapi tidak bisa menyelewengkan atau menangkap orang. Admin LAN juga bisa memfilter proxy, memeriksa akses, tapi tidak punya wewenang memecat orang. Itu urusan personalia dan para bos.</p>
<p>Saya jadi ingat diskusi di TV, tentang konflik dengan Malaysia, yaitu Permadi dari PDIP bilang, kewenangan bertindak di lapangan adalah otoritas komandan kapal. Akibat kebanyakan mikir, Indonesia malah dinilai loyo, mlempem, tidak tegas, dst. Padahal coba komandan kapal menembak bila diperlukan, sesuai prosedur, hasilnya akan lain. Lha si Malingsia saja berani menangkap pegawai DKP koq, dengan tembakan peringatan segala, tidak pakai pikir-pikir panjang. Atasannya tinggal bilang tidak tahu atau itu sesuai prosedur. Kebanyakan mikir malah jadi telat mikir, alias telmi.</p>
<blockquote><p>a&gt; ada lho orang yang menuntut karena legitimate mail kena blok (false positive). tapi memang di indonesia belum sampai serinci itu.</p>
</blockquote>
<p>Saya perjelas lagi, kemarin kecepatan ngetik, filter spam yang saya maksud lebih kepada filtering SMTP. Dulu sekali saya bisa menggunakan SMTP non ISP, tapi sejak bertahun-tahun lampau ini tinggal kenangan. Dari semua yang saya coba, semua ISP memblok SMTP di luar miliknya. Asumsinya, dengan mewajibkan SMTP hanya via ISP, ada filter-filter tertentu di situ, entah itu filter spam, virus, trojan, dst. Bila ada yang menuntut, wajar saja, tinggal dijawab toh. Masalah teknis sudah pasti banyak kendala-kendala, hanya tinggal diperbaiki.</p>
<p>Yang mau saya sampaikan, bahwa (boleh jadi) semua ISP melakukan penyadapan (bila filtering SMTP dimaksud dimaknai begitu). Bila SMTP dianggap boleh, kenapa HTTP malah dilarang? Kita tentu tahu, flooding SMTP (seperti spam dari trojan) bisa sangat fatal, macet jaringan. Flooding situs porno juga begitu, malah merusak otak. Saya hanya melihat keengganan ISP hanya soal teknis, bukan hukum.</p>
<p>Namun saya sepakat bila regulator dan pihak-pihak terkait mencari solusi teknis yang efektif. Termasuk menghindari resiko false positif dari situs yang diblok. Pada intinya saya setuju bahwa Internet jangan terlalu ngablak lah, seperti kata Menkominfo. Dibatasi sewajarnya.</p>
<blockquote><p>a&gt; kalau mail, katakanlah spam, bisa nyelonong tanpa diminta.</p>
</blockquote>
<p>Konteks yang saya tulis sejak awal, saya punya SMTP di luar ISP, dan ingin mengirim email via SMTP tersebut. Arus SMTP difilter ISP dari luar atau dari dalam. Jadi saya meminta untuk mengirim tapi ditolak, tidak ada bedanya dengan meminta lewat HTTP.</p>
<p>Jadi nuansanya tetap, saya hanya ingin menunjukkan ISP sudah melakukan praktek-praktek filtering sejak lama, dan tidak perlu menjadi polemik seperti filtering HTTP. Saya juga tidak bisa memilih opsi difilter atau tidak. Tidak hanya itu, ada juga ISP yang memfilter DNS atau HTTP (in).</p>
<p>Sehingga buat mereka yang menolak pemblokiran situs porno dengan dalih dasar hukumnya, praktek-praktek ISP di atas juga perlu dipermasalahkan agar konsisten. Kalau saya boleh nitip, permasalahkan pula kuota bandwidth. Ini sama halnya menyadap dan memanipulasi data sehingga berjalan lebih lambat. Jadi saya bisa berinternet 25 ribu/bulan dengan kecepatan full speed 7.2Mbps sebulan penuh. Ini pasti aspirasi rakyat, aspirasi kita semua.</p>
<blockquote><p>YH&gt; Tanpa melihat isi datanya, header itu bisa dibaca, dan bisa diblokir. Itu kasus yang blokir smtp yang mpu maksudkan.</p>
</blockquote>
<p>Me-review lagi soal filtering ini, blokir SMTP itu hasil dari filtering (SMTP non ISP akan diblokir / direject / RST flag). Sifatnya wajib. Kasus lain soal antispam, itu pasti &#8216;penyadapan&#8217; total.</p>
<p>Btw, di dunia packet switching, batas antara header dan isi itu semu belaka. Di lapis terbawah, misalnya ethernet, dia menganggap tcp/ip adalah isi. Di tcp/ip, http itu semua isi. Di http, html itu semua isi, dst. Bertumpuk-tumpuk. Jadi mana yang mau dianggap header dan isi?</p>
<p>Terkait isu mandatory dan sanksi, saya lihat masing-masing pihak punya pendapat. Saya mencermati keengganan ISP lebih pada soal teknis dan bisnis (mudah-mudahan tidak diartikan ISP menjadikan pornografi sebagai penggemuk bandwidth). Di sisi lain, Menkominfo dengan dasar UU &#8216;mewajibkan&#8217; sensor konten porno. Jalan tengahnya, bilapun ada sanksi ini bisa dilimpahkan ke pengadilan, sehingga lebih netral.</p>
<blockquote><p>YH&gt; Saran saya, mpu belajar 7 osi layer dan tcp/ip layer <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
</blockquote>
<p>Setiap layer itu punya header dan data, yang sebenarnya menjadi satu kesatuan. Bila argumen anda penyadapan berarti membaca isi, sekarang di level mana definisi isi itu? Contoh, di OSI layer 2 (misal ethernet), setiap frame terdiri dari header dan data, hanya headernya dibuang ketika diserahkan ke layer 3 (misal tcp/ip). Bila definisi isi dimulai dari layer 2, maka membaca header tcp/ip adalah suatu bentuk penyadapan.</p>
<p>Seperti pernah disampaikan, filtering HTTP itu semata-mata membaca header, bukan isi. Di UU sendiri tidak dijelaskan layer mana batas definisi &#8216;penyadapan&#8217; (lha teknis sekali donk). Lagipula, konsep tcp/ip dan OSI layer itu sebenarnya berbeda, hanya orang kerap membandingkan keduanya. Coba baca-baca lagi referensi, atau ini: http://en.wikipedia.org/wiki/OSI_seven-layer_model.</p>
<blockquote><p>YH&gt; Mhn maaf, saya kurang sependapat. Filtering http itu sama saja filtering &quot;data&quot; langsung.</p>
</blockquote>
<p>Memperjelas saja, dari awal saya tidak sepakat dengan definisi penyadapan hanya melihat dari header vs isi, karena ini sifatnya teknis, rawan perubahan dan pemaknaan (seperti diskusi kita). Bahasa hukum harusnya lebih high level, misalnya ada tambahan, &quot;penyadapan adalah, bla, bla, bla, &#8230; dengan tujuan menyimpang di luar operasional pihak penyelenggara &#8230;&quot;. Nah, ISP tinggal mendefinisikan operasional itu seperti apa, termasuk pula melihat rekomendasi dari surat edaran Menteri.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/634/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/634/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/634/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=634&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2010/08/25/isp-sudah-diminta-sensor-konten-porno/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2010/08/sensorpornografi.jpg" medium="image">
			<media:title type="html">sensor pornografi</media:title>
		</media:content>
	</item>
		<item>
		<title>Online Trading</title>
		<link>http://oguds.wordpress.com/2010/07/18/online-trading/</link>
		<comments>http://oguds.wordpress.com/2010/07/18/online-trading/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 17:30:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[pc media]]></category>
		<category><![CDATA[saham]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2010/07/18/online-trading/</guid>
		<description><![CDATA[Menghasilkan uang dari Internet sudah sering kita dengar. Beberapa terasa mungkin, tapi ragu akan hasilnya. Bagaimana bila dicoba cara ini: online trading di bursa saham. Gemar menjelajah Internet tanpa tujuan? Tak ada salahnya bila menyalurkan hobi ini menjadi uang, yaitu menjadi investor pasar modal. Mencermati perkembangan ekonomi dunia, sambil menggali informasi saham-saham yang berpotensi naik. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=628&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="online_trading" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;margin:0 10px 0 0;" height="64" alt="online_trading" src="http://oguds.files.wordpress.com/2010/07/online_trading.jpg?w=80&#038;h=64" width="80" align="left" border="0" /> Menghasilkan uang dari Internet sudah sering kita dengar. Beberapa terasa mungkin, tapi ragu akan hasilnya. Bagaimana bila dicoba cara ini: online trading di bursa saham.</p>
<p> <span id="more-628"></span>
<p>Gemar menjelajah Internet tanpa tujuan? Tak ada salahnya bila menyalurkan hobi ini menjadi uang, yaitu menjadi investor pasar modal. Mencermati perkembangan ekonomi dunia, sambil menggali informasi saham-saham yang berpotensi naik. Internet ibarat lautan informasi, perlu jaring dan keahlian yang tepat untuk dapat menjala ikan. Di sinilah seni dan tantangannya, menyusun sendiri portofolio saham yang paling optimal.</p>
<p>Pasca resesi keuangan global, pemulihan ekonomi terjadi di banyak negara. Kekhawatiran eforia sesaat industri pasar modal ternyata tidak terbukti. Meskipun bergerak fluktuatif, bursa saham dunia tetap dalam tren positif atau <i>bullish</i>. Bila tak ada aral melintang, indeks di Bursa Efek Indonesia segera menyentuh <i>all time high</i> dan terus menaik. Melihat kinerja ekonomi Indonesia yang baik, pasar domestik yang sangat besar, peluang sukses di pasar modal terbuka lebar.</p>
<p>Kian maraknya aktivitas Internet, memunculkan potensi besar pengguna o<i>nline trading</i> (OLT) di bursa saham Indonesia. Saat ini tercatat sekitar 300 ribu investor, atau 0,1 % dari jumlah penduduk. Jauh tertinggal dibanding negara tetangga Malaysia yang mencapai 14 %. Internetworldstats mencatat 30 juta pengguna Internet asal Indonesia pada tahun 2009. Target otoritas bursa meraih 1 % penduduk atau 2 juta orang seharusnya bukan hal sulit. Kapasitas sistem bursa terbaru, JATS Next-G, telah sanggup menangani hingga satu juta transaksi per hari.</p>
<p>Perusahaan sekuritas tampak sudah bersiap-siap menyambut era OLT ini. Selain PC, perangkat bergerak seperti PDA dan Ponsel juga dirambah. Transaksi lebih cepat, praktis, dan di mana saja. Demam Facebook salah satunya didukung layanan pada perangkat <i>mobile</i>. Ketertarikan masal pada OLT pada ujungnya akan menaikkan partisipasi investor lokal dan menambah kemandirian bursa. Saat ini 65 % kapitalisasi bursa masih dikuasai investor luar. Akibatnya, resesi ekonomi di negara lain dapat menyebabkan pelarian dana dan goncangan di bursa lokal.</p>
<p>Investasi dalam bentuk saham memang kurang populer di masyarakat. Pandangan yang umum adalah potensi merugi. Bursa saham terkenal rawan dari unsur-unsur spekulatif. Namun usaha apapun saat ini tak jauh berbeda. Bertani misalnya, mulai dari bibit, pupuk, cuaca, hingga harga beras bisa berubah sewaktu-waktu. Hal ini perlu disikapi secara bijak, yaitu berinvestasi secara rasional dalam jangka waktu terukur. Jual beli saham bukanlah permainan tebak-tebakan yang mengarah pada perjudian. Harapan memperoleh keuntungan besar dalam waktu singkat justru melahirkan banyak kekecewaan.</p>
<p>Persepsi negatif lain adalah prinsip bursa saham dengan ‘<i>zero sum game</i>’, atau keuntungan satu pihak berasal dari kerugian pihak lain. Memang dalam jangka pendek tak bisa dipungkiri, tapi dalam jangka panjang ternyata tidak. Kapitalisasi bursa dapat bertambah dari banyak sumber. Misalnya masuknya investor baru, bertambahnya emiten, pembagian deviden, penerbitan saham, dan aksi korporasi lain. Selama jumlah manusia dan usaha bertumbuh, pada akhirnya semua pihak akan mendapat keuntungan.</p>
<p>Keterampilan berburu dan mengolah informasi merupakan bekal berharga meraih sukses. Berita dan rumor terkait emiten, seperti besarnya laba atau aksi korporasi, membuat sentimen terhadap pergerakan harga saham. Beragam cara bisa ditempuh, dengan mengunjungi situs-situs berita, blog-blog saham, berlangganan RSS feed, bergabung dengan mailing list, hingga jejaring sosial seperti Facebook atau Twitter. Pesan-pesan seperti “buy ADRO, sell PTBA”, “break peak KIJA, SMRA”, “hold BUMI”, bertebaran di seantero Twitter. Bila tertarik, tak ada salahnya menjadi <i>follower</i>.</p>
<p>Namun perlu diingat, dalam bisnis apapun tidak semua orang bisa menjadi pemenang. Bisa untung, bisa rugi, atau hanya impas. Mulailah dari yang kecil, menggali ilmu sebanyak-banyaknya. Luangkan waktu secukupnya, jangan sampai investasi malah menganggu pekerjaan. Bila hari ini rugi, berharap esok lebih baik. Bila besok belum baik, mudah-mudahan lusa. Ikan sepat di danau Toba, semoga bermanfaat dan selamat mencoba.</p>
<p>* Dimuat di PC Media Edisi 06/2010</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/628/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/628/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/628/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/628/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/628/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/628/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/628/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=628&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2010/07/18/online-trading/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2010/07/online_trading.jpg" medium="image">
			<media:title type="html">online_trading</media:title>
		</media:content>
	</item>
		<item>
		<title>Petani 13 Trilyun</title>
		<link>http://oguds.wordpress.com/2010/07/17/petani-13-trilyun/</link>
		<comments>http://oguds.wordpress.com/2010/07/17/petani-13-trilyun/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 17:18:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[pc media]]></category>
		<category><![CDATA[atm]]></category>
		<category><![CDATA[century]]></category>
		<category><![CDATA[smartcard]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2010/07/17/petani-13-trilyun/</guid>
		<description><![CDATA[Apa jadinya bila rekening bank kita tiba-tiba saldonya berkurang 75 juta? Sebaliknya, bagaimana bila bertambah 13 trilyun? Seorang petani di Parepare bingung, rekeningnya mendadak bertambah. Bukan lagi sekedar jutaan, tapi trilyunan. Bila DPR sampai perlu membentuk Pansus untuk mengusut aliran dana 6,7 trilyun, petani tersebut memperoleh hampir dua kalinya, yaitu 13 trilyun. Bila disusun dalam [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=626&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="petani_trilyun" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;margin:0 10px 0 0;" height="64" alt="petani_trilyun" src="http://oguds.files.wordpress.com/2010/07/petani_trilyun.jpg?w=80&#038;h=64" width="80" align="left" border="0" /> Apa jadinya bila rekening bank kita tiba-tiba saldonya berkurang 75 juta? Sebaliknya, bagaimana bila bertambah 13 trilyun?</p>
<p> <span id="more-626"></span>
<p>Seorang petani di Parepare bingung, rekeningnya mendadak bertambah. Bukan lagi sekedar jutaan, tapi trilyunan. Bila DPR sampai perlu membentuk Pansus untuk mengusut aliran dana 6,7 trilyun, petani tersebut memperoleh hampir dua kalinya, yaitu 13 trilyun. Bila disusun dalam pecahan 100 ribuan, ukurannya setara 36 ribu rim HVS Folio. Perlu ribuan truk untuk membawanya pulang.</p>
<p>Kasus ini memang berita selintas saja, tapi menarik dicermati. Kesalahan manusia tentu wajar terjadi. Seperti pengakuan pihak bank, terjadi kesalahan input. Mungkin saja petugasnya teledor hingga mengetik angka nol tujuh kali lebih banyak. Barangkali pula <i>keyboard</i>-nya lengket, ditekan tidak kembali, sehingga nolnya seperti kereta api. Meskipun terdengar konyol, tapi bukan hal mustahil. Asal jangan sampai akibat kesalahan sistem. Ini gawat, karena dampaknya sistemik.</p>
<p>Ingat sistemik, tentu ingat keriuhan lain di Senayan. Asal muasalnya, Menteri Keuangan tertipu. Dana <i>bailout</i> Century membengkak, nolnya bertambah satu, menjadi 6,7 trilyun. Meski hanya 1/2 dari rekening petani tadi, tapi cukup membuat DPR geram hingga membentuk Pansus. Di sini lawannya politisi, pengucur dana perlu berkelit seribu jurus. Alasan petugas teledor atau keyboard lengket pasti menjadi bahan tertawaan. Siapa korbannya belum diketahui, yang pasti bukan kerbau hitam.</p>
<p>Tak lama berganti tahun, muncul kehebohan baru. Dana nasabah bank di sejumlah tempat tiba-tiba raib. Kali ini yang lengket adalah kartu ATM, tergesek <i>skimmer</i>, digandakan oleh sindikat pembobol ATM. Publik layak khawatir, mengingat ATM adalah fasilitas bank yang sering digunakan. Untungnya antisipasi cepat dari pihak perbankan dan kepolisian dapat meredam kepanikan publik.</p>
<p>Kartu ATM berbasis magnetik tergolong teknologi jaman dulu alias jadul. Sudah saatnya diganti menjadi berbasis <i>chip</i> atau <i>smartcard</i>. Keengganan migrasi dengan alasan biaya tinggi rasanya terlalu mengada-ada. Teknologi smartcard telah lama bersama kita, tertanam di berbagai perangkat seperti telepon seluler. Pihak perbankan bisa belajar ke operator GSM atau CDMA, bagaimana membuat kartu chip berharga murah. Kartu perdana Rp 7.000, berisi pulsa 5.000. Mendekati <i>expired</i>, harganya bisa lebih turun lagi. Sering pula kartu dibuang setelah pulsa habis.</p>
<p>Berkembangnya kejahatan dan problematika di bidang perbankan menuntut peran besar ahli forensik digital. Industri perbankan sangat lekat dengan penggunaan teknologi informasi. Mal praktek yang terjadi pada akhirnya berhadapan dengan hukum, perlu analisa dan pembuktian akurat dari jejak-jejak digital yang ada. Perangkat hukum mutakhir sudah dimiliki dengan terbitnya UU ITE, meskipun perlu penjabaran lebih lanjut dalam bentuk peraturan di tingkat bawah.</p>
<p>Korban penggelapan transaksi perbankan sudah banyak berjatuhan sejak lama, tetapi cukup mengejutkan bila akumulasinya mencapai ratusan orang dalam waktu singkat. Dalam kasus pembobolan ATM, pihak bank cukup kooperatif dengan menanggung kerugian di pihak nasabah. Kepercayaan nasabah memang harus benar-benar dijaga. Praktek bank yang buruk akan mudah menyebar menjadi kampanye negatif. Di era maraknya komunikasi sosial via Internet, kepakan sayap kupu-kupu cepat menjelma menjadi badai topan.</p>
<p>Kasus salah debit 13 trilyun yang menimpa petani di atas terjadi pada November 2008. Bulan yang sama ketika Bank Century kalah kliring, disusul rapat KSSK dan keputusan bailout yang menghebohkan. Bersamaan pula dengan merebaknya kepanikan global di sektor finansial, bursa saham ambruk di mana-mana. Adakah benang merah di sini? Penggemar teori konspirasi pasti setuju, tidak ada peristiwa yang kebetulan. Semuanya serba terencana dan saling terkait. Konspirasi yang baik adalah konspirasi yang tak pernah bisa dibuktikan.</p>
<p>Kesalahan bank ternyata berlanjut. &quot;Saya takut minus Rp 9 triliun itu dibeban ke saya,&quot; kata petani itu. Rupanya kali ini tabungannya didebet Rp 22 triliun. Kesannya main-main, serasa uang sekedar angka tanpa makna. Pada akhirnya kasus ini memang telah selesai. Tampaknya pihak bank perlu memberi penjelasan secara transparan, disertai hasil forensik digital. Publik layak tahu, agar kepercayaan tetap terjaga. Jangan tunggu kepakan kecil berubah menjadi badai sistemik.</p>
<p>* Dimuat di PC Media Edisi 04/2010</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/626/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=626&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2010/07/17/petani-13-trilyun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2010/07/petani_trilyun.jpg" medium="image">
			<media:title type="html">petani_trilyun</media:title>
		</media:content>
	</item>
		<item>
		<title>Demo Kaos Merah</title>
		<link>http://oguds.wordpress.com/2010/05/04/demo-kaos-merah/</link>
		<comments>http://oguds.wordpress.com/2010/05/04/demo-kaos-merah/#comments</comments>
		<pubDate>Mon, 03 May 2010 17:04:00 +0000</pubDate>
		<dc:creator>oguds</dc:creator>
				<category><![CDATA[Mailing List]]></category>
		<category><![CDATA[saham]]></category>

		<guid isPermaLink="false">https://oguds.wordpress.com/2010/05/04/demo-kaos-merah/</guid>
		<description><![CDATA[Memasuki bulan Mei, apakah optimisme Bursa Efek Indonesia masih berlanjut? Sentimen mulai bergerak negatif. Krisis Yunani dan mata uang Euro merembet ke berbagai penjuru dunia. Tampaknya perlu dilakukan pembersihan total. Bila per hari ini IHSG ditarik ke atas, barangkali sekedar menjejak 3000, lalu meluncur ke bawah. Saham-saham lapis kedua mulai bertumbangan. GJTL pun ganti nama, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=605&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="kaos merah" style="display:inline;border-width:0;margin:0 5px 0 0;" height="60" alt="kaos merah" src="http://oguds.files.wordpress.com/2010/05/kaosmerah.jpg?w=76&#038;h=60" width="76" align="left" border="0" /> Memasuki bulan Mei, apakah optimisme Bursa Efek Indonesia masih berlanjut? Sentimen mulai bergerak negatif. Krisis Yunani dan mata uang Euro merembet ke berbagai penjuru dunia. Tampaknya perlu dilakukan pembersihan total.</p>
<p> <span id="more-605"></span>
<p>Bila per hari ini IHSG ditarik ke atas, barangkali sekedar menjejak 3000, lalu meluncur ke bawah. Saham-saham lapis kedua mulai bertumbangan. GJTL pun ganti nama, jadi Gajah Tinggal. Padahal kinerja dan PER-nya masih sangat oke. CPIN si produsen ayam pun tak ketinggalan, mulai ambrol. Meskipun kinerja, PER, dan pembagian deviden sangat menjanjikan.</p>
<h4>Sell in May, Go Away?</h4>
<p>Bila dianalisis, selama 10 tahun terakhir IHSG di bulan Mei: naik 6x, turun 4x. Namun malah terlihat ada pola di situ, kecuali tahun 2008 yang puncak krisis, yaitu tahun genap turun, tahun ganjil naik. Jadi siklus normalnya di tahun 2010 ini adalah turun.</p>
<p>Barangkali pesan moral dari istilah di atas, yaitu potensi keuntungan di Mei yang tipis, atau volatilitas meningkat. Mungkin saja IHSG akhirnya ditutup naik 0,00001%, lalu meluncur lagi ke bawah. Pengalaman sih, analisis momentum sering gagalnya, alias resiko meningkat. Meninggalkan bursa toh bagian dari strategi juga. Biarlah saham-saham <em>rest in peace</em>. </p>
<h4>Krisis Yunani: &quot;Hoppers and Ants&quot;</h4>
<p>Analoginya menarik, sayang kesimpulannya tidak pas. Meskipun Yunani punya mata uang sendiri, tapi uang tidak bisa dicetak seenak udelnya, atau devaluasi. Ingat Zimbabwe yang inflasinya menyundul langit? Tetap saja bantuan dari negara-negara sekitar atau regional dibutuhkan. </p>
<p>Solusi mudahnya bisa saja Yunani di-<em>kick</em> dari Eurozone, tapi problem di suatu negara akan cepat menjalar ke negara lain. Jadi Euro-nya sendiri tidak masalah, hanya saat ini sedang jadi incaran spekulan-spekulan valas dan para bandar pasar modal, seperti biasanya. </p>
<h4>Kasus Yunani = Depresi Besar ?</h4>
<p>Krisis separah apapun tidak akan mengulangi resesi 1929. Mengapa? Karena kekayaan dunia sekarang tidak sebanding dengan saat itu. Contoh terdekat, krismon di Indonesia tahun 1997. Itu sebenarnya cukup parah, tapi kehidupan rakyat relatif normal. Adakah pembaca di sini yang sengsara 1/2 mati akibat krismon 1997 atau 2008?</p>
<p>Barangkali jawaban bursa-bursa yang nyem-<em>plunge</em> belakangan ini, ya sampai kapan spekulan-spekulan valas dan saham berhenti mengobrak-abrik? Pasar sudah tidak rasional. Kalau saham-saham pada dijual, lalu duitnya itu lari ke mana? Misalnya bursa Jerman, di-<em>cash</em>-in ke Euro, padahal Euro lagi jatuh. Ya malah rugi bukan?</p>
<p>Investor asing di BEI juga sama, saham sedang turun ditukar rupiah, pas mau ditukar ke dollar makin amblas lagi, rugi 2x bukan? Boleh jadi saat ini sedang menginap di sekuritas, menunggu momentum baik untuk kembali.</p>
<h4>Sri Mulyani Mundur</h4>
<p>Di era informasi ini tidak perlu memusuhi media. Bagi media yang penting adalah akurasi dan berimbang (<em>cover both side</em>), sehingga orang-orang seperti Wimar bisa bicara kritis. Media alternatif toh banyak, seperti website, milis, blog, dan sebagainya, bisa pula beropini di situ.</p>
<p>Ketika pemilu kemarin, saya banyak menyimak di blog ini, contoh yang aktual misalnya tentang World Bank: <a href="http://nusantaranews.wordpress.com/2009/06/26/sejarah-bumn-imf-word-bank-dan-privatisasi-di-indonesia-1/">http://nusantaranews.wordpress.com/2009/06/26/sejarah-bumn-imf-word-bank-dan-privatisasi-di-indonesia-1/</a></p>
<p>Bagi saya, SMI hanya agen-agen kapitalis, sehingga ketika BD menariknya ya tidak ada yang istimewa. Seringkali kita butuh pencerahan, makanya saya suka gaya pengamat ekonomi seperti Ichsanuddin Noorsy. Meskipun terlihat nyeleneh, tapi apa yang disampaikan cukup masuk akal.</p>
<h4>IHSG 5000</h4>
<p>Satu-satunya cara untuk menaikkan IHSG atau saham-saham, adalah dengan mengundang uang datang. Kapitalisasi bisa naik lewat deviden, investor, modal masuk, emiten baru, dan seterusnya. Cara yang cukup aman sebenarnya menambah emiten sebanyak-banyaknya. Sekarang baru 250-an saham, coba ditambah secara agresif menjadi 1000-an, perusahaan-perusahaan besar, pasti indeks segera terbang ke 5000.</p>
<p>Bila investor makin banyak, modal makin besar, tapi komposisi saham begitu-begitu saja, ini mengerikan. PER makin tinggi, makin rawan fluktuasi. Investor hanya dijanjikan deviden semu, tak masuk akal. Menunggu profit masuk butuh waktu lama, apalagi dari perusahaan-perusahaan yang pelit.</p>
<p>Hal ini bisa dimulai dari Kementerian Keuangan, misalnya membuat insentif pajak. Bila pelepasan saham 30% dapat potongan pajak 10%, tentu berbondong-bondong perusahaan IPO di BEI. Sekarang baru berlaku potongan 5% untuk IPO 40%. Pemberian deviden juga perlu diatur, minimal 30% dari laba. Investor tertarik BUMN karena devidennya jelas, sehingga investor nyaman, dan emiten pun bekerja dengan tenang.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oguds.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oguds.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oguds.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oguds.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oguds.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oguds.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oguds.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oguds.wordpress.com/605/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oguds.wordpress.com&amp;blog=144802&amp;post=605&amp;subd=oguds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oguds.wordpress.com/2010/05/04/demo-kaos-merah/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a8918d344144639b8c6e04a0b4c0301?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oguds</media:title>
		</media:content>

		<media:content url="http://oguds.files.wordpress.com/2010/05/kaosmerah.jpg" medium="image">
			<media:title type="html">kaos merah</media:title>
		</media:content>
	</item>
	</channel>
</rss>
