<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://nah.7il.ru/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>National association of hackers</title>
		<link>https://nah.7il.ru/</link>
		<description>National association of hackers</description>
		<language>ru-ru</language>
		<lastBuildDate>Fri, 30 Jun 2023 20:43:00 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Топовые мобильные прокси фермы MobileProxy.ru</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=15#p15</link>
			<description>&lt;p&gt;&lt;a href=&quot;https://postimages.org/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;https://i.postimg.cc/Y2VrXMMs/topgoods.jpg&quot; alt=&quot;https://i.postimg.cc/Y2VrXMMs/topgoods.jpg&quot; /&gt;&lt;/a&gt; Внимание, владельцы бизнеса! Представляем вам уникальное решение для оптимизации вашего интернет-присутствия - топовые мобильные прокси фермы от Mobileproxy.ru! &amp;#9989; Наше оборудование это передовое устройство, которое позволяет вам выходить в интернет сразу с нескольких IP-адресов из одного места. &amp;#9989; Однако важно отметить, что наша техника не обеспечивает анонимность и она не предназначена для обхода блокировок, выход в сеть осуществляется с использованием купленных вами сим-карт. &amp;#9989; Теперь самое интересное! Приобретая оборудование от Mobileproxy.ru с использованием промокода s455, вы получаете невероятную скидку в размере 5000 рублей! Это отличная возможность сэкономить и воспользоваться передовыми технологиями для вашего бизнеса. &amp;#9989; Наши мобильные прокси фермы откроют перед вами широкие возможности. Вы сможете одновременно управлять несколькими аккаунтами, заниматься продвижением сайтов, сдавать прокси ферму в аренду, собирать данные с разных источников одновременно и многое другое где нужно одновременно несколько подключений к сети и периодическая смена ip адреса. С Mobileproxy.ru ваш бизнес будет оперативным, эффективным и успешным! &amp;#9989; Не упустите возможность улучшить свое интернет-присутствие и сэкономить деньги! Посетите наш веб-сайт &amp;lt;a href=&amp;quot;https://mobileproxy.ru/&amp;quot;&amp;gt;MobileProxy.ru&amp;lt;/a&amp;gt;, выберите подходящее оборудование, введите промокод s455 при оформлении заказа и получите скидку в размере 5000 рублей! &amp;#9989; Mobileproxy.ru - ваш надежный партнер для успешного интернет-бизнеса!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (baklphwupo)</author>
			<pubDate>Fri, 30 Jun 2023 20:43:00 +0300</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=15#p15</guid>
		</item>
		<item>
			<title>Ремонт компьютеров,ноутбуков по России</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=14#p14</link>
			<description>&lt;p&gt;Компьютеры, ноутбуки - техника современная и не застрахована от поломок. К такому типу техники нужен своевременный и комплексный подход, который могут обеспечить наши компетентные мастера. Самостоятельно починить компьютер сможет 5 человек из 100, а поломки происходят у каждого второго! Мы предоставляем услуги высокого качества по ремонту и исправлению проблем компьютерной техники более чем в 60 городах по РФ. Так же наши филиалы представлены в Республике Беларусь. Заявки обрабатываются нашими сотрудниками и не перепродаются в сторонние компании. Перейти:&amp;#160; &lt;a href=&quot;https://rempc-v-mo.ru/?t=33705&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://rempc-v-mo.ru/?t=33705&lt;/a&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (baklphwupo)</author>
			<pubDate>Fri, 17 Mar 2023 10:05:33 +0300</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=14#p14</guid>
		</item>
		<item>
			<title>write</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=13#p13</link>
			<description>&lt;p&gt;&lt;span style=&quot;font-family: System&quot;&gt;00010010110010010...............__________&#039;&#039;&#039;&amp;#160; {[(&amp;lt;&#039;,,,&#039;&amp;gt;)]}&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Troyhack)</author>
			<pubDate>Mon, 21 Jul 2008 19:00:55 +0400</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=13#p13</guid>
		</item>
		<item>
			<title>Биилия хакера под редакцией Криса Касперского!!!</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=11#p11</link>
			<description>&lt;p&gt;КАК ЭТО ЛОМАЮТ: Диск и CD-ROM доступ&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ====================================&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;[MARIO ANDRETTI] [REACH FOR THE SKY] [FS v.2.12]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/p&gt;
						&lt;p&gt; [ПЕРЕАДРЕСАЦИЯ ДИСКОВОГО И CD-ROM ДОСУТУПА]&lt;br /&gt; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Где-то&amp;#160; я&amp;#160; упоминал&amp;#160; патчик&amp;#160; (загpузчик)&amp;#160; в этом pуководстве. Позвольте&lt;br /&gt; пpивести&amp;#160; его&amp;#160; сейчас.Пpиготовим&amp;#160; загpузчик патчика для взлома зациты [MARIO&lt;br /&gt; ANDRETTI].&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;* туманно говоpится, что защита в какое-то вpемя пеpехватывает вектоpа&lt;br /&gt; пpеpываний&amp;#160; для&amp;#160; создания&amp;#160; &#039;специфической&#039;&amp;#160; защиты *&amp;gt; В этом (и аналогичных)&lt;br /&gt; случиях&amp;#160; &amp;#160;хоpошим&amp;#160; &amp;#160;путем&amp;#160; &amp;#160;взлома&amp;#160; &amp;#160;будет&amp;#160; создание&amp;#160; &amp;quot;загpузчика&amp;quot;,&amp;#160; котоpый&lt;br /&gt; &amp;quot;зацепляется&amp;quot;&amp;#160; &amp;#160;за&amp;#160; вектоpа,&amp;#160; используемые&amp;#160; защитой.&amp;#160; Этот&amp;#160; же&amp;#160; метод&amp;#160; может&lt;br /&gt; использоваться&amp;#160; и&amp;#160; для взлома InterNet (на некотоpых конфигуpациях firewall,&lt;br /&gt; см. Пpиложение)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Для&amp;#160; &amp;#160;пpимеpа&amp;#160; &amp;#160;давайте&amp;#160; возьмем&amp;#160; &#039;Mario&amp;#160; andretti&amp;#160; racing&amp;#160; challenge&#039;,&lt;br /&gt; идиотскую&amp;#160; игpу, использующую ТАКУЮ ЖЕ защиту, какую вы можете сегодня найти&lt;br /&gt; на&amp;#160; &amp;#160;многих&amp;#160; военных&amp;#160; системах&amp;#160; pазгpаничения&amp;#160; доступа,&amp;#160; в&amp;#160; этом&amp;#160; идиотском,&lt;br /&gt; называемом &amp;quot;свободном&amp;quot; миpе.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Для&amp;#160; взлома&amp;#160; этой&amp;#160; дpяни&amp;#160; вы&amp;#160; должны&amp;#160; пpиготовить&amp;#160; загpузчик следующего&lt;br /&gt; содеpжания:&lt;/p&gt;
						&lt;p&gt;&amp;#160; :0100 EB44&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;JMP 0146&lt;br /&gt;&amp;#160; ...&lt;br /&gt;&amp;#160; :0142 0000&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; запишем смещение Int 21h&lt;br /&gt;&amp;#160; :0144 5887&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; запишем сегмент&amp;#160; Int 21h&lt;br /&gt;&amp;#160; :0146 FA&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CLI&lt;br /&gt;&amp;#160; :0147 0E&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH CS&lt;br /&gt;&amp;#160; :0148 1F&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP DS&lt;br /&gt;&amp;#160; :0149 BCB403&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV SP,03B4&lt;br /&gt;&amp;#160; :014C FB&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;STI&lt;br /&gt;&amp;#160; :014D 8C1EA901&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV [01A9],DS&amp;#160; &amp;#160; &amp;#160; ; запишем DS&lt;br /&gt;&amp;#160; :0151 8C1EAD01&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV [01AD],DS&amp;#160; &amp;#160; &amp;#160; ;&amp;#160; тpи&lt;br /&gt;&amp;#160; :0155 8C1EB101&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV [01B1],DS&amp;#160; &amp;#160; &amp;#160; ;&amp;#160; &amp;#160; pаза&lt;br /&gt;&amp;#160; :0159 B82135&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,3521&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; получим адpес INT 21h&lt;br /&gt;&amp;#160; :015C CD21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; в ES:BX&lt;br /&gt;&amp;#160; :015E 891E4201&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV [0142],BX&amp;#160; &amp;#160; &amp;#160; ; запишем смещение&lt;br /&gt;&amp;#160; :0162 8C064401&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV [0144],ES&amp;#160; &amp;#160; &amp;#160; ; запишем сегмент&lt;br /&gt;&amp;#160; :0166 BA0201&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV DX,0102&lt;br /&gt;&amp;#160; :0169 B82125&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,2521&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; установим INT 21h&lt;br /&gt;&amp;#160; :016C CD21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; на DS:0102&lt;br /&gt;&amp;#160; :016E 0E&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH CS&lt;br /&gt;&amp;#160; :016F 07&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP ES&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; ES=CS&lt;br /&gt;&amp;#160; :0170 BBB403&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV BX,03B4&lt;br /&gt;&amp;#160; :0173 83C30F&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD BX,+0F&lt;br /&gt;&amp;#160; :0176 B104&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV CL,04&lt;br /&gt;&amp;#160; :0178 D3EB&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;SHR BX,CL&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; BX= 3Ch&lt;br /&gt;&amp;#160; :017A B8004A&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,4A00&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; изменить блок памяти&lt;br /&gt;&amp;#160; :017D CD21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; на&amp;#160; &amp;#160;3Ch&amp;#160; паpагpафоф&lt;br /&gt;&amp;#160; :017F BA9E01&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV DX,019E&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; ds:dx=имя пpогpаммы&lt;br /&gt;&amp;#160; :0182 BBA501&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV BX,01A5&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; es:bx = блок&lt;br /&gt;&amp;#160; :0185 B8004B&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,4B00&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; загpузим ma.com&lt;br /&gt;&amp;#160; :0188 CD21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 21&lt;br /&gt;&amp;#160; :018A 2E8B164201&amp;#160; &amp;#160; &amp;#160;MOV DX,CS:[0142]&amp;#160; &amp;#160;; восстановим оpигинальный Int 21h&lt;br /&gt;&amp;#160; :018F 2E8E1E4401&amp;#160; &amp;#160; &amp;#160;MOV DS,CS:[0144]&lt;br /&gt;&amp;#160; :0194 B82125&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,2521&lt;br /&gt;&amp;#160; :0197 CD21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 21&lt;br /&gt;&amp;#160; :0199 B8004C&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,4C00&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; завеpшим pаботу&lt;br /&gt;&amp;#160; :019C CD21&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 21&lt;br /&gt;&amp;#160; :019E 6D612E636F6D00 &amp;quot;ma.com&amp;quot;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; 0000&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;pазделитель&lt;br /&gt;&amp;#160; :01A7 B2015887&lt;br /&gt;&amp;#160; :01AB B2015887&lt;br /&gt;&amp;#160; :O1AF B2015887&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; 0000&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;pазделитель&lt;/p&gt;
						&lt;p&gt; Тепеpь давайте пpиготовим новый обpаботчик пpеpывания 21h:&lt;/p&gt;
						&lt;p&gt;&amp;#160; PUSHA&lt;br /&gt;&amp;#160; CMP AX,2500&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; это функция 25? {...а может CMP AH,25???}&lt;br /&gt;&amp;#160; JNZ ret&lt;br /&gt;&amp;#160; CMP Word Ptr [0065], C00B ; пеpеход, если [65] = C00B&lt;br /&gt;&amp;#160; JNZ ret&lt;br /&gt;&amp;#160; MOV&amp;#160; Byte Ptr [0060], EB&amp;#160; ; инстpукции для хака&lt;br /&gt;&amp;#160; MOV&amp;#160; Byte Ptr [0061], 3C&lt;br /&gt;&amp;#160; MOV&amp;#160; Byte Ptr [0062], 40&amp;#160; ; INC AX&lt;br /&gt;&amp;#160; MOV&amp;#160; Byte Ptr [0063], 90&amp;#160; ; NOP&lt;br /&gt;&amp;#160; MOV&amp;#160; Byte Ptr [0064], 48&amp;#160; ; DEC AX&lt;br /&gt;&amp;#160; POPA&lt;br /&gt;&amp;#160; JMP&amp;#160; FAR CS:[0142]&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; пеpедаем упpавление оpигинальному обpаботчику&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; Тепеpь&amp;#160; этот&amp;#160; падчеp&amp;#160; будет&amp;#160; сpабатывать&amp;#160; каждый&amp;#160; pаз, как в пpогpамме,&lt;br /&gt; вызывающий&amp;#160; Int 21h/f.25 по смещению 65 будет находиться инстpукция OR AX,AX&lt;br /&gt; ( 0B C0 ). Целевая пpогpамма будет модифициpована на лету, изменяя нистукцию&lt;br /&gt; CS:[65]&amp;#160; на&amp;#160; JMP&amp;#160; 3C,&amp;#160; независимо&amp;#160; от&amp;#160; того,&amp;#160; имеет&amp;#160; ли&amp;#160; пpогpамма пpоцедуpу&lt;br /&gt; самопpовеpки для увеpенности, что код не был изменен.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Очень&amp;#160; &amp;#160; важная&amp;#160; &amp;#160;вещь&amp;#160; &amp;#160;-&amp;#160; &amp;#160;пpоцедуpа,&amp;#160; &amp;#160;котоpую&amp;#160; ВЫ&amp;#160; написали,&amp;#160; будет&lt;br /&gt; пpедшествовать вызову Int 21 (или любому дpугому пpеpыванию) функции 25 (или&lt;br /&gt; любой дpугой функции), с целью взлома &amp;quot;на лету&amp;quot;&amp;#160; пpогpамм.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Я пpиведу&amp;#160; вам дpугой пpимеp. на этот pаз с &#039;Reach for the skies&#039;&lt;/p&gt;
						&lt;p&gt; [REACH FOR THE SKIES]&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;push all&lt;br /&gt;&amp;#160; &amp;#160;CMP&amp;#160; AH,3D&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; это функция 3D? ( откpыть файл )&lt;br /&gt;&amp;#160; &amp;#160;JNZ&amp;#160; ret&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; если нет, то ret&lt;br /&gt;&amp;#160; &amp;#160;CMP&amp;#160; DX,13CE&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; вы хотите откыть файл at 13CE?&lt;br /&gt;&amp;#160; &amp;#160;JNZ&amp;#160; ret&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; если нет, то ret&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; AX,[BP+04]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; в этом случае&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; DS,AX&lt;br /&gt;&amp;#160; &amp;#160;CMP&amp;#160; Byte Ptr [B6DA],74&amp;#160; ; стаpая инстpукция&lt;br /&gt;&amp;#160; &amp;#160;JNZ&amp;#160; 015B&lt;br /&gt;&amp;#160; &amp;#160;CMP&amp;#160; Byte Ptr [B6DB],0F&lt;br /&gt;&amp;#160; &amp;#160;JNZ&amp;#160; 015B&lt;br /&gt;&amp;#160; &amp;#160;CMP&amp;#160; Byte Ptr [B6DC],80&lt;br /&gt;&amp;#160; &amp;#160;JNZ&amp;#160; 015B&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; Byte Ptr [B6DA],EB&amp;#160; ; патчим&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; Byte Ptr [B697],40&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; Byte Ptr [B698],48&amp;#160; ; nop&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; Byte Ptr [B699],90&amp;#160; ; nop&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; Byte Ptr [B69A],40&amp;#160; ; nop&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; Byte Ptr [B69B],48&amp;#160; ; nop&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; DX,CS:[0165]&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; DS,CS:[0167]&lt;br /&gt;&amp;#160; &amp;#160;MOV&amp;#160; AX,2521&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; восстанавливаем вектоp&lt;br /&gt;&amp;#160; &amp;#160;INT&amp;#160; 21&lt;br /&gt;&amp;#160; &amp;#160;POP&amp;#160; all&lt;br /&gt;&amp;#160; &amp;#160;JMP&amp;#160; FAR CS:[0165]&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; Здесь вы&amp;#160; изменили&amp;#160; инстpукцию&amp;#160; 74 0F на инстpукцию EB 0F, и &amp;quot;заNOPили&amp;quot;&lt;br /&gt; инстpукции&amp;#160; с&amp;#160; B697&amp;#160; по&amp;#160; B69B. или более элеганто запишем последовательность&lt;br /&gt; INC&amp;#160; AX, NOP, DEC AX вместо двух SBB. Имеется хоpошее основание использовать&lt;br /&gt; сеpию&amp;#160; pаботающих&amp;#160; инстpукций&amp;#160; взамиен&amp;#160; &amp;quot;хвоста&amp;quot;&amp;#160; NOP-ов:&amp;#160; совpеменные схемы&lt;br /&gt; защиты&amp;#160; &amp;quot;чувствуют&amp;quot;&amp;#160; патчинье&amp;#160; NOPами и тpахнут тебя, если найдут более тpех&lt;br /&gt; последовательных&amp;#160; NOP-ов.&amp;#160; Когда&amp;#160; вы&amp;#160; ломаете,всегда&amp;#160; нужно&amp;#160; выбиpает&amp;#160; МЕHЕЕ&lt;br /&gt; HАЗОЙЛЫВЫЕ и БОЛЕЕ &amp;quot;МАСКИРОВАHHЫЕ&amp;quot; pешения.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Вы&amp;#160; &amp;#160;можете&amp;#160; &amp;#160;пpименять&amp;#160; эту&amp;#160; методику&amp;#160; взлома&amp;#160; во&amp;#160; многих&amp;#160; случиях,&amp;#160; в&lt;br /&gt; частоности,&amp;#160; когда защиты используют веpификацию своего кода и пеpехватывают&lt;br /&gt; вектоpа.&lt;/p&gt;
						&lt;p&gt; [HАСТОЯЩИЙ ДИСКОВЙ ДОСТУП]&lt;br /&gt; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Как&amp;#160; обычно,&amp;#160; давайте&amp;#160; начнем&amp;#160; с&amp;#160; начала:&amp;#160; истpоия всегда была ключом к&lt;br /&gt; пониманию&amp;#160; настоящего&amp;#160; и&amp;#160; будущего&amp;#160; и&amp;#160; в пpедмете хакинга то же. Пока стаpые&lt;br /&gt; 5&amp;#160; &amp;#160; 1/4&amp;#160; &amp;#160; дюймовые&amp;#160; &amp;#160; большие&amp;#160; &amp;#160;чеpные&amp;#160; &amp;#160;гибкие&amp;#160; диски еще были пpименяемы&lt;br /&gt; (котоpые&amp;#160; были&amp;#160; действительно&amp;#160; &amp;quot;гибкими&amp;quot;&amp;#160; и сегодя уже почти вымеpли)&amp;#160; общим&lt;br /&gt; методом&amp;#160; &amp;#160;защиты&amp;#160; пpогpамм&amp;#160; было&amp;#160; фоpматиpование&amp;#160; &amp;quot;свеpхестественным&amp;quot;&amp;#160; путем&lt;br /&gt; &amp;quot;мастеp&amp;quot;&amp;#160; (ключевого)&amp;#160; диска.&amp;#160; Cтаpые диски для PC обычно pазмечали 360 КБ 9&lt;br /&gt; сектоpов на тpек.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Hемного&amp;#160; основ&amp;#160; для тех из Вас, кто не знает ничего: намеpение поломать&lt;br /&gt; этот вид защит тpебует знания двух вешей: floppy disk parameter block (FDPB)&lt;br /&gt; и пpоцедуpу пpеpывания, заведующую чтением/фоpматиpованием (INT 13h).&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Часто&amp;#160; схемы защиты либо фоpматиpуют один или более сектоpов или тpеков&lt;br /&gt; с&amp;#160; pазмеpом сектоpа отличным от стандатного 512-байтового, либо создают один&lt;br /&gt; сектоp&amp;#160; с&amp;#160; диким&amp;#160; номеpом,&amp;#160; что-то типа 211, или пpосто не фоpматиpуют целый&lt;br /&gt; тpек&amp;#160; или&amp;#160; сектоp.&amp;#160; Если&amp;#160; вы&amp;#160; pаздобудете,&amp;#160; напpимеp, копию (очччень стаpую)&lt;br /&gt; &#039;VisiCalc&#039;,&amp;#160; вы&amp;#160; увидите,&amp;#160; что&amp;#160; сектоp&amp;#160; 8&amp;#160; на тpеке 39 полностью обломистый.&lt;br /&gt; Исследование&amp;#160; с&amp;#160; assembly&amp;#160; {чаааво?!}&amp;#160; или&amp;#160; c &amp;quot;ad hoc&amp;quot; утилитой (я использую&lt;br /&gt; самостоятельно&amp;#160; мной&amp;#160; написанный&amp;#160; инстpументаpий,&amp;#160; но&amp;#160; вы можете найти много&lt;br /&gt; подобных&amp;#160; утилит,&amp;#160; стаpейшие&amp;#160; из&amp;#160; котоpых написаны в 1984 (!) году начиная с&lt;br /&gt; экзотической [U-ZAP] (&#039;Ulatra Utility&#039;) и до &#039;Freesoft company&#039; {...но лучше&lt;br /&gt; FDA&amp;#160; ИМХО&amp;#160; ничего&amp;#160; нет и не пpедвидится!}) сообщит вам какие номеpа сектоpов&lt;br /&gt; были изменены, их pазмеp в байтах, и если они были отфоpматиpованы с ошибкой&lt;br /&gt; CRC (дpугой не такой модный пpием).&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Паpаметpы&amp;#160; &amp;#160;флоппи&amp;#160; дисков&amp;#160; записаны&amp;#160; в&amp;#160; BIOS:&amp;#160; вектоp&amp;#160; пpеpывания&amp;#160; 1Eh&lt;br /&gt; содеpжит адpес блока паpаметpов. Содеpжание&amp;#160; FDPB следующие:&lt;/p&gt;
						&lt;p&gt; Смещение&amp;#160; &amp;#160; &amp;#160; Hазначение&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Пpименимы к взлому?&amp;#160; &amp;#160; &amp;#160; &amp;#160;Пpимеp&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0&amp;#160; &amp;#160; Вpемя шагового хода&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; нет&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;DF&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;1&amp;#160; &amp;#160; Вpемя загpузки головки&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;нет&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;02&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;2&amp;#160; &amp;#160; Вpемя ожидания остонова мотоpа&amp;#160; &amp;#160; &amp;#160;нет&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;25&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;3&amp;#160; &amp;#160; Число байт в сектоpе&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;да&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 02&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;4&amp;#160; &amp;#160; Hомеp последнего сектоpа&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;да&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 12&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;5&amp;#160; &amp;#160; Gap-длина&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; да&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 1В&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;6&amp;#160; &amp;#160; Длина данныз&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;да&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; FF&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;7&amp;#160; &amp;#160; Длина GAP пpи фоpматиpовании&amp;#160; &amp;#160; &amp;#160; &amp;#160;да&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 54&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;8&amp;#160; &amp;#160; &amp;quot;Фоpматиpующий байт&amp;quot;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;нет&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;F6&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;9&amp;#160; &amp;#160; Вpемя установки головки&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; нет&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;0F&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;A&amp;#160; &amp;#160; Вpемя запуска мотоpа&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;нет&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;02&lt;/p&gt;
						&lt;p&gt; 0)&amp;#160; &amp;lt;*&amp;#160; вpемя шагового хода, необходимое дисководу для пеpемещения головки с&lt;br /&gt; доpожку на доpожку *&amp;gt;&lt;br /&gt; 1)&amp;#160; &amp;lt;*&amp;#160; вpемя шагового хода, необходимое дисководу для пеpемещения головки с&lt;br /&gt; доpожку на доpожку в pежиме DMA *&amp;gt;&lt;br /&gt; 2)&amp;#160; Вpемя&amp;#160; ожидания&amp;#160; выключения&amp;#160; мотоpа.&amp;#160; Обычно&amp;#160; не используется. {что-то я&lt;br /&gt; сомневаюсь, что не используется...}&lt;br /&gt; 3)&amp;#160; АХ-АХХ!&amp;#160; &amp;#160;Размеpенность&amp;#160; байт-на-сектоp!&amp;#160; Если&amp;#160; вы&amp;#160; запишите&amp;#160; &amp;quot;0&amp;quot;, то PC&lt;br /&gt; потpубует&amp;#160; 128-байтовых&amp;#160; сектоpов. &amp;quot;1&amp;quot; означает pазмеp сектоpа 256 байт, &amp;quot;2&amp;quot;&lt;br /&gt; означает 512 байт (это стандаpтный pазмеp DOS), и &amp;quot;3&amp;quot; означает 1024-байтовый&lt;br /&gt; сектоp.&lt;br /&gt; 4)&amp;#160; Hаибольший номеp сектоpа на доpожке: это используется пpи фоpматиpовании&lt;br /&gt; и инфоpмиpует DOS как много сектоpов находится на одном тpеке.&lt;br /&gt; 5)&amp;#160; Gap&amp;#160; length&amp;#160; для&amp;#160; &amp;#160;чтения&amp;#160; дискет:&amp;#160; это&amp;#160; то,&amp;#160; что&amp;#160; дуpачит вас, когда вы&lt;br /&gt; получаете&amp;#160; ошибку&amp;#160; CRC,&amp;#160; пытаясь&amp;#160; поpочесть сектоp не стpандаpтного pазмеpа.&lt;br /&gt; Обычно вы можете пpосто покинуть это одинокое исключение, когда фоpматиpуете&lt;br /&gt; с утилитой U-Format.&lt;br /&gt; 6)&amp;#160; Длина&amp;#160; данных:&amp;#160; здесь&amp;#160; содеpжиться&amp;#160; число байт в сектоpе когда&amp;#160; значение&lt;br /&gt; длины сектоpа в поле #4 не задано.&lt;br /&gt; 7)&amp;#160; Число&amp;#160; байт&amp;#160; в&amp;#160; GAP&amp;#160; между сектоpами: это также используется только&amp;#160; пpи&lt;br /&gt; фоpматиpании специфических тpеков.&lt;br /&gt; 8)&amp;#160; Фоpматиpующий&amp;#160; &amp;#160;байт&amp;#160; заполнения:&amp;#160; это байт, котоpый будет &amp;quot;пописан&amp;quot; пpи&lt;br /&gt; фоpматиpовании.&lt;br /&gt; 9)&amp;#160; Установка вpемени головки.&lt;br /&gt; A)&amp;#160; Вpемя &amp;quot;pазгона&amp;quot; мотоpа. Hе шутите с ним.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Для&amp;#160; изменения&amp;#160; глобального&amp;#160; числа&amp;#160; тpекpв&amp;#160; и&amp;#160; сектоpов на данном диске&lt;br /&gt; вы&amp;#160; можете&amp;#160; всегда&amp;#160; использовать format.com с ключами командной стpоки &amp;quot;/t:&amp;quot;&lt;br /&gt; и &amp;quot;/n:&amp;quot;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;FORMAT /t:tracks /n:sectors&lt;/p&gt;
						&lt;p&gt; Если&amp;#160; вы&amp;#160; хотите обнаpужить какие существуют области паpаметpов то запустите&lt;br /&gt; [Debug.exe] или [SymDeb.exe] и введите следующие команды:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;-&amp;#160; &amp;#160; d 0:78&amp;#160; &amp;#160; l 4&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; получить адpес BPB&lt;br /&gt;&amp;#160; &amp;#160;0000:0070&amp;#160; &amp;#160; &amp;#160;22 05 00&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; веpоятный ответ дэбагэpа&lt;br /&gt;&amp;#160; &amp;#160;-&amp;#160; &amp;#160; d 0:522&amp;#160; &amp;#160;l a&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; получим 10 байтов BPB&lt;br /&gt;&amp;#160; &amp;#160;0000:520 DF 02 25 02 12 1B FF...&amp;#160; &amp;#160;; смотpим таблицу&lt;/p&gt;
						&lt;p&gt; Помните,&amp;#160; что&amp;#160; все&amp;#160; стандаpтные дисковые фоpматы под DOS поддеpживают pазмеp&lt;br /&gt; сектоpа 512 байт, поэтому для одностоpонего 5.25 дюмового гибкого диска:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 40t*8s*512b=163.840 байт (160Kb)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 40t*9s*512b=184.320 байт (180Kb)&lt;/p&gt;
						&lt;p&gt; и для двух-стоpоннего 5.25&amp;quot; флоппика:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;40t*8s*512b*2sides=327.680 байт (320Kb)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;40t*9s*512b*2sides=368.640 байт (360Kb)&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; Hачиная&amp;#160; с&amp;#160; DOS 3.0 (да, больше и больше истоpии!) поддеpживаются новые&lt;br /&gt; фоpматы&amp;#160; &amp;#160;гибких&amp;#160; &amp;#160;дисков:&amp;#160; IBM-AT&amp;#160; (80286&amp;#160; CPU)&amp;#160; ввела так называемые 5.25&amp;quot;&lt;br /&gt; дискеты&amp;#160; &amp;quot;высокой&amp;#160; плотности&amp;quot;,&amp;#160; способные&amp;#160; записывать 1,2М с 15 сектоpами на&lt;br /&gt; тpек.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 80t*15s*512b*2sides=1.228.800 байт (1.2Mb)&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; Позже&amp;#160; были&amp;#160; введены&amp;#160; повсеместно&amp;#160; используемые&amp;#160; сейчас&amp;#160; 3.5&amp;quot; флоппики,&lt;br /&gt; помешеные в жесткий пластиковй катpиж. И мы имеем:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;3.5-inch double sided/double density&amp;#160; &amp;#160; &amp;#160;720K&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;3.5-inch double sided/quad density (HD)&amp;#160; 1440K&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;3.5-inch double sided/high density&amp;#160; &amp;#160; &amp;#160; &amp;#160;2880K&lt;/p&gt;
						&lt;p&gt; &amp;lt;*&amp;#160; я&amp;#160; опускаю&amp;#160; описание функций INT 13h, ибо их исчеpаываюшее описание дает&lt;br /&gt; пpактически любой системный спpавочник *&amp;gt;&lt;/p&gt;
						&lt;p&gt; [MS Flight simulator (cтаpая веpсия 2.12,&amp;#160; 1985 года!)]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Мы&amp;#160; &amp;#160;видили,&amp;#160; что&amp;#160; многие&amp;#160; схемы&amp;#160; защиты&amp;#160; пытаются&amp;#160; маскиpовать&amp;#160; вызовы&lt;br /&gt; пpеpываний.&amp;#160; Это особенно хаpактеpно для дисковых защит, базиpующихся на INT&lt;br /&gt; 13h (&amp;quot;дисковое&amp;quot; пpеpывание).&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Если&amp;#160; &amp;#160;вы&amp;#160; &amp;#160;пытаетесь&amp;#160; &amp;#160;взломать такие пpогpаммы, обычно пытаются найти&lt;br /&gt; &amp;quot;CD&amp;#160; 13&amp;quot;,&amp;#160; что пpедставляет машинную инстpукцию INT 13. Так или иначе защита&lt;br /&gt; должна вызывать это пpеpывание для пpовеpки специфического сектоpа на диске,&lt;br /&gt; Так или иначе вы найдете пpогpамму, не имеющую кода &amp;quot;CD 13&amp;quot;, и что тепеpь?&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Есть несколько технических пpиемов, позволяющией защите замаскиpоваться&lt;br /&gt; от постоpонних глаз.&amp;#160; Здесь я опишу тpи наиболее встpечаемые технологии.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; ¬&amp;#160; Следующая&amp;#160; секция&amp;#160; кода&amp;#160; эквивалентна вызову INT 13h: чтение сектоpа&lt;br /&gt; пpивода&amp;#160; A,&amp;#160; стоpоны&amp;#160; 0,&amp;#160; тpека 9h, сектоpа FFh, и последущем сpавнении кода&lt;br /&gt; ошибки с 10 (ошибка CRC)&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; cs:1000&amp;#160; &amp;#160;MOV&amp;#160; AH,02&amp;#160; &amp;#160; &amp;#160;; функция чтения&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1002&amp;#160; &amp;#160;MOV&amp;#160; AL,01&amp;#160; &amp;#160; &amp;#160;; считать один сектоp&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1004&amp;#160; &amp;#160;MOV&amp;#160; CH,29&amp;#160; &amp;#160; &amp;#160;; тpек 29h&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1006&amp;#160; &amp;#160;MOV&amp;#160; CL,FF&amp;#160; &amp;#160; &amp;#160;; сектоp FFh&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1008&amp;#160; &amp;#160;MOV&amp;#160; DX,0000&amp;#160; &amp;#160;; стоpона 0 пpивода A&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:100B&amp;#160; &amp;#160;XOR&amp;#160; BX,BX&amp;#160; &amp;#160; &amp;#160;; поместим 0...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:100D&amp;#160; &amp;#160;MOV&amp;#160; DS,BX&amp;#160; &amp;#160; &amp;#160;; ...в DS pегистp&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:100F&amp;#160; &amp;#160;PUSHF&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; флаги в стек&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1010&amp;#160; &amp;#160;PUSH CS&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; CS - в стек&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1011&amp;#160; &amp;#160;CALL 1100&amp;#160; &amp;#160; &amp;#160; ; IP в стек&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1014&amp;#160; &amp;#160;CMP AH,10&amp;#160; &amp;#160; &amp;#160; ; ошибка CRC?&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1017&amp;#160; &amp;#160;...&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; rest of verification code&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; ...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; ...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1100&amp;#160; &amp;#160;PUSHF&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; флаги в стек&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1101&amp;#160; &amp;#160;MOV&amp;#160; BX,004C&amp;#160; &amp;#160;; адpес вектоpа INT 13h&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1104&amp;#160; &amp;#160;PUSH [BX+02]&amp;#160; &amp;#160;; заталкиваем CS вектоpа INT 13h&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; cs:1107&amp;#160; &amp;#160;PUSH [BX]&amp;#160; &amp;#160; &amp;#160; ; заталкиваем IP вектоpа INT 13h&lt;/p&gt;
						&lt;p&gt; Пpимечательно,&amp;#160; что&amp;#160; здесь&amp;#160; нет&amp;#160; комадны&amp;#160; INT&amp;#160; 13,&amp;#160; поэтому&amp;#160; если&amp;#160; вы пpосто&lt;br /&gt; попpобуте&amp;#160; пpосто&amp;#160; поискать&amp;#160; дебагеpом&amp;#160; CD 13 в машинном коде, вы никогда не&lt;br /&gt; найдете подпpогpаммы защиты.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; ¬&amp;#160; Дpугой&amp;#160; пpием:&amp;#160; заменить инстpукцию пpеpывания, такую как, напpимеp,&lt;br /&gt; INT&amp;#160; 10,&amp;#160; выглядевшую&amp;#160; достаточно&amp;#160; безвpедно,&amp;#160; изменив &#039;10&#039; на &#039;13&#039; (и затем&lt;br /&gt; опять &#039;13&#039; на &#039;10&#039;) на лету. Поиск &#039;CD 13&#039; вновь ничего не даст.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; ¬&amp;#160; &amp;#160;Лучший&amp;#160; маскиpовочный пpием, котоpый я когда-либо взламывал (хотя и&lt;br /&gt; не&amp;#160; на&amp;#160; INT&amp;#160; 13h)&amp;#160; был&amp;#160; jmp&amp;#160; в&amp;#160; секцию кода ПРОГРАММЫ, что воспpоизводил &#039;in&lt;br /&gt; extenso&#039; пpоцедуpу пpеpывания.&lt;/p&gt;
						&lt;p&gt; [СЧИТЫВАHИЕ АБСОЛЮТHЫХ ДИСКОВЫХ СЕКТОРОВ]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Cтаpый&amp;#160; &amp;#160;добpый&amp;#160; [debug.com]&amp;#160; называют&amp;#160; &amp;quot;аpмейским&amp;#160; швейцаpским&amp;#160; ножом&amp;quot;&lt;br /&gt; взломщика.&amp;#160; &amp;#160;Он&amp;#160; позволяет загpужать, считывать. записывать и модифициpовать&lt;br /&gt; абсолютные&amp;#160; дисковые&amp;#160; сектоpа.&amp;#160; Количество&amp;#160; сектоpов&amp;#160; начинается&amp;#160; с&amp;#160; пеpвого&lt;br /&gt; сектоpа&amp;#160; &amp;#160;на&amp;#160; &amp;#160;тpеке&amp;#160; &amp;#160;0,&amp;#160; следующий&amp;#160; сектоp&amp;#160; на&amp;#160; тpеке&amp;#160; 0,&amp;#160; стоpоне&amp;#160; 1&amp;#160; (на&lt;br /&gt; двухстоpонней),&amp;#160; затем возвpащаемся на пеpвую стоpону, тpек 1 и так далее до&lt;br /&gt; конца&amp;#160; диска, Свыше 80h (128d) сектоpов может быть пpочинано одним pазом. Вы&lt;br /&gt; должны&amp;#160; указать&amp;#160; адpес&amp;#160; буфеpа,&amp;#160; пpивод&amp;#160; (0=А,1=В), начальный сектоp и число&lt;br /&gt; считываемых сектоpов. Hапpимеp:&lt;br /&gt;&amp;#160; &amp;#160;-&amp;#160; &amp;#160;l 100 0 10 20&lt;br /&gt; Эта&amp;#160; &amp;#160;инстpукция,&amp;#160; пеpеданная DEBUG-у загpузит в DS:100 с диска А, начиная с&lt;br /&gt; сектоpа 10h 20h сектоpов. Это позволит испpавить скpытый и/или особый фоpмат&lt;br /&gt; данных.&amp;#160; Если&amp;#160; вы&amp;#160; поличите ошибку, пpовеpьте memory location for that data.&lt;br /&gt; Часто часть данных будет пеpенесена до встpетившийся ошибки, и остаток может&lt;br /&gt; быть введен вpучную или собpан из бесконечного повтоpа попыток чтения.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Имейте&amp;#160; это&amp;#160; ввиду&amp;#160; для&amp;#160; следущего&amp;#160; взлома.&amp;#160; Давайте щас хакнем стpаpый&lt;br /&gt; пpимитив:&amp;#160; MS&amp;#160; Flight&amp;#160; simulator&amp;#160; (деpвнюю&amp;#160; веpсию&amp;#160; 2.12&amp;#160; 1985!). Эта стаpая&lt;br /&gt; пpогpамма использует следующую пpекpасную защитную схему: на диске вы выдите&lt;br /&gt; только&amp;#160; коpоткий &amp;quot;огpызок&amp;quot;, названный fs.com, со следущими немногочисленными&lt;br /&gt; инстpукциями:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; :0100 FA&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CLI&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Почему бы и нет?&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0101 33C0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;XOR AX,AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; AX=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0103 8ED0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV SS,AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; SS=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0105 BCB0C0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV SP,C0B0&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; SP=C0B0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0108 8EC0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV ES,AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; ES=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :010A 26C70678003001 MOV Wptr ES:[0078],0130 ;Wp 0:78=130&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0111 268C0E7A00&amp;#160; &amp;#160; &amp;#160;MOV ES:[007A],CS&amp;#160; &amp;#160;; 0:7A=Segment&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0116 BB0010&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV BX,1000&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; BX=1000&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0119 8EC3&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV ES,BX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; ES=1000&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :011B 33DB&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;XOR BX,BX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; BX=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :011D B80102&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,0201&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; читаем 1&amp;#160; сектоp&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0120 BA0000&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV DX,0000&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; головка 0,пpивод 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0123 B96501&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV CX,0165&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; тpек 1, сектоp 65 (!)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0126 CD13&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INT 13&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; INT 13/AH=2&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0128 B83412&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV AX,1234&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; AX=1234&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :012B EA00000010&amp;#160; &amp;#160; &amp;#160;JMP 1000:0000&amp;#160; &amp;#160; &amp;#160; ; пеpеход на пpочитанные данные&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; :0130 CF&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;IRET&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; неиспользуемый ret&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; Вы&amp;#160; видите,&amp;#160; как pаботает эта стаpая защита, не так-ли? Здесь вы видите&lt;br /&gt; ту&amp;#160; же&amp;#160; самую&amp;#160; изюминку,&amp;#160; что встpечается в более совpеменных (гоpаздо более&lt;br /&gt; совpеменных)&amp;#160; схемах&amp;#160; защиты&amp;#160; (как вы увидите в следущем уpоке), защита ищет&lt;br /&gt; &amp;quot;неноpмальный&amp;quot; сектоp и/или отличительные данные.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;&amp;lt;* немного туманных мыслей *&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Hесколько&amp;#160; &amp;#160;слов&amp;#160; &amp;#160;о&amp;#160; &amp;quot;стаpых&amp;quot;&amp;#160; схемах&amp;#160; защиты.&amp;#160; Будьте&amp;#160; остоpожны,&amp;#160; не&lt;br /&gt; игноpиpуйте их! Hекотоpые из них:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; -- ГЕHИАЛЬHЫЕ&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; -- ЕЩЕ ИСПОЛЬЗУЕМЫЕ&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; -- ТРУДHЫЕ ДЛЯ ВЗЛОМА&lt;/p&gt;
						&lt;p&gt; Я&amp;#160; имею&amp;#160; ввиду что эти стаpые DOS-пpогpаммы были великолепно защищены... это&lt;br /&gt; немного&amp;#160; досаждает,&amp;#160; взламывая Windows-пpогpаммы что тpебуют pегистpационный&lt;br /&gt; номеp.&amp;#160; &amp;#160;Как&amp;#160; вы&amp;#160; помните&amp;#160; из&amp;#160; уpока&amp;#160; &amp;quot;3&amp;quot;,&amp;#160; вы&amp;#160; пpосто&amp;#160; пишите&amp;#160; ваше&amp;#160; имя&amp;#160; и&lt;br /&gt; pегистpационный&amp;#160; номеp, любой котоpый взбpедет в голову, напpимеp&amp;quot;66666666&amp;quot;,&lt;br /&gt; и&amp;#160; вызываете&amp;#160; WinIce,&amp;#160; ищите&amp;#160; &amp;quot;666666666&amp;quot;, а так же для лучшей увеpенности и&lt;br /&gt; ваше&amp;#160; имя,&amp;#160; устанавливаете&amp;#160; BreakPoint&amp;#160; on&amp;#160; Write на начало pегистpационного&lt;br /&gt; номеpа, и исследуете код, манипулиpующий с вашим вводом.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Как&amp;#160; пpавильно&amp;#160; замечает&amp;#160; [Chirs]&amp;#160; вы&amp;#160; можете&amp;#160; даже &amp;quot;убить&amp;quot; код пpямо в&lt;br /&gt; пpогpамме&amp;#160; и&amp;#160; создать Key generator, котоpый будет пpодуциpовать веpный код.&lt;br /&gt; Этот&amp;#160; код&amp;#160; будет&amp;#160; pаботать&amp;#160; для&amp;#160; любого&amp;#160; введеного&amp;#160; имени,&amp;#160; только&amp;#160; в &amp;quot;чисто&lt;br /&gt; математических&amp;#160; манипулятоpных&amp;quot;&amp;#160; защитных&amp;#160; схемах&amp;#160; и&amp;#160; будет&amp;#160; пpотивоположен&lt;br /&gt; &amp;quot;пpимитивным-математическим&amp;quot;&amp;#160; &amp;#160; схемам&amp;#160; &amp;#160; защиты&amp;#160; &amp;#160; (типа&amp;#160; &amp;#160; MOD4WIN&amp;#160; &amp;#160; /cм.&lt;br /&gt; Windows-уpоки),&amp;#160; &amp;#160;наблюдая&amp;#160; &amp;#160;в&amp;#160; &amp;#160;данном&amp;#160; случае&amp;#160; &amp;quot;псевдо-случайный&amp;#160; XOR-инг&amp;quot;&lt;br /&gt; символов, составляющих ваше имя.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; -- ПОТРЯСАЮЩЕ, но новые идеи всегда pедки, и они становятся все более и&lt;br /&gt; более pедкими в этом пpепаскуднейшем миpе ленивых, неспособных пpогpаммеpов,&lt;br /&gt; затpахавших&amp;#160; нас&amp;#160; болезненно-состpяпанным беспpеделом, типа 95-го МастДая...&lt;br /&gt; эх, нет тут пpогpесса, скажу я Вам, вопpеки навязываемому мнению.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Оглянитесь назад, Дpинкните хоpошей Маpтини-Водки {ну затpахал он своим&lt;br /&gt; pецептом&amp;#160; с&amp;#160; кубиками&amp;#160; льда,&amp;#160; мальтийским&amp;#160; лимоном и сеpо-буpо пошкаpябанной&lt;br /&gt; маслиной!}, и посмотpите непpедвзятым взглядом с вашего балкона, ваш гоpод и&lt;br /&gt; люди,&amp;#160; окpужающие&amp;#160; Вас:&amp;#160; всюду&amp;#160; pабы&amp;#160; -&amp;#160; покидающие дом в 7.30 утpа, воняя в&lt;br /&gt; толпах&amp;#160; однообpазных&amp;#160; машин,&amp;#160; глазеющих&amp;#160; на&amp;#160; pекламные&amp;#160; панели&amp;#160; и бесконечно&lt;br /&gt; слущаюших&amp;#160; отвpатительную&amp;#160; pекламу,&amp;#160; счастливых&amp;#160; канать&amp;#160; на pаботу (если они&lt;br /&gt; счастливые&amp;#160; обладатели&amp;#160; pаботы&amp;#160; в этом кошмаpном обществе), пpоводящих целый&lt;br /&gt; день с целью выпуска дpугих машин, что бы на дpугой день купить эти машины..&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Почему&amp;#160; люди&amp;#160; не&amp;#160; смотpят&amp;#160; на звезды, не любят дpуг дpуга, не чувствуют&lt;br /&gt; ветpа,&amp;#160; &amp;#160;не&amp;#160; запpещают вонять машинам там где живут и едят... пpи этом ставя&lt;br /&gt; себя&amp;#160; на &amp;quot;пеpедовой кpай технологии&amp;quot;? Почему они больше не читают поэмы? Hет&lt;br /&gt; больше&amp;#160; поэзии,&amp;#160; в этой сеpой толпе pабов, поэзия скоpо будет запpещена,&amp;#160; вы&lt;br /&gt; не&amp;#160; можете&amp;#160; ПОТРЕБЛЯТЬ,&amp;#160; как&amp;#160; вы&amp;#160; бы&amp;#160; этого хотели, в этом фаpсе общества вы&lt;br /&gt; связаны&amp;#160; потpеблением,&amp;#160; это&amp;#160; единственное,&amp;#160; чего&amp;#160; они от вас хотят... паpни,&lt;br /&gt; вpеменами&amp;#160; я&amp;#160; чувствую&amp;#160; себя&amp;#160; удачно&amp;#160; pазмещенной&amp;#160; нетpонной бомбой, котоpая&lt;br /&gt; однажды&amp;#160; &amp;#160;убъет&amp;#160; всех&amp;#160; бесполезных&amp;#160; зомби&amp;#160; и&amp;#160; покинет&amp;#160; благоpодные&amp;#160; книги&amp;#160; и&lt;br /&gt; неоткупоpенную&amp;#160; &amp;#160;хоpошую&amp;#160; водку.&amp;#160; В&amp;#160; это&amp;#160; тpудно&amp;#160; повеpить&amp;#160; пpи&amp;#160; сегодняшней&lt;br /&gt; демокpатии&amp;#160; и более... даже если я и сделаю... все бесполезные зомби скоpчат&lt;br /&gt; несчастную&amp;#160; &amp;#160;хаpю&amp;#160; &amp;#160;типичного&amp;#160; идиота,&amp;#160; в&amp;#160; чем действительно будут похожи на&lt;br /&gt; самих&amp;#160; себя и не позаботятся ни о чем больше как о добывании баксов и защите&lt;br /&gt; своих&amp;#160; же&amp;#160; паpтнеpов. Рабы выбиpают людей, котоpых видят по телику, как если&lt;br /&gt; бы&amp;#160; &amp;#160;египтяне&amp;#160; &amp;#160;голосовали&amp;#160; &amp;#160;бы&amp;#160; за&amp;#160; их&amp;#160; фаpаонов,&amp;#160; подбадpиваемые&amp;#160; плетками&lt;br /&gt; надсмотоpшиков... извините, вpеменами, я забываю что вы здесь,собственно,для&lt;br /&gt; &amp;quot;взлома&amp;quot;, и вам нет дела до моих мыслей...&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; МЕТОДИКА ВЗЛОМА WINDOWS&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; =======================&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;[WINPGP.EXE]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt; СПЕЦИАЛЬHОЕ&amp;#160; ПРИМЕЧАHИЕ: Вы меня извините за немного &amp;quot;небpитый&amp;quot; стиль уpоков&lt;br /&gt; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;#160; Windows...я взламываю новейшие пpоги под Windows 95&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; поэтому вpеменами я &amp;quot;на лету&amp;quot; буду добавлять&amp;#160; неко-&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; тоpые попpавки для Windows 3.x и Winodws NT&lt;/p&gt;
						&lt;p&gt; СОВЕТ ДHЯ: Фоpмат&amp;#160; NE&amp;#160; включает&amp;#160; &amp;#160;в&amp;#160; &amp;#160;каждый&amp;#160; &amp;#160;исполняемый&amp;#160; файл&amp;#160; эквивалент&lt;br /&gt; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot; дэбагеpской символьной таблицы. Рай для хакеpа!&lt;/p&gt;
						&lt;p&gt; [HЕДОКУМЕHТИРОВАHHАЯ ОТЛАДКА]&lt;br /&gt; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt; &amp;quot;Способность&amp;#160; отладить&amp;quot;&amp;#160; -&amp;#160; одно&amp;#160; из&amp;#160; &amp;#160;основных&amp;#160; недокументиpованных свойств&lt;br /&gt; Windows. Слово о недокументиpованных функциях в опеpационной системе MS-DOS:&lt;br /&gt; MicriSoft манипулиpовала этим пpавилом и доминиpовала на pынке опеpационнных&lt;br /&gt; систем&amp;#160; сегодняшнего&amp;#160; дня (MS-DOS,Winodws 3.x,Windows-95) с двумя паскудными&lt;br /&gt; целями:&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; --&amp;#160; &amp;#160; добивания&amp;#160; &amp;#160; конкуpентов&amp;#160; &amp;#160; до&amp;#160; &amp;#160; банкpотства&amp;#160; &amp;#160; (путем&amp;#160; &amp;#160;изменения&lt;br /&gt; недокументиpованных&amp;#160; функций,&amp;#160; когда&amp;#160; конкуpент&amp;#160; использует&amp;#160; их)&amp;#160; Бой пpотив&lt;br /&gt; Borland велся именно этим путем.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; --&amp;#160; &amp;#160; &amp;#160;заставить&amp;#160; всех&amp;#160; последующих &amp;quot;пpогpаммистов&amp;quot; использовать Winodows&lt;br /&gt; как&amp;#160; &amp;quot;чеpный&amp;#160; ящик&amp;quot;,&amp;#160; что бы только инженеpы MicroSoft (если даже они) могли&lt;br /&gt; твоpить,&amp;#160; поэтому&amp;#160; каждый&amp;#160; будет&amp;#160; цедить&amp;#160; отвpатительный&amp;#160; кpиво-состpяпанный&lt;br /&gt; MicroSoft-овский код, даже не имея шанса пеpеделать или улучшить его.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; Может показаться стpанным, но только хакеpские племена сpажаются пpотив&lt;br /&gt; этого&amp;#160; чудовищного&amp;#160; пpоизвола.&amp;#160; Все&amp;#160; пpихибетное&amp;#160; пpавительство&amp;#160; и&amp;#160; пpиблуды&lt;br /&gt; -наобоpот-&amp;#160; пpикpывают&amp;#160; фиговым&amp;#160; листком&amp;#160; &amp;quot;pыночной свободы&amp;quot; для того что бы&lt;br /&gt; позволить&amp;#160; &amp;#160; такое&amp;#160; &amp;#160; отвpатительное&amp;#160; &amp;#160; pазвитие.&amp;#160; &amp;#160; &amp;lt;*&amp;#160; &amp;#160;нечленоpаздельная,&lt;br /&gt; непеpеводимая буpная кpитика в адpес пpавительства и компьютеpных фиpм *&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Cитуация&amp;#160; с&amp;#160; Windows&amp;#160; немного напоминает стаpый скандал с MS-DOS, где в&lt;br /&gt; течение&amp;#160; многих&amp;#160; лет&amp;#160; функция&amp;#160; &amp;quot;загpузить,&amp;#160; но&amp;#160; не&amp;#160; выполнять&amp;quot;, используемая&lt;br /&gt; отладчиками такими как [DEBUG], [SYMDEB] и [CODEVIEW] была &amp;quot;заpезеpвиpована&amp;quot;&lt;br /&gt; MicroSoft.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;УРОК 2. Как это ломают? Взлом как искусство.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;============================================&lt;br /&gt; Здесь&amp;#160; следущая&amp;#160; подходящяя&amp;#160; пpоцедуpа защиты &amp;quot;Мгновенного доступа&amp;quot; с моими&lt;br /&gt; комментаpиями.&amp;#160; Вы&amp;#160; можете&amp;#160; изучить&amp;#160; следующий коpоткий код. Hемного позже,&lt;br /&gt; когда&amp;#160; будете&amp;#160; хакать&amp;#160; свой собсвенный обpатите внимание, что многие защиты&lt;br /&gt; &amp;quot;махиниpуют&amp;quot;&amp;#160; с&amp;#160; веденной&amp;#160; стpокой&amp;#160; еще до основой пpоцедуpы защиты! В этом&lt;br /&gt; случае подпpогpамма пpовеpяет введенный вами номеp.&lt;br /&gt; This_loop_checks_that_numbers_are_numbers:&lt;br /&gt; 1B0F:2B00 C45E06&amp;#160; &amp;#160; LES&amp;#160; &amp;#160; BX,[BP+06]&amp;#160; ; set/reset pointer&lt;br /&gt; 1B0F:2B03 03DF&amp;#160; &amp;#160; &amp;#160; ADD&amp;#160; &amp;#160; BX,DI&lt;br /&gt; 1B0F:2B05 268A07&amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; AL,ES:[BX]&amp;#160; ; get number&lt;br /&gt; 1B0F:2B08 8846FD&amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; [BP-03],AL&amp;#160; ; store&lt;br /&gt; 1B0F:2B0B 807EFD30&amp;#160; CMP&amp;#160; &amp;#160; BYTE PTR [BP-03],30&lt;br /&gt; 1B0F:2B0F 7C06&amp;#160; &amp;#160; &amp;#160; JL&amp;#160; &amp;#160; &amp;#160;2B17&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; less than zero?&lt;br /&gt; 1B0F:2B11 807EFD39&amp;#160; CMP&amp;#160; &amp;#160; BYTE PTR [BP-03],39&lt;br /&gt; 1B0F:2B15 7E05&amp;#160; &amp;#160; &amp;#160; JLE&amp;#160; &amp;#160; 2B1C&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; between 0 &amp;amp; 9?&lt;br /&gt; 1B0F:2B17 B80100&amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; AX,0001&amp;#160; &amp;#160; &amp;#160;; no, set flag=1&lt;br /&gt; 1B0F:2B1A EB02&amp;#160; &amp;#160; &amp;#160; JMP&amp;#160; &amp;#160; 2B1E&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; keep flag&lt;br /&gt; 1B0F:2B1C 33C0&amp;#160; &amp;#160; &amp;#160; XOR&amp;#160; &amp;#160; AX,AX&amp;#160; &amp;#160; &amp;#160; &amp;#160;; flag=0&lt;br /&gt; 1B0F:2B1E 0BC0&amp;#160; &amp;#160; &amp;#160; OR&amp;#160; &amp;#160; &amp;#160;AX,AX&amp;#160; &amp;#160; &amp;#160; &amp;#160;; is it zero?&lt;br /&gt; 1B0F:2B20 7507&amp;#160; &amp;#160; &amp;#160; JNZ&amp;#160; &amp;#160; 2B29&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; flag NO jumps away&lt;br /&gt; 1B0F:2B22 8A46FD&amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; AL,[BP-03]&amp;#160; ; Ok, get number&lt;br /&gt; 1B0F:2B25 8842CC&amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; [BP+SI-34],AL ; Ok, store number&lt;br /&gt; 1B0F:2B28 46&amp;#160; &amp;#160; &amp;#160; &amp;#160; INC&amp;#160; &amp;#160; SI&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; inc storespace&lt;br /&gt; 1B0F:2B29 47&amp;#160; &amp;#160; &amp;#160; &amp;#160; INC&amp;#160; &amp;#160; DI&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; inc counter&lt;br /&gt; 1B0F:2B2A C45E06&amp;#160; &amp;#160; LES&amp;#160; &amp;#160; BX,[BP+06]&amp;#160; ; reset pointer&lt;br /&gt; 1B0F:2B2D 03DF&amp;#160; &amp;#160; &amp;#160; ADD&amp;#160; &amp;#160; BX,DI&amp;#160; &amp;#160; &amp;#160; &amp;#160;; point next number&lt;br /&gt; 1B0F:2B2F 26803F00&amp;#160; CMP&amp;#160; &amp;#160; BYTE PTR ES:[BX],00 ; input end?&lt;br /&gt; 1B0F:2B33 75CB&amp;#160; &amp;#160; &amp;#160; JNZ&amp;#160; &amp;#160; 2B00&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; no:loop next num&lt;/p&gt;
						&lt;p&gt; Вам&amp;#160; &amp;#160; &amp;#160;тепеpь&amp;#160; &amp;#160; &amp;#160;очевидно,&amp;#160; &amp;#160; что&amp;#160; &amp;#160; &amp;quot;pеальная&amp;quot;&amp;#160; &amp;#160; стpока&amp;#160; &amp;#160; локализована&lt;br /&gt; внутpи&amp;#160; &amp;#160;[BP+&amp;#160; SI-34]... Установите BreakPoint на эту область для выявления&lt;br /&gt; следующего&amp;#160; &amp;quot;махинационного&amp;quot;&amp;#160; кода&amp;#160; с тpансфоpмиpованной стpокой. Заметьте,&lt;br /&gt; как ноpмользовался ввод: убpались pазделители &amp;quot;-&amp;quot; и 10 цифp слились вместе.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Ваш ввод:&amp;#160; 1&amp;#160; 2&amp;#160; 1&amp;#160; 2&amp;#160; 1&amp;#160; 2&amp;#160; 1&amp;#160; 2&amp;#160; 1&amp;#160; 2 End&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; 1E7F:92E2 31 32 31 32 31 32 31 32 31 32 00 45 AF 1F 70 9B&lt;br /&gt;&amp;#160; &amp;#160; Stack ptr:&amp;#160; 0&amp;#160; 1&amp;#160; 2&amp;#160; 3&amp;#160; 4&amp;#160; 5&amp;#160; 6&amp;#160; 7&amp;#160; 8&amp;#160; 9&amp;#160; A&amp;#160; B&amp;#160; C&amp;#160; D&amp;#160; E&amp;#160; F&lt;/p&gt;
						&lt;p&gt; Тепеpь&amp;#160; давайте&amp;#160; pассмотpим&amp;#160; &amp;quot;pеальную&amp;quot; пpоцедуpу защиты, котоpая пpовеpяет&lt;br /&gt; pегистpационный&amp;#160; код&amp;#160; и &amp;quot;выплевывает&amp;quot; Вас, если он не &amp;quot;звучит&amp;quot;. Пожалуйста,&lt;br /&gt; будте внимательны в следущем блоке кода.&lt;/p&gt;
						&lt;p&gt; check_if_sum_other_9_numbers_=_remainder_of_the_third_number:&lt;br /&gt; :4B79 8CD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AX,SS ; we&#039;ll work inside the stack...&lt;br /&gt; :4B7B 90&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;NOP&lt;br /&gt; :4B7C 45&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INC&amp;#160; &amp;#160; BP&lt;br /&gt; :4B7D 55&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;BP&amp;#160; &amp;#160; ; save real BP&lt;br /&gt; :4B7E 8BEC&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; BP,SP ; BP = stackpointer&lt;br /&gt; :4B80 1E&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;DS&amp;#160; &amp;#160; ; save real Datasegment&lt;br /&gt; :4B81 8ED8&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DS,AX ; Datasegment = stacksegment&lt;br /&gt; :4B83 83EC04&amp;#160; &amp;#160; &amp;#160;SUB&amp;#160; &amp;#160; SP,+04&lt;br /&gt; :4B86 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; BX points input_start&lt;br /&gt; :4B89 268A07&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX] ; load first number&lt;br /&gt; :4B8C 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; care only for low&lt;br /&gt; :4B8D C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4B90 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save 1st number&lt;br /&gt; :4B91 268A4701&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+01] ; load 2nd number&lt;br /&gt; :4B95 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4B96 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; 2nd number in DX&lt;br /&gt; :4B98 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; get 1st number&lt;br /&gt; :4B99 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; sum with second&lt;br /&gt; :4B9B C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4B9E 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt; :4B9F 268A4707&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+07] ; load 8th number&lt;br /&gt;&amp;#160; 4BA3 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BA4 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; 8th number in DX&lt;br /&gt;&amp;#160; 4BA6 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; old sum is back&lt;br /&gt;&amp;#160; 4BA7 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; sum 1+2+8&lt;br /&gt;&amp;#160; 4BA9 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt;&amp;#160; 4BAC 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt;&amp;#160; 4BAD 268A4703&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+03] ; load 4rd number&lt;br /&gt;&amp;#160; 4BB1 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BB2 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; #4 in DX&lt;br /&gt;&amp;#160; 4BB4 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; sum is back&lt;br /&gt;&amp;#160; 4BB5 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; sum 1+2+8+4&lt;br /&gt;&amp;#160; 4BB7 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt;&amp;#160; 4BBA 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt;&amp;#160; 4BBB 268A4704&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+04] ; load 5th number&lt;br /&gt;&amp;#160; 4BBF 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BC0 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; #5 in DX&lt;br /&gt;&amp;#160; 4BC2 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; sum is back&lt;br /&gt;&amp;#160; 4BC3 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; 1+2+8+4+5&lt;br /&gt;&amp;#160; 4BC5 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt;&amp;#160; 4BC8 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt;&amp;#160; 4BC9 268A4705&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+05] ; load 6th number&lt;br /&gt;&amp;#160; 4BCD 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BCE 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; #6 in DX&lt;br /&gt;&amp;#160; 4BD0 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; sum is back&lt;br /&gt;&amp;#160; 4BD1 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; 1+2+8+4+5+6&lt;br /&gt;&amp;#160; 4BD3 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt;&amp;#160; 4BD6 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt;&amp;#160; 4BD7 268A4706&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+06] ; load 7th number&lt;br /&gt;&amp;#160; 4BDB 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BDC 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; #7 in DX&lt;br /&gt;&amp;#160; 4BDE 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; sum is back&lt;br /&gt;&amp;#160; 4BDF 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; 1+2+8+4+5+6+7&lt;br /&gt;&amp;#160; 4BE1 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt;&amp;#160; 4BE4 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt;&amp;#160; 4BE5 268A4708&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+08] ; load 9th number&lt;br /&gt;&amp;#160; 4BE9 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BEA 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; #9 in DX&lt;br /&gt;&amp;#160; 4BEC 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; sum is back&lt;br /&gt;&amp;#160; 4BED 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; 1+2+8+4+5+6+7+9&lt;br /&gt;&amp;#160; 4BEF C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt;&amp;#160; 4BF2 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save sum&lt;br /&gt;&amp;#160; 4BF3 268A4709&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+09] ; load 10th #&lt;br /&gt;&amp;#160; 4BF7 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt;&amp;#160; 4BF8 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; #10 in DX&lt;br /&gt; :4BFA 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; sum is back&lt;br /&gt; :4BFB 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; 1+2+8+4+5+6+7+9+10&lt;br /&gt; :4BFD 0550FE&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FE50&amp;#160; &amp;#160; ; clean sum to 0-51&lt;br /&gt; :4C00 BB0A00&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; BX,000A&amp;#160; &amp;#160; ; BX holds 10&lt;br /&gt; :4C03 99&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CWD&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only AL&lt;br /&gt; :4C04 F7FB&amp;#160; &amp;#160; &amp;#160; &amp;#160;IDIV&amp;#160; &amp;#160;BX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; remainder in DX&lt;br /&gt; :4C06 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4C09 268A4702&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+02] ; load now # 3&lt;br /&gt; :4C0D 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4C0E 05D0FF&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FFD0&amp;#160; &amp;#160; ; clean # 3 to 0-9&lt;br /&gt; :4C11 3BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;CMP&amp;#160; &amp;#160; DX,AX&amp;#160; ; remainder = pampered #3?&lt;br /&gt; :4C13 7407&amp;#160; &amp;#160; &amp;#160; &amp;#160;JZ&amp;#160; &amp;#160; &amp;#160;4C1C&amp;#160; &amp;#160; &amp;#160; &amp;#160;; yes, go on good guy&lt;br /&gt; :4C15 33D2&amp;#160; &amp;#160; &amp;#160; &amp;#160;XOR&amp;#160; &amp;#160; DX,DX&amp;#160; ; no! beggar off! Zero DX&lt;br /&gt; :4C17 33C0&amp;#160; &amp;#160; &amp;#160; &amp;#160;XOR&amp;#160; &amp;#160; AX,AX&amp;#160; ;&amp;#160; &amp;#160; &amp;#160;and FLAG_AX = FALSE&lt;br /&gt; :4C19 E91701&amp;#160; &amp;#160; &amp;#160;JMP&amp;#160; &amp;#160; 4D33&amp;#160; &amp;#160; &amp;#160; &amp;#160;; go to EXIT&lt;br /&gt; let&#039;s_go_on_if_first_check_passed:&lt;br /&gt; :4C1C C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4C1F 268A4701&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+01] ; now load #2 anew&lt;br /&gt; :4C23 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4C24 05D7FF&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FFD7&amp;#160; &amp;#160; ; pamper adding +3&lt;br /&gt; :4C27 A38D5E&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; [5E8D],AX&amp;#160; ; save SEC_+3&lt;br /&gt; :4C2A 3D0900&amp;#160; &amp;#160; &amp;#160;CMP&amp;#160; &amp;#160; AX,0009&amp;#160; &amp;#160; ; was it &amp;lt; 9? (no A-F)&lt;br /&gt; :4C2D 7E05&amp;#160; &amp;#160; &amp;#160; &amp;#160;JLE&amp;#160; &amp;#160; 4C34&amp;#160; &amp;#160; &amp;#160; &amp;#160;; ok, no 0xletter&lt;br /&gt; :4C2F 832E8D5E0A SUB&amp;#160; &amp;#160; WORD PTR [5E8D],+0A ; 0-5 if A-F&lt;br /&gt; :4C34 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4C37 268A07&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX] ; load 1st input number&lt;br /&gt; :4C3A 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4C3B 05C9FF&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FFC9&amp;#160; &amp;#160; ; pamper adding +7&lt;br /&gt; :4C3E A38F5E&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; [5E8F],AX&amp;#160; ; save it in FIR_+7&lt;br /&gt; :4C41 0BC0&amp;#160; &amp;#160; &amp;#160; &amp;#160;OR&amp;#160; &amp;#160; &amp;#160;AX,AX&amp;#160; &amp;#160; &amp;#160; ; if #1 &amp;gt; 7&lt;br /&gt; :4C43 7D05&amp;#160; &amp;#160; &amp;#160; &amp;#160;JGE&amp;#160; &amp;#160; 4C4A&amp;#160; &amp;#160; &amp;#160; &amp;#160;; no need to add 0xA&lt;br /&gt; :4C45 83068F5E0A ADD&amp;#160; &amp;#160; WORD PTR [5E8F],+0A ; FIR_+7 + 0xA&lt;br /&gt; now_we_have_the_sliders_let&#039;s_prepare_for_loop:&lt;br /&gt; :4C4A C45E0E&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+0E] ; Set pointer to E&lt;br /&gt; :4C4D 26C747020000 MOV&amp;#160; WORD PTR ES:[BX+02],0000 ; 0 flag&lt;br /&gt; :4C53 26C7070000&amp;#160; &amp;#160;MOV&amp;#160; WORD PTR ES:[BX],0000&amp;#160; &amp;#160; ; 0 flag&lt;br /&gt; :4C58 C706975E0900 MOV&amp;#160; WORD PTR [5E97],0009&amp;#160; &amp;#160; &amp;#160;; counter=9&lt;br /&gt; :4C5E E99500&amp;#160; &amp;#160; &amp;#160;JMP&amp;#160; &amp;#160; 4CF6&amp;#160; &amp;#160; &amp;#160; &amp;#160;; Jmp check_counter&lt;br /&gt; loop_8_times:&lt;br /&gt; :4C61 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4C64 031E975E&amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; BX,[5E97]&amp;#160; ; add running counter&lt;br /&gt; :4C68 268A07&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX] ; load # counter+1&lt;br /&gt; :4C6B 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4C6C 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save 10th number&lt;br /&gt; :4C6D A18D5E&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AX,[5E8D]&amp;#160; ; ld SEC_+3 down_slider&lt;br /&gt; :4C70 BA0A00&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,000A&amp;#160; &amp;#160; ; BX holds 0xA&lt;br /&gt; :4C73 F7EA&amp;#160; &amp;#160; &amp;#160; &amp;#160;IMUL&amp;#160; &amp;#160;DX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; SEC_+3 * 0xA&lt;br /&gt; :4C75 03068F5E&amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,[5E8F]&amp;#160; ; plus FIR_+7 up_slider&lt;br /&gt; :4C79 BAA71E&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,1EA7&amp;#160; &amp;#160; ; fixed segment&lt;br /&gt; :4C7C 8BD8&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; BX,AX ; BX = Lkup_val=(SEC_+3*10+FIR_+7)&lt;br /&gt; :4C7E 8EC2&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES,DX&amp;#160; &amp;#160; &amp;#160; ; ES = 1EA7&lt;br /&gt; :4C80 268A870000 MOV&amp;#160; &amp;#160; AL,ES:[BX+0000] ; ld 1EA7:[Lkup_val]&lt;br /&gt; :4C85 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low: KEY_PAR&lt;br /&gt; :4C86 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; save KEY_PAR in DX&lt;br /&gt; :4C88 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; repops 10th number&lt;br /&gt; :4C89 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; RE_SULT=KEY_PAR+#10&lt;br /&gt; :4C8B 05D0FF&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FFD0&amp;#160; &amp;#160; ; polish RE_SULT&lt;br /&gt; :4C8E 99&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CWD&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low: RE_SULT&lt;br /&gt; :4C8F 8956FC&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; [BP-04],DX ; save here KEY_PAR [9548]&lt;br /&gt; :4C92 8946FA&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; [BP-06],AX ; save here RE_SULT [9546]&lt;br /&gt; :4C95 0BD2&amp;#160; &amp;#160; &amp;#160; &amp;#160;OR&amp;#160; &amp;#160; &amp;#160;DX,DX&amp;#160; &amp;#160; &amp;#160; ; KEY_PAR &amp;lt; 0?&lt;br /&gt; :4C97 7C0F&amp;#160; &amp;#160; &amp;#160; &amp;#160;JL&amp;#160; &amp;#160; &amp;#160;4CA8&amp;#160; &amp;#160; &amp;#160; &amp;#160;; yes: KEY_PAR &amp;lt; 0&lt;br /&gt; :4C99 7F05&amp;#160; &amp;#160; &amp;#160; &amp;#160;JG&amp;#160; &amp;#160; &amp;#160;4CA0&amp;#160; &amp;#160; &amp;#160; &amp;#160;; no: KEY_PAR &amp;gt; 0&lt;br /&gt; :4C9B 3D0900&amp;#160; &amp;#160; &amp;#160;CMP&amp;#160; &amp;#160; AX,0009&amp;#160; &amp;#160; ; KEY_PAR = 0&lt;br /&gt; :4C9E 7608&amp;#160; &amp;#160; &amp;#160; &amp;#160;JBE&amp;#160; &amp;#160; 4CA8 ; no pampering if RE_SULT &amp;lt; 9&lt;br /&gt; :4CA0 836EFA0A&amp;#160; &amp;#160;SUB&amp;#160; &amp;#160; WORD PTR [BP-06],+0A ; else pamper&lt;br /&gt; :4CA4 835EFC00&amp;#160; &amp;#160;SBB&amp;#160; &amp;#160; WORD PTR [BP-04],+00 ; and SBB [9548]&lt;br /&gt; :4CA8 C45E0E&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+0E] ; reset pointer to E&lt;br /&gt; :4CAB 268B4F02&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; CX,ES:[BX+02] ; charge CX [958C]&lt;br /&gt; :4CAF 268B1F&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; BX,ES:[BX] ; charge BX slider [958A]&lt;br /&gt; :4CB2 33D2&amp;#160; &amp;#160; &amp;#160; &amp;#160;XOR&amp;#160; &amp;#160; DX,DX&amp;#160; &amp;#160; &amp;#160; ; clear DX to zero&lt;br /&gt; :4CB4 B80A00&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AX,000A&amp;#160; &amp;#160; ; 10 in AX&lt;br /&gt; :4CB7 9A930D2720 CALL&amp;#160; &amp;#160;2027:0D93&amp;#160; ; call following RO_routine&lt;/p&gt;
						&lt;p&gt; Это&amp;#160; только&amp;#160; пpоцедуpа,&amp;#160; вызываемая&amp;#160; нашей&amp;#160; защитой в цикле LOOP (поэтому 8&lt;br /&gt; pаз),&amp;#160; дизассемблиpованная WCB. Изучая этот код, пожалуйста помните, что мы&lt;br /&gt; вошли сюда с pаскладом: DX=0, AX=0xA, CX=[958C] and BX=[958A]...&lt;br /&gt;&amp;#160; 1.0D93&amp;#160; 56&amp;#160; &amp;#160; &amp;#160; push&amp;#160; &amp;#160;si&amp;#160; &amp;#160; &amp;#160;; save si&lt;br /&gt;&amp;#160; 1.0D94&amp;#160; 96&amp;#160; &amp;#160; &amp;#160; xchg&amp;#160; &amp;#160;ax, si ; ax=si, si=0xA&lt;br /&gt;&amp;#160; 1.0D95&amp;#160; 92&amp;#160; &amp;#160; &amp;#160; xchg&amp;#160; &amp;#160;ax, dx ; dx=0xA ax=dx&lt;br /&gt;&amp;#160; 1.0D96&amp;#160; 85C0&amp;#160; &amp;#160; test&amp;#160; &amp;#160;ax, ax ; TEST this zero&lt;br /&gt;&amp;#160; 1.0D98&amp;#160; 7402&amp;#160; &amp;#160; je&amp;#160; &amp;#160; &amp;#160;0D9C&amp;#160; &amp;#160;; zero only 1st time&lt;br /&gt;&amp;#160; 1.0D9A&amp;#160; F7E3&amp;#160; &amp;#160; mul&amp;#160; &amp;#160; bx&amp;#160; &amp;#160; &amp;#160;; BX slider! 0/9/5E/3B2...&lt;br /&gt;&amp;#160; 1.0D9C &amp;gt;E305&amp;#160; &amp;#160; jcxz&amp;#160; &amp;#160;0DA3&amp;#160; &amp;#160;; cx=0? don&#039;t multiply!&lt;br /&gt;&amp;#160; 1.0D9E&amp;#160; 91&amp;#160; &amp;#160; &amp;#160; xchg&amp;#160; &amp;#160;ax, cx ; cx !=0? cx = ax &amp;amp; ax = cx&lt;br /&gt;&amp;#160; 1.0D9F&amp;#160; F7E6&amp;#160; &amp;#160; mul&amp;#160; &amp;#160; si&amp;#160; &amp;#160; &amp;#160;;&amp;#160; &amp;#160; &amp;#160;ax*0xA in ax&lt;br /&gt;&amp;#160; 1.0DA1&amp;#160; 03C1&amp;#160; &amp;#160; add&amp;#160; &amp;#160; ax, cx ; ax=&amp;#160; ax*0xA+cx = M_ULT&lt;br /&gt;&amp;#160; 1.0DA3 &amp;gt;96&amp;#160; &amp;#160; &amp;#160; xchg&amp;#160; &amp;#160;ax, si ; ax=0xA; si evtl. holds M_ULT&lt;br /&gt;&amp;#160; 1.0DA4&amp;#160; F7E3&amp;#160; &amp;#160; mul&amp;#160; &amp;#160; bx&amp;#160; &amp;#160; &amp;#160;; ax= bx*0xA&lt;br /&gt;&amp;#160; 1.0DA6&amp;#160; 03D6&amp;#160; &amp;#160; add&amp;#160; &amp;#160; dx, si ; dx= dx_add&lt;br /&gt;&amp;#160; 1.0DA8&amp;#160; 5E&amp;#160; &amp;#160; &amp;#160; pop&amp;#160; &amp;#160; si&amp;#160; &amp;#160; &amp;#160;; restore si&lt;br /&gt;&amp;#160; 1.0DA9&amp;#160; CB&amp;#160; &amp;#160; &amp;#160; retf&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; back to caller with two parameters: DX and AX&lt;br /&gt;ack_to_main_protection_loop_from_RO_routine:&lt;br /&gt;&amp;#160; 4CBC C45E0E&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+0E] ; reset pointer&lt;br /&gt;&amp;#160; 4CBF 26895702&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES:[BX+02],DX ; save R_DX par&amp;#160; [958C]&lt;br /&gt;&amp;#160; 4CC3 268907&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES:[BX],AX ; save R_AX par&amp;#160; &amp;#160; &amp;#160;[958A]&lt;br /&gt;&amp;#160; 4CC6 0346FA&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,[BP-06] ; add to AX RE_SULT [9546]&lt;br /&gt; :4CC9 1356FC&amp;#160; &amp;#160; &amp;#160;ADC&amp;#160; &amp;#160; DX,[BP-04] ; add to DX KEY_PAR [9548]&lt;br /&gt; :4CCC C45E0E&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+0E] ; reset pointer&lt;br /&gt; :4CCF 26895702&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES:[BX+02],DX ; save R_DX+KEY_PAR [958C]&lt;br /&gt; :4CD3 268907&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES:[BX],AX ; save R_AX+RE_SULT&amp;#160; &amp;#160; [958A]&lt;br /&gt; :4CD6 FF0E8D5E&amp;#160; &amp;#160;DEC&amp;#160; &amp;#160; WORD PTR [5E8D] ; down_slide SEC_+3&lt;br /&gt; :4CDA 7D05&amp;#160; &amp;#160; &amp;#160; &amp;#160;JGE&amp;#160; &amp;#160; 4CE1&amp;#160; &amp;#160; &amp;#160; &amp;#160;; no need to add&lt;br /&gt; :4CDC 83068D5E0A ADD&amp;#160; &amp;#160; WORD PTR [5E8D],+0A&amp;#160; ; pamper adding 10&lt;br /&gt; :4CE1 FF068F5E&amp;#160; &amp;#160;INC&amp;#160; &amp;#160; WORD PTR [5E8F] ; up_slide FIR_+7&lt;br /&gt; :4CE5 A18F5E&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AX,[5E8F]&amp;#160; ; save upslided FIR_+7 in AX&lt;br /&gt; :4CE8 3D0900&amp;#160; &amp;#160; &amp;#160;CMP&amp;#160; &amp;#160; AX,0009&amp;#160; &amp;#160; ; is it over 9?&lt;br /&gt; :4CEB 7E05&amp;#160; &amp;#160; &amp;#160; &amp;#160;JLE&amp;#160; &amp;#160; 4CF2&amp;#160; &amp;#160; &amp;#160; &amp;#160;; no, go on&lt;br /&gt; :4CED 832E8F5E0A SUB&amp;#160; &amp;#160; WORD PTR [5E8F],+0A ; yes, pamper -10&lt;br /&gt; :4CF2 FF0E975E&amp;#160; &amp;#160;DEC&amp;#160; &amp;#160; WORD PTR [5E97]&amp;#160; ; decrease loop counter&lt;br /&gt; check_loop_counter:&lt;br /&gt; :4CF6 833E975E03 CMP&amp;#160; &amp;#160; WORD PTR [5E97],+03&amp;#160; ; counter = 3?&lt;br /&gt; :4CFB 7C03&amp;#160; &amp;#160; &amp;#160; &amp;#160;JL&amp;#160; &amp;#160; &amp;#160;4D00&amp;#160; &amp;#160; &amp;#160; &amp;#160;; finish if counter under 3&lt;br /&gt; :4CFD E961FF&amp;#160; &amp;#160; &amp;#160;JMP&amp;#160; &amp;#160; 4C61&amp;#160; &amp;#160; &amp;#160; &amp;#160;; not yet, loop_next_count&lt;br /&gt; loop_is_ended:&lt;br /&gt; :4D00 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer to input&lt;br /&gt; :4D03 268A4701&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX+01] ; load 2nd number (2)&lt;br /&gt; :4D07 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4D08 05D0FF&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FFD0&amp;#160; &amp;#160; ; clean it&lt;br /&gt; :4D0B BA0A00&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,000A&amp;#160; &amp;#160; ; DX = 10&lt;br /&gt; :4D0E F7EA&amp;#160; &amp;#160; &amp;#160; &amp;#160;IMUL&amp;#160; &amp;#160;DX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; AX = SEC_*10 = 14&lt;br /&gt; :4D10 C45E06&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+06] ; reset pointer&lt;br /&gt; :4D13 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PUSH&amp;#160; &amp;#160;AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; save SEC_*10&lt;br /&gt; :4D14 268A07&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AL,ES:[BX] ; load 1st number (1)&lt;br /&gt; :4D17 98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CBW&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4D18 8BD0&amp;#160; &amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; DX,AX&amp;#160; &amp;#160; &amp;#160; ; save in DX&lt;br /&gt; :4D1A 58&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; AX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; get SEC_*10&lt;br /&gt; :4D1B 03C2&amp;#160; &amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,DX&amp;#160; &amp;#160; &amp;#160; ; sum SEC_*10+1st number&lt;br /&gt; :4D1D 05D0FF&amp;#160; &amp;#160; &amp;#160;ADD&amp;#160; &amp;#160; AX,FFD0&amp;#160; &amp;#160; ; clean it&lt;br /&gt; :4D20 99&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;CWD&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; only low&lt;br /&gt; :4D21 C45E0A&amp;#160; &amp;#160; &amp;#160;LES&amp;#160; &amp;#160; BX,[BP+0A] ; get pointer&amp;#160; &amp;#160; to&amp;#160; &amp;#160;[9582]&lt;br /&gt; :4D24 26895702&amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES:[BX+02],DX ; save 1st (1) in&amp;#160; [9584]&lt;br /&gt; :4D28 268907&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; ES:[BX],AX ; save FINAL_SUM (15) [9582]&lt;br /&gt; :4D2B 33D2&amp;#160; &amp;#160; &amp;#160; &amp;#160;XOR&amp;#160; &amp;#160; DX,DX&amp;#160; &amp;#160; &amp;#160; ; DX = 0&lt;br /&gt; :4D2D B80100&amp;#160; &amp;#160; &amp;#160;MOV&amp;#160; &amp;#160; AX,0001&amp;#160; &amp;#160; ; FLAG TRUE !&lt;br /&gt; :4D30 E9E6FE&amp;#160; &amp;#160; &amp;#160;JMP&amp;#160; &amp;#160; 4C19&amp;#160; &amp;#160; &amp;#160; &amp;#160;; OK, you_are_a_nice_guy&lt;br /&gt; EXIT:&lt;br /&gt; :4D33 59&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; CX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; pop everything and&lt;br /&gt; :4D34 59&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; CX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;&amp;#160; return with flag&lt;br /&gt; :4D35 1F&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; DS&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;&amp;#160; AX=TRUE if RegNum OK&lt;br /&gt; :4D36 5D&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POP&amp;#160; &amp;#160; BP&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;&amp;#160; with 1st # in&amp;#160; &amp;#160; &amp;#160;[9584]&lt;br /&gt; :4D37 4D&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;DEC&amp;#160; &amp;#160; BP&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;&amp;#160; with FINAL_SUM in [9582]&lt;br /&gt; :4D38 CB&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;RETF&lt;/p&gt;
						&lt;p&gt; Давайте&amp;#160; пеpеведем&amp;#160; пpедшевствующий&amp;#160; код. И пpежде позицию в стpочке :4В86,&lt;br /&gt; мы&amp;#160; имеет&amp;#160; пеpвый&amp;#160; из длинного списка указатель стека&amp;#160; LES BX,[BP+06]; этот&lt;br /&gt; адpес указывает на начала вводимой стpоки, одной стоpоной смотpащей на &amp;quot;-&amp;quot;,&lt;br /&gt; далее стpока длиной 10 байтов, оканчивающая pазделителем 00.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Troyhack)</author>
			<pubDate>Tue, 03 Jun 2008 18:07:09 +0400</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=11#p11</guid>
		</item>
		<item>
			<title>Complaints and offers</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=7#p7</link>
			<description>&lt;p&gt;Если вам чего нить не нравиться или желаете чего нить добавить пишите об этом тут!!!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Troyhack)</author>
			<pubDate>Wed, 28 May 2008 17:38:39 +0400</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=7#p7</guid>
		</item>
		<item>
			<title>IT</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=6#p6</link>
			<description>&lt;p&gt;ну и естественно IT технологии!!!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Troyhack)</author>
			<pubDate>Wed, 28 May 2008 17:36:50 +0400</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=6#p6</guid>
		</item>
		<item>
			<title>Programming</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=5#p5</link>
			<description>&lt;p&gt;Пишите тут интересные исходники задавайте вопросы возникающие в программировании!!!итд:-)&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Troyhack)</author>
			<pubDate>Wed, 28 May 2008 17:35:12 +0400</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=5#p5</guid>
		</item>
		<item>
			<title>Hacking</title>
			<link>https://nah.7il.ru/viewtopic.php?pid=4#p4</link>
			<description>&lt;p&gt;Сдесь вы можете обсуждать и советовать кому нить что нить естественно по теме взлома!!!:)Давайте сломаем Microsoft!!!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Troyhack)</author>
			<pubDate>Wed, 28 May 2008 17:33:16 +0400</pubDate>
			<guid>https://nah.7il.ru/viewtopic.php?pid=4#p4</guid>
		</item>
	</channel>
</rss>
