<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Forum di Sicurezza Informatica IT Security - Infernet.ws - Tutti i forum]]></title>
		<link>http://www.infernet.ws/</link>
		<description><![CDATA[Forum di Sicurezza Informatica IT Security - Infernet.ws - http://www.infernet.ws]]></description>
		<pubDate>Mon, 15 Mar 2010 01:51:03 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Crackare WEP o WPA da Mac]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16724</link>
			<pubDate>Sat, 13 Mar 2010 23:05:34 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16724</guid>
			<description><![CDATA[Come ho detto in un'altra discussione ho preso un Mac, in Windows utilizzavo AirCrack per crackare le reti Wi-Fi, e online ho trovato qualche guida su come installarlo ma sono ipercomplicate.<br />
Sapete dirmi se esistono programmi simili per Mac o comunque come fare?<br />
Grazie 1000]]></description>
			<content:encoded><![CDATA[Come ho detto in un'altra discussione ho preso un Mac, in Windows utilizzavo AirCrack per crackare le reti Wi-Fi, e online ho trovato qualche guida su come installarlo ma sono ipercomplicate.<br />
Sapete dirmi se esistono programmi simili per Mac o comunque come fare?<br />
Grazie 1000]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hacking computer connessi a rete Wi-Fi]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16723</link>
			<pubDate>Sat, 13 Mar 2010 23:01:17 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16723</guid>
			<description><![CDATA[Ciao ragazzi, ho da poco preso un Mac, e andando in network trovo tutti i computer connessi alle reti wi-fi che solitamente utilizzo, ma connettendomi ricevo un errore (probabilmente perchè non hanno file condivisi).<br />
Da qui la mia domanda, è possibile "hackerare" questi computer per vedere cosa c'è all'interno? <br />
<div onclick="my_bb_it_OT(this);" style="border: 1px dashed #D1D1D1;"><div id="idTitle" class="smalltext" style="background-color: #FFFFFF;">Clicca per <b>mostrare</b> il contenuto <b>Off-Topic</b></div><div id="idOt" style="display:none;"> il Mac è fantastico <img src="http://www.infernet.ws//images/smilies/set1/punkmg.gif" style="vertical-align: middle;" border="0" alt="Punkmg" title="Punkmg" /> </div></div>]]></description>
			<content:encoded><![CDATA[Ciao ragazzi, ho da poco preso un Mac, e andando in network trovo tutti i computer connessi alle reti wi-fi che solitamente utilizzo, ma connettendomi ricevo un errore (probabilmente perchè non hanno file condivisi).<br />
Da qui la mia domanda, è possibile "hackerare" questi computer per vedere cosa c'è all'interno? <br />
<div onclick="my_bb_it_OT(this);" style="border: 1px dashed #D1D1D1;"><div id="idTitle" class="smalltext" style="background-color: #FFFFFF;">Clicca per <b>mostrare</b> il contenuto <b>Off-Topic</b></div><div id="idOt" style="display:none;"> il Mac è fantastico <img src="http://www.infernet.ws//images/smilies/set1/punkmg.gif" style="vertical-align: middle;" border="0" alt="Punkmg" title="Punkmg" /> </div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ciao ciao]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16722</link>
			<pubDate>Sat, 13 Mar 2010 17:58:18 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16722</guid>
			<description><![CDATA[ciao a tutti sono fedebrad qualcuno di voi mi conosce gia<img src="http://www.infernet.ws/images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> uso linux (ubuntu 9.10+fluxbox) sto cercando si studiare le sql spero di essere utile per quel poco che so saluti febrad<img src="http://www.infernet.ws//images/smilies/set1/blamg.gif" style="vertical-align: middle;" border="0" alt="Blamg" title="Blamg" /><img src="http://www.infernet.ws//images/smilies/set1/lurkmg.gif" style="vertical-align: middle;" border="0" alt="Lurkmg" title="Lurkmg" />]]></description>
			<content:encoded><![CDATA[ciao a tutti sono fedebrad qualcuno di voi mi conosce gia<img src="http://www.infernet.ws/images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> uso linux (ubuntu 9.10+fluxbox) sto cercando si studiare le sql spero di essere utile per quel poco che so saluti febrad<img src="http://www.infernet.ws//images/smilies/set1/blamg.gif" style="vertical-align: middle;" border="0" alt="Blamg" title="Blamg" /><img src="http://www.infernet.ws//images/smilies/set1/lurkmg.gif" style="vertical-align: middle;" border="0" alt="Lurkmg" title="Lurkmg" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Java&#93; Esercizi]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16721</link>
			<pubDate>Sat, 13 Mar 2010 13:43:45 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16721</guid>
			<description><![CDATA[Ciao guys and ladies!<br />
<br />
Oggi vi posto un po' di esercizi svolti del corso di Metodologie di Programmazione, di cui sto inserendo gli appunti..<br />
<br />
Dunque, ve li posto così come li ho scritti in Netbeans, con tutti i commenti che mette lui di default, perchè son di corsissima..<br />
<br />
[Hello world!&#93;<br />
<a href="http://nopaste.info/7929c4a29e.html" target="_blank">http://nopaste.info/7929c4a29e.html</a><br />
<br />
[Fattoriale in modo ricorsivo&#93;<br />
<a href="http://nopaste.info/cd7502c3be.html" target="_blank">http://nopaste.info/cd7502c3be.html</a><br />
<br />
[Input di 3 parole e stampa verticale&#93;<br />
<a href="http://nopaste.info/deb1a47b99.html" target="_blank">http://nopaste.info/deb1a47b99.html</a><br />
<br />
[Conteggio delle vocali in una parola inserita in input&#93;<br />
<a href="http://nopaste.info/87399f22f7.html" target="_blank">http://nopaste.info/87399f22f7.html</a><br />
<br />
<br />
Direi che, per chi vuol cominciare, bastano e avanzano..<br />
<br />
Scusate se non sono commentati, per dubbi e perplessità, comunque, mi trovate qui o sul mio blog!<br />
<br />
Buono studio,<br />
<br />
AskToMommy]]></description>
			<content:encoded><![CDATA[Ciao guys and ladies!<br />
<br />
Oggi vi posto un po' di esercizi svolti del corso di Metodologie di Programmazione, di cui sto inserendo gli appunti..<br />
<br />
Dunque, ve li posto così come li ho scritti in Netbeans, con tutti i commenti che mette lui di default, perchè son di corsissima..<br />
<br />
[Hello world!]<br />
<a href="http://nopaste.info/7929c4a29e.html" target="_blank">http://nopaste.info/7929c4a29e.html</a><br />
<br />
[Fattoriale in modo ricorsivo]<br />
<a href="http://nopaste.info/cd7502c3be.html" target="_blank">http://nopaste.info/cd7502c3be.html</a><br />
<br />
[Input di 3 parole e stampa verticale]<br />
<a href="http://nopaste.info/deb1a47b99.html" target="_blank">http://nopaste.info/deb1a47b99.html</a><br />
<br />
[Conteggio delle vocali in una parola inserita in input]<br />
<a href="http://nopaste.info/87399f22f7.html" target="_blank">http://nopaste.info/87399f22f7.html</a><br />
<br />
<br />
Direi che, per chi vuol cominciare, bastano e avanzano..<br />
<br />
Scusate se non sono commentati, per dubbi e perplessità, comunque, mi trovate qui o sul mio blog!<br />
<br />
Buono studio,<br />
<br />
AskToMommy]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Appunti&#93; Introduzione agli Algoritmi]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16720</link>
			<pubDate>Fri, 12 Mar 2010 20:41:35 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16720</guid>
			<description><![CDATA[<span style="font-weight: bold;">Salve a tutti!<br />
</span><br />
Come nei due thread di Metodologie di Programmazione e Calcolo Integrale:<br />
- pubblicherò qui gli appunti del corso di Introduzione agli Algoritmi;<br />
- aggiornerò il thread man mano che ci saranno lezioni.<br />
<br />
Eccovi gli appunti delle lezioni:<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">Appunti 1ma Lezione (09/03):<br />
</span></span><br />
<a href="http://www.megaupload.com/?d=ZH2P6OG1" target="_blank">http://www.megaupload.com/?d=ZH2P6OG1</a><br />
 <br />
_________________________________________<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">Appunti 2nda Lezione (11/03):<br />
</span></span><br />
<a href="http://www.megaupload.com/?d=KDM1F66J" target="_blank">http://www.megaupload.com/?d=KDM1F66J</a><br />
<br />
<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">AskToMommy</span></span>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;">Salve a tutti!<br />
</span><br />
Come nei due thread di Metodologie di Programmazione e Calcolo Integrale:<br />
- pubblicherò qui gli appunti del corso di Introduzione agli Algoritmi;<br />
- aggiornerò il thread man mano che ci saranno lezioni.<br />
<br />
Eccovi gli appunti delle lezioni:<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">Appunti 1ma Lezione (09/03):<br />
</span></span><br />
<a href="http://www.megaupload.com/?d=ZH2P6OG1" target="_blank">http://www.megaupload.com/?d=ZH2P6OG1</a><br />
 <br />
_________________________________________<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">Appunti 2nda Lezione (11/03):<br />
</span></span><br />
<a href="http://www.megaupload.com/?d=KDM1F66J" target="_blank">http://www.megaupload.com/?d=KDM1F66J</a><br />
<br />
<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">AskToMommy</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Appunti&#93; Calcolo Integrale]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16719</link>
			<pubDate>Fri, 12 Mar 2010 20:36:47 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16719</guid>
			<description><![CDATA[<span style="font-weight: bold;">Ciaoooo!<br />
</span><br />
Dunque, qui, posterò gli appunti che prenderò nel corso di Calcolo Integrale.<br />
<br />
Come col thread di Metodologie di Programmazione, aggiornerò questo thread man mano che metterò i miei appunti sul blog.<br />
<br />
Comunque, ecco a voi:<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">Appunti 1ma Lezione (08/03):<br />
</span></span><br />
<span style="text-decoration: underline;">Parte prima:</span>   <a href="http://www.megaupload.com/?d=G468CFSY" target="_blank">http://www.megaupload.com/?d=G468CFSY</a><br />
<span style="text-decoration: underline;">Parte seconda:</span>    <a href="http://www.megaupload.com/?d=NYF4HXYP" target="_blank">http://www.megaupload.com/?d=NYF4HXYP</a><br />
<br />
Alla prossima!<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">AskToMommy</span></span>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;">Ciaoooo!<br />
</span><br />
Dunque, qui, posterò gli appunti che prenderò nel corso di Calcolo Integrale.<br />
<br />
Come col thread di Metodologie di Programmazione, aggiornerò questo thread man mano che metterò i miei appunti sul blog.<br />
<br />
Comunque, ecco a voi:<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">Appunti 1ma Lezione (08/03):<br />
</span></span><br />
<span style="text-decoration: underline;">Parte prima:</span>   <a href="http://www.megaupload.com/?d=G468CFSY" target="_blank">http://www.megaupload.com/?d=G468CFSY</a><br />
<span style="text-decoration: underline;">Parte seconda:</span>    <a href="http://www.megaupload.com/?d=NYF4HXYP" target="_blank">http://www.megaupload.com/?d=NYF4HXYP</a><br />
<br />
Alla prossima!<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">AskToMommy</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Appunti&#93; Metodologie di Programmazione]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16718</link>
			<pubDate>Fri, 12 Mar 2010 20:30:38 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16718</guid>
			<description><![CDATA[Ciao ragazzi, come promesso qui --&gt; (<a href="http://www.infernet.ws/showthread.php?tid=16710)" target="_blank">http://www.infernet.ws/showthread.php?tid=16710)</a> pubblico le dispense che sto mettendo sul mio blog anche qui..<br />
<br />
Penso che ogni volta aggiornerò i thread, senza starne sempre ad aprire di nuovi..!<br />
<br />
Dunque, cominciamo subito:<br />
<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Appunti 1ma Lezione (09/03):<br />
</span></span><br />
<span style="text-decoration: underline;">Prima parte:</span>  <a href="http://www.megaupload.com/?d=EPDUTEQ8" target="_blank">http://www.megaupload.com/?d=EPDUTEQ8</a><br />
<span style="text-decoration: underline;">Seconda parte:</span>  <a href="http://www.megaupload.com/?d=A0Y0R0H6" target="_blank">http://www.megaupload.com/?d=A0Y0R0H6</a><br />
__________________________________________________<br />
<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Appunti 2nda Lezione (11/03):<br />
</span></span><br />
<span style="text-decoration: underline;">Parte Prima:</span>  <a href="http://www.megaupload.com/?d=F2WFDIKX" target="_blank">http://www.megaupload.com/?d=F2WFDIKX</a><br />
<span style="text-decoration: underline;">Parte Seconda:</span>  <a href="http://www.megaupload.com/?d=S2B09LYX" target="_blank">http://www.megaupload.com/?d=S2B09LYX</a><br />
<br />
<br />
Ci vediamo prossimamente.. ^_^<br />
<br />
<span style="font-style: italic;"><span style="text-decoration: underline;"><span style="font-weight: bold;">AskToMommy</span></span></span>]]></description>
			<content:encoded><![CDATA[Ciao ragazzi, come promesso qui --&gt; (<a href="http://www.infernet.ws/showthread.php?tid=16710)" target="_blank">http://www.infernet.ws/showthread.php?tid=16710)</a> pubblico le dispense che sto mettendo sul mio blog anche qui..<br />
<br />
Penso che ogni volta aggiornerò i thread, senza starne sempre ad aprire di nuovi..!<br />
<br />
Dunque, cominciamo subito:<br />
<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Appunti 1ma Lezione (09/03):<br />
</span></span><br />
<span style="text-decoration: underline;">Prima parte:</span>  <a href="http://www.megaupload.com/?d=EPDUTEQ8" target="_blank">http://www.megaupload.com/?d=EPDUTEQ8</a><br />
<span style="text-decoration: underline;">Seconda parte:</span>  <a href="http://www.megaupload.com/?d=A0Y0R0H6" target="_blank">http://www.megaupload.com/?d=A0Y0R0H6</a><br />
__________________________________________________<br />
<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Appunti 2nda Lezione (11/03):<br />
</span></span><br />
<span style="text-decoration: underline;">Parte Prima:</span>  <a href="http://www.megaupload.com/?d=F2WFDIKX" target="_blank">http://www.megaupload.com/?d=F2WFDIKX</a><br />
<span style="text-decoration: underline;">Parte Seconda:</span>  <a href="http://www.megaupload.com/?d=S2B09LYX" target="_blank">http://www.megaupload.com/?d=S2B09LYX</a><br />
<br />
<br />
Ci vediamo prossimamente.. ^_^<br />
<br />
<span style="font-style: italic;"><span style="text-decoration: underline;"><span style="font-weight: bold;">AskToMommy</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N3mes1s++]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16717</link>
			<pubDate>Fri, 12 Mar 2010 16:54:22 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16717</guid>
			<description><![CDATA[Auguri al neo-21enne N3mes1s.<br />
Goditelo questo compleanno, perché sarà l'ultimo <img src="http://www.infernet.ws/images/smilies/sleepy.gif" style="vertical-align: middle;" border="0" alt="Sleepy" title="Sleepy" />]]></description>
			<content:encoded><![CDATA[Auguri al neo-21enne N3mes1s.<br />
Goditelo questo compleanno, perché sarà l'ultimo <img src="http://www.infernet.ws/images/smilies/sleepy.gif" style="vertical-align: middle;" border="0" alt="Sleepy" title="Sleepy" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Perché questo errore privo di logica?]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16716</link>
			<pubDate>Thu, 11 Mar 2010 23:08:28 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16716</guid>
			<description><![CDATA[(era da un po' che nn postavo in questa sezione <img src="http://www.infernet.ws/images/smilies/asd.gif" style="vertical-align: middle;" border="0" alt="asd" title="asd" /> )<br />
<br />
ordunque, cercando di rispondere a <a href="http://www.infernet.ws/showthread.php?tid=7282" target="_blank">questo topic</a>, logicamente senza effettuare alcun upload, mi trovo davanti questa simpatica ed insolita pagina di errore:<br />
<br />
<a href="http://www.dgxstyle.net/sendimg/images/jpg/1210817567/what.JPG" target="_blank">http://www.dgxstyle.net/sendimg/images/j...7/what.JPG</a><br />
<br />
Tale problema si verifica solo in quella pagina e: sì, ho provato + volte, sì ho svuotato la cache e sì non faccio nulla di particolare in quella risposta.<br />
<br />
ora qualcuno usi la funzione cristal_ball() e mi dica il motivo <img src="http://www.infernet.ws/images/smilies/tongue.gif" style="vertical-align: middle;" border="0" alt="Tongue" title="Tongue" />]]></description>
			<content:encoded><![CDATA[(era da un po' che nn postavo in questa sezione <img src="http://www.infernet.ws/images/smilies/asd.gif" style="vertical-align: middle;" border="0" alt="asd" title="asd" /> )<br />
<br />
ordunque, cercando di rispondere a <a href="http://www.infernet.ws/showthread.php?tid=7282" target="_blank">questo topic</a>, logicamente senza effettuare alcun upload, mi trovo davanti questa simpatica ed insolita pagina di errore:<br />
<br />
<a href="http://www.dgxstyle.net/sendimg/images/jpg/1210817567/what.JPG" target="_blank">http://www.dgxstyle.net/sendimg/images/j...7/what.JPG</a><br />
<br />
Tale problema si verifica solo in quella pagina e: sì, ho provato + volte, sì ho svuotato la cache e sì non faccio nulla di particolare in quella risposta.<br />
<br />
ora qualcuno usi la funzione cristal_ball() e mi dica il motivo <img src="http://www.infernet.ws/images/smilies/tongue.gif" style="vertical-align: middle;" border="0" alt="Tongue" title="Tongue" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[RELEASE&#93;GabriPr0 Packer Alpha Version.. + Suorce!]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16715</link>
			<pubDate>Thu, 11 Mar 2010 18:24:26 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16715</guid>
			<description><![CDATA[Dal titolo sembra chissa che cosa... ma è un semplice packer che verifica se all'apertura del programma è presente un Debbugger. In caso positivo continua con un eccezione.<br />
E' possibile packare un programma trascinandolo sul Packer o aprendo il programma e inserendo il nome del file.<br />
Oltre al programma verrà scritto un file di Log contenente le informazioni principali come i byte liberi.<br />
Il packer è stato testato con programmi compilati con<ul>
<li>Dev-C++</li>
<li>Borland Dephi 4.0</li>
<li>Visual Studio 8 (in alcuni casi)<br />
</li></ul>
E' in fase di sviluppo una versione totalmente compatibile con<ul>
<li>Visual Studio 8</li>
<li>Visual Basic 6.0</li>
<li>Borland C++ for Win32<br />
</li></ul>
Per questi motivi sto cercando qualcuno che mi dia una mano ( oltre a retr0 che non è mai on su MSN!)<br />
Essendo un progetto Open Suorce ho optato per iniziare con la licenza GPL.<br />
<br />
Bug Conosciuti<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>1. Il packer non controlla quanti sono i byte liberi tra le sezioni (anche se 18 byte ci sono sempre)<br />
2. Funziona solo su alcuni programmi<br />
3. Se viene attaccato il processo, quando il programma è già aperto, il debugger non viene detectato.</code></div></div>
<br />
<span style="font-weight: bold;"><br />
DOWNLOAD</span><br />
<a href="http://gabripr0.altervista.org/Packer.exe" target="_blank">Link Diretto</a><br />
<br />
<a href="http://www.multiupload.com/ZRIQNO8UFC" target="_blank">MultiUpload</a><br />
<br />
<br />
<span style="font-weight: bold;">SCREEN</span><br />
Programma:<br />
<img src="http://gabripr0.altervista.org/Packer.jpg" border="0" alt="[Immagine: Packer.jpg&#93;" /><br />
Eccezione di Olly<br />
<img src="http://gabripr0.altervista.org/Eccezione.jpg" border="0" alt="[Immagine: Eccezione.jpg&#93;" /><br />
<br />
<span style="font-weight: bold;">SUORCE</span><br />
<br />
<a href="http://gabripr0.altervista.org/Packer.cpp" target="_blank">Download</a><br />
<br />
Il suorce è commentato e comprensibile. So che è scritto un po' male.. e soprattutto indentato male.<br />
Ci sono dei commenti sulle prossime funzioni del programma e delle cose da correggere.<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">Codice PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #FF8000">/*&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GabriPr0&nbsp;Packer&nbsp;Alpha&nbsp;Version!<br />&nbsp;&nbsp;&nbsp;&nbsp;With&nbsp;this&nbsp;program&nbsp;you&nbsp;can&nbsp;"pack"&nbsp;your&nbsp;own&nbsp;.exe&nbsp;file.<br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;packer&nbsp;may&nbsp;not&nbsp;work&nbsp;with&nbsp;all&nbsp;exe&nbsp;files.<br />&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;decline&nbsp;any&nbsp;responsability&nbsp;if&nbsp;you&nbsp;damage&nbsp;your&nbsp;program.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Copyright&nbsp;(C)&nbsp;2010&nbsp;&nbsp;Gabriele&nbsp;Serra&nbsp;(&nbsp;GabriPr0&nbsp;)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br />&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br />&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br />&nbsp;&nbsp;&nbsp;&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br />&nbsp;&nbsp;&nbsp;&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br />&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br />&nbsp;&nbsp;&nbsp;&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br />&nbsp;&nbsp;&nbsp;&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;http://www.gnu.org/licenses/&gt;.<br /><br /><br />*/<br />#include&nbsp;&lt;windows.h&gt;<br />#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;fstream&gt;&nbsp;<br /><br /></span><span style="color: #0000BB">using&nbsp;namespace&nbsp;std</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">//Le&nbsp;tre&nbsp;strutture&nbsp;di&nbsp;cui&nbsp;avrò&nbsp;bisogno:<br />//l'header&nbsp;delle&nbsp;sezioni,&nbsp;le&nbsp;varie&nbsp;caratteristiche&nbsp;(come&nbsp;entrypoint&nbsp;o&nbsp;imagebase)&nbsp;e&nbsp;il&nbsp;DOS&nbsp;header.<br />//Per&nbsp;un&nbsp;corretto&nbsp;approccio&nbsp;a&nbsp;questo&nbsp;suorce&nbsp;consiglio&nbsp;di&nbsp;studiare&nbsp;un&nbsp;guida&nbsp;sul&nbsp;formato&nbsp;PE<br /></span><span style="color: #0000BB">IMAGE_SECTION_HEADER&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">IMAGE_NT_HEADERS&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">IMAGE_DOS_HEADER&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">DWORD&nbsp;VaPartenza&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">DWORD&nbsp;FileOffset</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//Inizializzo&nbsp;a&nbsp;0&nbsp;perchè&nbsp;ne&nbsp;avrò&nbsp;bisogno..&nbsp;capirete&nbsp;dopo!<br /></span><span style="color: #0000BB">BYTE&nbsp;Op</span><span style="color: #007700">[&#93;&nbsp;=&nbsp;{&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">};<br /></span><span style="color: #FF8000">//La&nbsp;variabile&nbsp;VA&nbsp;conterrà&nbsp;il&nbsp;valore&nbsp;da&nbsp;sotrarre&nbsp;(insieme&nbsp;all'imagebase)&nbsp;al&nbsp;VA&nbsp;per&nbsp;ottenere&nbsp;il&nbsp;FileOffset<br /></span><span style="color: #0000BB">DWORD&nbsp;VA</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//Funzione&nbsp;per&nbsp;calcolare&nbsp;i&nbsp;byte&nbsp;di&nbsp;una&nbsp;funzione&nbsp;CALL<br /></span><span style="color: #0000BB">void&nbsp;CalcoloCode</span><span style="color: #007700">(</span><span style="color: #0000BB">DWORD&nbsp;VAPartenza&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;VADestinazione</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//Bè&nbsp;il&nbsp;nome&nbsp;della&nbsp;funz&nbsp;dice&nbsp;già&nbsp;tutto!<br /></span><span style="color: #0000BB">bool&nbsp;FileExist</span><span style="color: #007700">(</span><span style="color: #0000BB">LPSTR&nbsp;Filename</span><span style="color: #007700">);&nbsp;<br /></span><span style="color: #FF8000">//Per&nbsp;chi&nbsp;non&nbsp;ricordassi&nbsp;argc&nbsp;=&nbsp;numero&nbsp;argomenti&nbsp;,&nbsp;argv&nbsp;=&nbsp;i&nbsp;vari&nbsp;argomenti<br /></span><span style="color: #0000BB">int&nbsp;main</span><span style="color: #007700">(</span><span style="color: #0000BB">int&nbsp;argc</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">char</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">argv</span><span style="color: #007700">[&#93;)&nbsp;<br />&nbsp;<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"GabriPr0&nbsp;Packer&nbsp;Alpha&nbsp;Version."&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"This&nbsp;is&nbsp;an&nbsp;Open&nbsp;Suorce&nbsp;project!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Stream&nbsp;per&nbsp;scrivere&nbsp;su&nbsp;un&nbsp;file,&nbsp;in&nbsp;questo&nbsp;caso&nbsp;Log.txt<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ofstream</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">Log</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;non&nbsp;esiste&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">FileExist</span><span style="color: #007700">(</span><span style="color: #DD0000">"Log.txt"</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">ofstream</span><span style="color: #007700">(</span><span style="color: #DD0000">"Log.txt"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Verrà&nbsp;creato<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Log&nbsp;File&nbsp;don't&nbsp;exist...&nbsp;it&nbsp;will&nbsp;be&nbsp;create&nbsp;now!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//altrimenti&nbsp;lo&nbsp;apre&nbsp;in&nbsp;moalità&nbsp;append<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">ofstream</span><span style="color: #007700">(</span><span style="color: #DD0000">"Log.txt"&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ios</span><span style="color: #007700">::</span><span style="color: #0000BB">app</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//e&nbsp;scrive&nbsp;un&nbsp;barra&nbsp;di&nbsp;separazione<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"---------------------------------------"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(!</span><span style="color: #0000BB">Log</span><span style="color: #007700">){</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Unable&nbsp;to&nbsp;Create&nbsp;Log&nbsp;file!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HANDLE&nbsp;HandleFile</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Max&nbsp;Path&nbsp;=&nbsp;260&nbsp;..<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">char&nbsp;Filename</span><span style="color: #007700">[</span><span style="color: #0000BB">MAX_PATH</span><span style="color: #007700">&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;gli&nbsp;argomenti&nbsp;passati&nbsp;al&nbsp;cmd&nbsp;sono&nbsp;diversi&nbsp;da&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">argc&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Inserisci&nbsp;il&nbsp;nome&nbsp;file&nbsp;da&nbsp;input<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Insert&nbsp;file&nbsp;name..."&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin&nbsp;</span><span style="color: #007700">&gt;&gt;&nbsp;</span><span style="color: #0000BB">Filename</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Ottengo&nbsp;l'handle&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HandleFile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateFile</span><span style="color: #007700">(</span><span style="color: #0000BB">Filename</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">GENERIC_READ&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">GENERIC_WRITE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_SHARE_READ</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">,</span><span style="color: #0000BB">OPEN_EXISTING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_ATTRIBUTE_NORMAL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Scanning...&nbsp;&#092;nPacking&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">Filename&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Packing:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">Filename&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//altrimenti&nbsp;usa&nbsp;il&nbsp;secondo&nbsp;argomento&nbsp;passato&nbsp;al&nbsp;cmd&nbsp;come&nbsp;nome&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;//(il&nbsp;primo&nbsp;argomento&nbsp;è&nbsp;il&nbsp;programma&nbsp;stesso)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HandleFile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateFile</span><span style="color: #007700">(</span><span style="color: #0000BB">argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">&#93;,&nbsp;</span><span style="color: #0000BB">GENERIC_READ&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">GENERIC_WRITE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_SHARE_READ</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">,</span><span style="color: #0000BB">OPEN_EXISTING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_ATTRIBUTE_NORMAL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Scanning...&nbsp;&#092;nPacking&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">&#93;&nbsp;&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Packing:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">&#93;&nbsp;&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Errore&nbsp;impossibile&nbsp;aprire&nbsp;il&nbsp;file&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">HandleFile&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">INVALID_HANDLE_VALUE&nbsp;</span><span style="color: #007700">)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;open&nbsp;File"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Crea&nbsp;una&nbsp;mappatura&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HANDLE&nbsp;MpObj&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateFileMapping</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PAGE_READONLY</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Errore:&nbsp;Impossibile&nbsp;Mappare&nbsp;il&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Unable&nbsp;to&nbsp;create&nbsp;MapFile"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Mappa&nbsp;il&nbsp;file&nbsp;e&nbsp;restituisce&nbsp;l'address&nbsp;dell'inizio&nbsp;della&nbsp;mappatura<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;BaseAddress&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">DWORD</span><span style="color: #007700">)</span><span style="color: #0000BB">MapViewOfFile</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_MAP_READ</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//se&nbsp;BaseAddress&nbsp;=&nbsp;0&nbsp;Errore:&nbsp;Impossibile...<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">BaseAddress</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Unable&nbsp;to&nbsp;view&nbsp;mapping&nbsp;file"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">hex&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Base&nbsp;Address&nbsp;of&nbsp;Mapping&nbsp;Object:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">BaseAddress&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Per&nbsp;utilizzare&nbsp;la&nbsp;struttura&nbsp;DosHeader&nbsp;basta&nbsp;farla&nbsp;puntare&nbsp;al&nbsp;BaseAddress&nbsp;del&nbsp;file&nbsp;mappato&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ImageDosHeader&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">IMAGE_DOS_HEADER</span><span style="color: #007700">*)</span><span style="color: #0000BB">BaseAddress</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;e_magic&nbsp;(i&nbsp;primi&nbsp;2&nbsp;byte&nbsp;in&nbsp;poche&nbsp;parole)&nbsp;diversi&nbsp;da&nbsp;IMAGE_DOS_SIGNATURE&nbsp;(&nbsp;MZ&nbsp;[&nbsp;4D&nbsp;,&nbsp;5A&nbsp;&#93;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;//Errore:&nbsp;Dos&nbsp;Header&nbsp;invalido..&nbsp;non&nbsp;è&nbsp;un&nbsp;eseguibile!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">e_magic&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">IMAGE_DOS_SIGNATURE</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Invalid&nbsp;DOS&nbsp;Header"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Per&nbsp;riempire&nbsp;la&nbsp;struttura&nbsp;NtHeaders&nbsp;basta&nbsp;farla&nbsp;puntare&nbsp;all'inizio&nbsp;del&nbsp;PE&nbsp;+&nbsp;e_lfanew<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ImageNtHeaders&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">IMAGE_NT_HEADERS&nbsp;</span><span style="color: #007700">*)(</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">e_lfanew&nbsp;</span><span style="color: #007700">+(</span><span style="color: #0000BB">DWORD</span><span style="color: #007700">)</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;i&nbsp;primi&nbsp;due&nbsp;byte&nbsp;della&nbsp;struttura&nbsp;dopo&nbsp;il&nbsp;DosHeader&nbsp;diversi&nbsp;da&nbsp;IMAGE_NT_SIGNATURE&nbsp;(PE&nbsp;[&nbsp;50&nbsp;,&nbsp;45&nbsp;,&nbsp;00&nbsp;,&nbsp;00&nbsp;&#93;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;//Errore:&nbsp;il&nbsp;file&nbsp;che&nbsp;stiamo&nbsp;"esaminando"&nbsp;non&nbsp;è&nbsp;un&nbsp;PE!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Signature&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">IMAGE_NT_SIGNATURE</span><span style="color: #007700">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Invalid&nbsp;PE&nbsp;Format"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Ottengo&nbsp;l'imagebase&nbsp;(&nbsp;o&nbsp;baseaddress)&nbsp;del&nbsp;PE&nbsp;che&nbsp;sto&nbsp;packando&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;ImageBase&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">OptionalHeader</span><span style="color: #007700">.</span><span style="color: #0000BB">ImageBase</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Base&nbsp;Address&nbsp;of&nbsp;file:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">ImageBase&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Riempo&nbsp;la&nbsp;struttura&nbsp;section&nbsp;header&nbsp;grazie&nbsp;alla&nbsp;macro&nbsp;fornita&nbsp;da&nbsp;winnt.h<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ImageSectionHeader&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">IMAGE_FIRST_SECTION</span><span style="color: #007700">(</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Per&nbsp;ogni&nbsp;sezione&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">for&nbsp;(</span><span style="color: #0000BB">int&nbsp;x&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">x&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">FileHeader</span><span style="color: #007700">.</span><span style="color: #0000BB">NumberOfSections</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">x</span><span style="color: #007700">++)<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//trova&nbsp;i&nbsp;byte&nbsp;liberi&nbsp;in&nbsp;fondo&nbsp;alla&nbsp;sezione&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;BaseByte&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">&#93;.</span><span style="color: #0000BB">Misc</span><span style="color: #007700">.</span><span style="color: #0000BB">VirtualSize&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">&#93;.</span><span style="color: #0000BB">PointerToRawData</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Correggere<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&nbsp;</span><span style="color: #0000BB">BaseByte&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;LOL&nbsp;=&nbsp;SetFilePointer(HandleFile,&nbsp;BaseByte,&nbsp;NULL,&nbsp;FILE_BEGIN);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(LOL&nbsp;==&nbsp;INVALID_SET_FILE_POINTER)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Error:&nbsp;Unable&nbsp;to&nbsp;Set&nbsp;File&nbsp;Pointer"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(HandleFile);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(MpObj);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin.get();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;NumeroByteNecessari[17&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;nByteRead;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;Read&nbsp;=&nbsp;ReadFile(HandleFile&nbsp;,&nbsp;NumeroByteNecessari&nbsp;,&nbsp;sizeof(NumeroByteNecessari)&nbsp;,&nbsp;&amp;nByteRead&nbsp;,&nbsp;NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!Read)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Error:&nbsp;Unable&nbsp;to&nbsp;Read&nbsp;Byte!"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read&nbsp;=&nbsp;FALSE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;Loop&nbsp;=&nbsp;0;&nbsp;Loop&nbsp;&lt;&nbsp;sizeof(NumeroByteNecessari);&nbsp;Loop++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(NumeroByteNecessari[x&#93;&nbsp;!=&nbsp;0x00)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read&nbsp;=&nbsp;TRUE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(Read)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"I&nbsp;Byte&nbsp;nn&nbsp;sono&nbsp;liberi!"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin.get();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!RvaPartenza)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VA&nbsp;=&nbsp;ImageSectionHeader[x&#93;.VirtualAddress&nbsp;-&nbsp;ImageSectionHeader[x&#93;.PointerToRawData;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Forse&nbsp;inutile&nbsp;magari&nbsp;Log<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"BaseByte&nbsp;"&nbsp;&lt;&lt;&nbsp;BaseByte&nbsp;&lt;&lt;&nbsp;"&nbsp;VA&nbsp;"&nbsp;&lt;&lt;&nbsp;VA&nbsp;&lt;&lt;&nbsp;"&nbsp;Imagebase&nbsp;"&nbsp;&lt;&lt;&nbsp;ImageBase&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RvaPartenza&nbsp;=&nbsp;BaseByte&nbsp;+&nbsp;VA&nbsp;+&nbsp;ImageBase;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOffset&nbsp;=&nbsp;BaseByte;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Per&nbsp;ora&nbsp;lascio&nbsp;così<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">VaPartenza</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VA&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">&#93;.</span><span style="color: #0000BB">VirtualAddress&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">&#93;.</span><span style="color: #0000BB">PointerToRawData</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VaPartenza&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">BaseByte&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">VA&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">ImageBase</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">FileOffset&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">BaseByte</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Free&nbsp;Byte,&nbsp;Starting&nbsp;at&nbsp;Offset:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">BaseByte&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #FF8000">//fine&nbsp;if<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}&nbsp;</span><span style="color: #FF8000">//Fine&nbsp;for<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"End&nbsp;Scanning:&nbsp;Calculating&nbsp;Code&nbsp;and&nbsp;Write!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Sposto&nbsp;il&nbsp;FilePointer&nbsp;al&nbsp;FileOffset&nbsp;dei&nbsp;byte&nbsp;liberi<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;Ris&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">SetFilePointer</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FileOffset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_BEGIN</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;ris&nbsp;=&nbsp;INVALID_SET_FILE_POINTER&nbsp;allora<br />&nbsp;&nbsp;&nbsp;&nbsp;//Errore:&nbsp;Impossibile&nbsp;spostare&nbsp;il&nbsp;file&nbsp;pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">Ris&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">INVALID_SET_FILE_POINTER</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;Set&nbsp;File&nbsp;Pointer"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Dichiaro&nbsp;i&nbsp;Byte&nbsp;del&nbsp;packer<br />&nbsp;&nbsp;&nbsp;&nbsp;//copiati&nbsp;da&nbsp;Kernel32&nbsp;o.O<br />&nbsp;&nbsp;&nbsp;&nbsp;//64:A1&nbsp;18000000&nbsp;MOV&nbsp;EAX,DWORD&nbsp;PTR&nbsp;FS:[18&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;//8B40&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;EAX,DWORD&nbsp;PTR&nbsp;DS:[EAX+30&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;//0FB640&nbsp;02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVZX&nbsp;EAX,BYTE&nbsp;PTR&nbsp;DS:[EAX+2&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;//85C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEST&nbsp;EAX,EAX<br />&nbsp;&nbsp;&nbsp;&nbsp;//75&nbsp;01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JNZ&nbsp;SHORT&nbsp;"ADDRESS&nbsp;SOTTO&nbsp;RETN"&nbsp;OVVERO&nbsp;ECCEZIONE<br />&nbsp;&nbsp;&nbsp;&nbsp;//C3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RETN<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BYTE&nbsp;IsDbgPresent</span><span style="color: #007700">[&#93;&nbsp;=&nbsp;{&nbsp;</span><span style="color: #0000BB">0x64&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0xA1&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x18&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x8B&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x40&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x30&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x0F&nbsp;</span><span style="color: #007700">,</span><span style="color: #0000BB">0xB6&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x40</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x02&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x85&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0xC0&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x75&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x01&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0xC3</span><span style="color: #007700">};<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Scrivo&nbsp;i&nbsp;byte&nbsp;sul&nbsp;File..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;lpNumberOfBytesWritten</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(!</span><span style="color: #0000BB">WriteFile</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">IsDbgPresent</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">sizeof</span><span style="color: #007700">(</span><span style="color: #0000BB">IsDbgPresent</span><span style="color: #007700">),&nbsp;&amp;</span><span style="color: #0000BB">lpNumberOfBytesWritten</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;ritorna&nbsp;0&nbsp;(&nbsp;FALSE&nbsp;)&nbsp;allora:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;write&nbsp;file"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Ottengo&nbsp;l'entrypoint&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;RvaEntryPoint&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">OptionalHeader</span><span style="color: #007700">.</span><span style="color: #0000BB">AddressOfEntryPoint</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Calcolo&nbsp;i&nbsp;byte&nbsp;da&nbsp;scrivere&nbsp;per&nbsp;la&nbsp;Call&nbsp;che&nbsp;parte&nbsp;dal&nbsp;VA&nbsp;dell'entrypoint&nbsp;+&nbsp;1&nbsp;(lascio&nbsp;il&nbsp;PUSH&nbsp;EBP&nbsp;che&nbsp;avvolte&nbsp;genera&nbsp;errore&nbsp;se&nbsp;lo&nbsp;levo&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;e&nbsp;che&nbsp;ha&nbsp;come&nbsp;destinazione&nbsp;il&nbsp;VA&nbsp;dei&nbsp;byte&nbsp;che&nbsp;ho&nbsp;scritto&nbsp;prima<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CalcoloCode</span><span style="color: #007700">(</span><span style="color: #0000BB">RvaEntryPoint</span><span style="color: #007700">+</span><span style="color: #0000BB">ImageBase</span><span style="color: #007700">+</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">VaPartenza</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Sposto&nbsp;il&nbsp;file&nbsp;pointer&nbsp;alla&nbsp;seconda&nbsp;istruzione&nbsp;del&nbsp;programma<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Ris&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">SetFilePointer</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">RvaEntryPoint&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">VA&nbsp;</span><span style="color: #007700">+</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_BEGIN</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//se&nbsp;Ris&nbsp;=&nbsp;INVALID_SET_FILE_POINTER<br />&nbsp;&nbsp;&nbsp;&nbsp;//allora&nbsp;Errore..<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">Ris&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">INVALID_SET_FILE_POINTER</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;Set&nbsp;File&nbsp;Pointer"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Scrivo&nbsp;i&nbsp;Byte&nbsp;che&nbsp;compongono&nbsp;la&nbsp;CALL<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">WriteFile</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">sizeof</span><span style="color: #007700">(</span><span style="color: #0000BB">Op</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;&amp;</span><span style="color: #0000BB">lpNumberOfBytesWritten</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//e&nbsp;se&nbsp;ritorna&nbsp;0&nbsp;errore:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;write&nbsp;file"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Tutto&nbsp;è&nbsp;andato&nbsp;bene,&nbsp;il&nbsp;file&nbsp;è&nbsp;stato&nbsp;packato&nbsp;con&nbsp;successo!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"File&nbsp;Succesfully&nbsp;Packed!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"File&nbsp;Succesfully&nbsp;Packed!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">system</span><span style="color: #007700">(</span><span style="color: #DD0000">"pause"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//cancello&nbsp;il&nbsp;puntatore&nbsp;allo&nbsp;stream<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">delete&nbsp;Log</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;&nbsp;&nbsp;<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #FF8000">//Funzione&nbsp;per&nbsp;calcolare&nbsp;i&nbsp;byte&nbsp;che&nbsp;compongono&nbsp;un&nbsp;istruzione&nbsp;CALL<br /></span><span style="color: #0000BB">void&nbsp;CalcoloCode</span><span style="color: #007700">(</span><span style="color: #0000BB">DWORD&nbsp;VAPartenza&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;VADestinazione</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Destinazione&nbsp;CALL&nbsp;-&nbsp;Partenza&nbsp;CALL&nbsp;-&nbsp;5&nbsp;(ovvero&nbsp;i&nbsp;byte&nbsp;che&nbsp;compongono&nbsp;la&nbsp;call)&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VADestinazione&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">VADestinazione&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">VAPartenza&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">5</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Conversione&nbsp;Big&nbsp;Endian&nbsp;-&gt;&nbsp;Little&nbsp;Endian<br />&nbsp;&nbsp;&nbsp;&nbsp;//inverto&nbsp;i&nbsp;byte&nbsp;dato&nbsp;i&nbsp;processori&nbsp;Intel&nbsp;usano&nbsp;questa&nbsp;"notazione"<br />&nbsp;&nbsp;&nbsp;&nbsp;//nelle&nbsp;CALL&nbsp;e&nbsp;nei&nbsp;JMP&nbsp;infatti&nbsp;il&nbsp;byte&nbsp;più&nbsp;significativo&nbsp;è&nbsp;l'ultimo&nbsp;e&nbsp;quello&nbsp;meno<br />&nbsp;&nbsp;&nbsp;&nbsp;//il&nbsp;primo.<br />&nbsp;&nbsp;&nbsp;&nbsp;//Se&nbsp;ad&nbsp;esempio&nbsp;il&nbsp;risultato&nbsp;della&nbsp;sottrazione&nbsp;è&nbsp;00006765&nbsp;la&nbsp;call&nbsp;sarà<br />&nbsp;&nbsp;&nbsp;&nbsp;//E8&nbsp;65670000&nbsp;..&nbsp;per&nbsp;questo&nbsp;ho&nbsp;inizializzato&nbsp;a&nbsp;0&nbsp;l'array!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">unsigned&nbsp;char&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ptr&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">unsigned&nbsp;char&nbsp;</span><span style="color: #007700">*)&amp;</span><span style="color: #0000BB">VADestinazione</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//il&nbsp;primo&nbsp;byte&nbsp;è&nbsp;E8&nbsp;CALL<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">0xE8</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">4</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">&#93;;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /></span><span style="color: #FF8000">//Funzione&nbsp;per&nbsp;accertare&nbsp;se&nbsp;un&nbsp;file&nbsp;esiste..<br /></span><span style="color: #0000BB">bool&nbsp;FileExist</span><span style="color: #007700">(</span><span style="color: #0000BB">LPSTR&nbsp;Filename</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//apro&nbsp;il&nbsp;file&nbsp;Filename&nbsp;con&nbsp;permesso&nbsp;di&nbsp;lettura<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">FILE</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">File&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">Filename&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"r"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//se&nbsp;File&nbsp;è&nbsp;nonzero&nbsp;esiste<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">File</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//chiudo&nbsp;e&nbsp;ritorno&nbsp;True<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">File</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//altrimenti&nbsp;ritorno&nbsp;false<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}&nbsp;<br /></span></code></div></div></div>
  <br />
<br />
<span style="font-weight: bold;">Crediti</span><ul>
<li>Il mio grande amico retr0bot per la base (il suorce del codicecavo <img src="http://www.infernet.ws/images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> ) e che mi deve dare una mano su MSN</li>
<li>D4n13le che mi sopporta su skype e mi ha risolto il problema della conversione Big -&gt; Little endian<br />
</li></ul>
]]></description>
			<content:encoded><![CDATA[Dal titolo sembra chissa che cosa... ma è un semplice packer che verifica se all'apertura del programma è presente un Debbugger. In caso positivo continua con un eccezione.<br />
E' possibile packare un programma trascinandolo sul Packer o aprendo il programma e inserendo il nome del file.<br />
Oltre al programma verrà scritto un file di Log contenente le informazioni principali come i byte liberi.<br />
Il packer è stato testato con programmi compilati con<ul>
<li>Dev-C++</li>
<li>Borland Dephi 4.0</li>
<li>Visual Studio 8 (in alcuni casi)<br />
</li></ul>
E' in fase di sviluppo una versione totalmente compatibile con<ul>
<li>Visual Studio 8</li>
<li>Visual Basic 6.0</li>
<li>Borland C++ for Win32<br />
</li></ul>
Per questi motivi sto cercando qualcuno che mi dia una mano ( oltre a retr0 che non è mai on su MSN!)<br />
Essendo un progetto Open Suorce ho optato per iniziare con la licenza GPL.<br />
<br />
Bug Conosciuti<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>1. Il packer non controlla quanti sono i byte liberi tra le sezioni (anche se 18 byte ci sono sempre)<br />
2. Funziona solo su alcuni programmi<br />
3. Se viene attaccato il processo, quando il programma è già aperto, il debugger non viene detectato.</code></div></div>
<br />
<span style="font-weight: bold;"><br />
DOWNLOAD</span><br />
<a href="http://gabripr0.altervista.org/Packer.exe" target="_blank">Link Diretto</a><br />
<br />
<a href="http://www.multiupload.com/ZRIQNO8UFC" target="_blank">MultiUpload</a><br />
<br />
<br />
<span style="font-weight: bold;">SCREEN</span><br />
Programma:<br />
<img src="http://gabripr0.altervista.org/Packer.jpg" border="0" alt="[Immagine: Packer.jpg]" /><br />
Eccezione di Olly<br />
<img src="http://gabripr0.altervista.org/Eccezione.jpg" border="0" alt="[Immagine: Eccezione.jpg]" /><br />
<br />
<span style="font-weight: bold;">SUORCE</span><br />
<br />
<a href="http://gabripr0.altervista.org/Packer.cpp" target="_blank">Download</a><br />
<br />
Il suorce è commentato e comprensibile. So che è scritto un po' male.. e soprattutto indentato male.<br />
Ci sono dei commenti sulle prossime funzioni del programma e delle cose da correggere.<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">Codice PHP:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #FF8000">/*&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GabriPr0&nbsp;Packer&nbsp;Alpha&nbsp;Version!<br />&nbsp;&nbsp;&nbsp;&nbsp;With&nbsp;this&nbsp;program&nbsp;you&nbsp;can&nbsp;"pack"&nbsp;your&nbsp;own&nbsp;.exe&nbsp;file.<br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;packer&nbsp;may&nbsp;not&nbsp;work&nbsp;with&nbsp;all&nbsp;exe&nbsp;files.<br />&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;decline&nbsp;any&nbsp;responsability&nbsp;if&nbsp;you&nbsp;damage&nbsp;your&nbsp;program.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Copyright&nbsp;(C)&nbsp;2010&nbsp;&nbsp;Gabriele&nbsp;Serra&nbsp;(&nbsp;GabriPr0&nbsp;)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br />&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br />&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br />&nbsp;&nbsp;&nbsp;&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br />&nbsp;&nbsp;&nbsp;&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br />&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br />&nbsp;&nbsp;&nbsp;&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br />&nbsp;&nbsp;&nbsp;&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;http://www.gnu.org/licenses/&gt;.<br /><br /><br />*/<br />#include&nbsp;&lt;windows.h&gt;<br />#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;fstream&gt;&nbsp;<br /><br /></span><span style="color: #0000BB">using&nbsp;namespace&nbsp;std</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">//Le&nbsp;tre&nbsp;strutture&nbsp;di&nbsp;cui&nbsp;avrò&nbsp;bisogno:<br />//l'header&nbsp;delle&nbsp;sezioni,&nbsp;le&nbsp;varie&nbsp;caratteristiche&nbsp;(come&nbsp;entrypoint&nbsp;o&nbsp;imagebase)&nbsp;e&nbsp;il&nbsp;DOS&nbsp;header.<br />//Per&nbsp;un&nbsp;corretto&nbsp;approccio&nbsp;a&nbsp;questo&nbsp;suorce&nbsp;consiglio&nbsp;di&nbsp;studiare&nbsp;un&nbsp;guida&nbsp;sul&nbsp;formato&nbsp;PE<br /></span><span style="color: #0000BB">IMAGE_SECTION_HEADER&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">IMAGE_NT_HEADERS&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">IMAGE_DOS_HEADER&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">DWORD&nbsp;VaPartenza&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">DWORD&nbsp;FileOffset</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//Inizializzo&nbsp;a&nbsp;0&nbsp;perchè&nbsp;ne&nbsp;avrò&nbsp;bisogno..&nbsp;capirete&nbsp;dopo!<br /></span><span style="color: #0000BB">BYTE&nbsp;Op</span><span style="color: #007700">[]&nbsp;=&nbsp;{&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">};<br /></span><span style="color: #FF8000">//La&nbsp;variabile&nbsp;VA&nbsp;conterrà&nbsp;il&nbsp;valore&nbsp;da&nbsp;sotrarre&nbsp;(insieme&nbsp;all'imagebase)&nbsp;al&nbsp;VA&nbsp;per&nbsp;ottenere&nbsp;il&nbsp;FileOffset<br /></span><span style="color: #0000BB">DWORD&nbsp;VA</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//Funzione&nbsp;per&nbsp;calcolare&nbsp;i&nbsp;byte&nbsp;di&nbsp;una&nbsp;funzione&nbsp;CALL<br /></span><span style="color: #0000BB">void&nbsp;CalcoloCode</span><span style="color: #007700">(</span><span style="color: #0000BB">DWORD&nbsp;VAPartenza&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;VADestinazione</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//Bè&nbsp;il&nbsp;nome&nbsp;della&nbsp;funz&nbsp;dice&nbsp;già&nbsp;tutto!<br /></span><span style="color: #0000BB">bool&nbsp;FileExist</span><span style="color: #007700">(</span><span style="color: #0000BB">LPSTR&nbsp;Filename</span><span style="color: #007700">);&nbsp;<br /></span><span style="color: #FF8000">//Per&nbsp;chi&nbsp;non&nbsp;ricordassi&nbsp;argc&nbsp;=&nbsp;numero&nbsp;argomenti&nbsp;,&nbsp;argv&nbsp;=&nbsp;i&nbsp;vari&nbsp;argomenti<br /></span><span style="color: #0000BB">int&nbsp;main</span><span style="color: #007700">(</span><span style="color: #0000BB">int&nbsp;argc</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">char</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">argv</span><span style="color: #007700">[])&nbsp;<br />&nbsp;<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"GabriPr0&nbsp;Packer&nbsp;Alpha&nbsp;Version."&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"This&nbsp;is&nbsp;an&nbsp;Open&nbsp;Suorce&nbsp;project!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Stream&nbsp;per&nbsp;scrivere&nbsp;su&nbsp;un&nbsp;file,&nbsp;in&nbsp;questo&nbsp;caso&nbsp;Log.txt<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ofstream</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">Log</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;non&nbsp;esiste&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">FileExist</span><span style="color: #007700">(</span><span style="color: #DD0000">"Log.txt"</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">ofstream</span><span style="color: #007700">(</span><span style="color: #DD0000">"Log.txt"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Verrà&nbsp;creato<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Log&nbsp;File&nbsp;don't&nbsp;exist...&nbsp;it&nbsp;will&nbsp;be&nbsp;create&nbsp;now!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//altrimenti&nbsp;lo&nbsp;apre&nbsp;in&nbsp;moalità&nbsp;append<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">ofstream</span><span style="color: #007700">(</span><span style="color: #DD0000">"Log.txt"&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ios</span><span style="color: #007700">::</span><span style="color: #0000BB">app</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//e&nbsp;scrive&nbsp;un&nbsp;barra&nbsp;di&nbsp;separazione<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"---------------------------------------"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(!</span><span style="color: #0000BB">Log</span><span style="color: #007700">){</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Unable&nbsp;to&nbsp;Create&nbsp;Log&nbsp;file!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HANDLE&nbsp;HandleFile</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Max&nbsp;Path&nbsp;=&nbsp;260&nbsp;..<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">char&nbsp;Filename</span><span style="color: #007700">[</span><span style="color: #0000BB">MAX_PATH</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;gli&nbsp;argomenti&nbsp;passati&nbsp;al&nbsp;cmd&nbsp;sono&nbsp;diversi&nbsp;da&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">argc&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Inserisci&nbsp;il&nbsp;nome&nbsp;file&nbsp;da&nbsp;input<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Insert&nbsp;file&nbsp;name..."&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin&nbsp;</span><span style="color: #007700">&gt;&gt;&nbsp;</span><span style="color: #0000BB">Filename</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Ottengo&nbsp;l'handle&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HandleFile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateFile</span><span style="color: #007700">(</span><span style="color: #0000BB">Filename</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">GENERIC_READ&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">GENERIC_WRITE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_SHARE_READ</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">,</span><span style="color: #0000BB">OPEN_EXISTING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_ATTRIBUTE_NORMAL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Scanning...&nbsp;&#092;nPacking&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">Filename&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Packing:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">Filename&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//altrimenti&nbsp;usa&nbsp;il&nbsp;secondo&nbsp;argomento&nbsp;passato&nbsp;al&nbsp;cmd&nbsp;come&nbsp;nome&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;//(il&nbsp;primo&nbsp;argomento&nbsp;è&nbsp;il&nbsp;programma&nbsp;stesso)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HandleFile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateFile</span><span style="color: #007700">(</span><span style="color: #0000BB">argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">GENERIC_READ&nbsp;</span><span style="color: #007700">|&nbsp;</span><span style="color: #0000BB">GENERIC_WRITE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_SHARE_READ</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">,</span><span style="color: #0000BB">OPEN_EXISTING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_ATTRIBUTE_NORMAL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Scanning...&nbsp;&#092;nPacking&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Packing:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">argv</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Errore&nbsp;impossibile&nbsp;aprire&nbsp;il&nbsp;file&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">HandleFile&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">INVALID_HANDLE_VALUE&nbsp;</span><span style="color: #007700">)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;open&nbsp;File"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Crea&nbsp;una&nbsp;mappatura&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">HANDLE&nbsp;MpObj&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CreateFileMapping</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PAGE_READONLY</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Errore:&nbsp;Impossibile&nbsp;Mappare&nbsp;il&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Unable&nbsp;to&nbsp;create&nbsp;MapFile"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Mappa&nbsp;il&nbsp;file&nbsp;e&nbsp;restituisce&nbsp;l'address&nbsp;dell'inizio&nbsp;della&nbsp;mappatura<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;BaseAddress&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">DWORD</span><span style="color: #007700">)</span><span style="color: #0000BB">MapViewOfFile</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_MAP_READ</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//se&nbsp;BaseAddress&nbsp;=&nbsp;0&nbsp;Errore:&nbsp;Impossibile...<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">BaseAddress</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Unable&nbsp;to&nbsp;view&nbsp;mapping&nbsp;file"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">hex&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Base&nbsp;Address&nbsp;of&nbsp;Mapping&nbsp;Object:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">BaseAddress&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Per&nbsp;utilizzare&nbsp;la&nbsp;struttura&nbsp;DosHeader&nbsp;basta&nbsp;farla&nbsp;puntare&nbsp;al&nbsp;BaseAddress&nbsp;del&nbsp;file&nbsp;mappato&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ImageDosHeader&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">IMAGE_DOS_HEADER</span><span style="color: #007700">*)</span><span style="color: #0000BB">BaseAddress</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;e_magic&nbsp;(i&nbsp;primi&nbsp;2&nbsp;byte&nbsp;in&nbsp;poche&nbsp;parole)&nbsp;diversi&nbsp;da&nbsp;IMAGE_DOS_SIGNATURE&nbsp;(&nbsp;MZ&nbsp;[&nbsp;4D&nbsp;,&nbsp;5A&nbsp;]&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;//Errore:&nbsp;Dos&nbsp;Header&nbsp;invalido..&nbsp;non&nbsp;è&nbsp;un&nbsp;eseguibile!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">e_magic&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">IMAGE_DOS_SIGNATURE</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Invalid&nbsp;DOS&nbsp;Header"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Per&nbsp;riempire&nbsp;la&nbsp;struttura&nbsp;NtHeaders&nbsp;basta&nbsp;farla&nbsp;puntare&nbsp;all'inizio&nbsp;del&nbsp;PE&nbsp;+&nbsp;e_lfanew<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ImageNtHeaders&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">IMAGE_NT_HEADERS&nbsp;</span><span style="color: #007700">*)(</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">e_lfanew&nbsp;</span><span style="color: #007700">+(</span><span style="color: #0000BB">DWORD</span><span style="color: #007700">)</span><span style="color: #0000BB">ImageDosHeader</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;i&nbsp;primi&nbsp;due&nbsp;byte&nbsp;della&nbsp;struttura&nbsp;dopo&nbsp;il&nbsp;DosHeader&nbsp;diversi&nbsp;da&nbsp;IMAGE_NT_SIGNATURE&nbsp;(PE&nbsp;[&nbsp;50&nbsp;,&nbsp;45&nbsp;,&nbsp;00&nbsp;,&nbsp;00&nbsp;]&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;//Errore:&nbsp;il&nbsp;file&nbsp;che&nbsp;stiamo&nbsp;"esaminando"&nbsp;non&nbsp;è&nbsp;un&nbsp;PE!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Signature&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">IMAGE_NT_SIGNATURE</span><span style="color: #007700">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Invalid&nbsp;PE&nbsp;Format"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Ottengo&nbsp;l'imagebase&nbsp;(&nbsp;o&nbsp;baseaddress)&nbsp;del&nbsp;PE&nbsp;che&nbsp;sto&nbsp;packando&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;ImageBase&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">OptionalHeader</span><span style="color: #007700">.</span><span style="color: #0000BB">ImageBase</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Base&nbsp;Address&nbsp;of&nbsp;file:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">ImageBase&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Riempo&nbsp;la&nbsp;struttura&nbsp;section&nbsp;header&nbsp;grazie&nbsp;alla&nbsp;macro&nbsp;fornita&nbsp;da&nbsp;winnt.h<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ImageSectionHeader&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">IMAGE_FIRST_SECTION</span><span style="color: #007700">(</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Per&nbsp;ogni&nbsp;sezione&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">for&nbsp;(</span><span style="color: #0000BB">int&nbsp;x&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">x&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">FileHeader</span><span style="color: #007700">.</span><span style="color: #0000BB">NumberOfSections</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">x</span><span style="color: #007700">++)<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//trova&nbsp;i&nbsp;byte&nbsp;liberi&nbsp;in&nbsp;fondo&nbsp;alla&nbsp;sezione&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;BaseByte&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">].</span><span style="color: #0000BB">Misc</span><span style="color: #007700">.</span><span style="color: #0000BB">VirtualSize&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">].</span><span style="color: #0000BB">PointerToRawData</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Correggere<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&nbsp;</span><span style="color: #0000BB">BaseByte&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;LOL&nbsp;=&nbsp;SetFilePointer(HandleFile,&nbsp;BaseByte,&nbsp;NULL,&nbsp;FILE_BEGIN);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(LOL&nbsp;==&nbsp;INVALID_SET_FILE_POINTER)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Error:&nbsp;Unable&nbsp;to&nbsp;Set&nbsp;File&nbsp;Pointer"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(HandleFile);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(MpObj);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin.get();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;NumeroByteNecessari[17];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;nByteRead;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;Read&nbsp;=&nbsp;ReadFile(HandleFile&nbsp;,&nbsp;NumeroByteNecessari&nbsp;,&nbsp;sizeof(NumeroByteNecessari)&nbsp;,&nbsp;&amp;nByteRead&nbsp;,&nbsp;NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!Read)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Error:&nbsp;Unable&nbsp;to&nbsp;Read&nbsp;Byte!"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read&nbsp;=&nbsp;FALSE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;Loop&nbsp;=&nbsp;0;&nbsp;Loop&nbsp;&lt;&nbsp;sizeof(NumeroByteNecessari);&nbsp;Loop++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(NumeroByteNecessari[x]&nbsp;!=&nbsp;0x00)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read&nbsp;=&nbsp;TRUE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(Read)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"I&nbsp;Byte&nbsp;nn&nbsp;sono&nbsp;liberi!"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin.get();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!RvaPartenza)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VA&nbsp;=&nbsp;ImageSectionHeader[x].VirtualAddress&nbsp;-&nbsp;ImageSectionHeader[x].PointerToRawData;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Forse&nbsp;inutile&nbsp;magari&nbsp;Log<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"BaseByte&nbsp;"&nbsp;&lt;&lt;&nbsp;BaseByte&nbsp;&lt;&lt;&nbsp;"&nbsp;VA&nbsp;"&nbsp;&lt;&lt;&nbsp;VA&nbsp;&lt;&lt;&nbsp;"&nbsp;Imagebase&nbsp;"&nbsp;&lt;&lt;&nbsp;ImageBase&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RvaPartenza&nbsp;=&nbsp;BaseByte&nbsp;+&nbsp;VA&nbsp;+&nbsp;ImageBase;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOffset&nbsp;=&nbsp;BaseByte;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Per&nbsp;ora&nbsp;lascio&nbsp;così<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">VaPartenza</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VA&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">].</span><span style="color: #0000BB">VirtualAddress&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">ImageSectionHeader</span><span style="color: #007700">[</span><span style="color: #0000BB">x</span><span style="color: #007700">].</span><span style="color: #0000BB">PointerToRawData</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VaPartenza&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">BaseByte&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">VA&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">ImageBase</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">FileOffset&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">BaseByte</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Free&nbsp;Byte,&nbsp;Starting&nbsp;at&nbsp;Offset:&nbsp;"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">BaseByte&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #FF8000">//fine&nbsp;if<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}&nbsp;</span><span style="color: #FF8000">//Fine&nbsp;for<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"End&nbsp;Scanning:&nbsp;Calculating&nbsp;Code&nbsp;and&nbsp;Write!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Sposto&nbsp;il&nbsp;FilePointer&nbsp;al&nbsp;FileOffset&nbsp;dei&nbsp;byte&nbsp;liberi<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;Ris&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">SetFilePointer</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FileOffset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_BEGIN</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;ris&nbsp;=&nbsp;INVALID_SET_FILE_POINTER&nbsp;allora<br />&nbsp;&nbsp;&nbsp;&nbsp;//Errore:&nbsp;Impossibile&nbsp;spostare&nbsp;il&nbsp;file&nbsp;pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">Ris&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">INVALID_SET_FILE_POINTER</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;Set&nbsp;File&nbsp;Pointer"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Dichiaro&nbsp;i&nbsp;Byte&nbsp;del&nbsp;packer<br />&nbsp;&nbsp;&nbsp;&nbsp;//copiati&nbsp;da&nbsp;Kernel32&nbsp;o.O<br />&nbsp;&nbsp;&nbsp;&nbsp;//64:A1&nbsp;18000000&nbsp;MOV&nbsp;EAX,DWORD&nbsp;PTR&nbsp;FS:[18]<br />&nbsp;&nbsp;&nbsp;&nbsp;//8B40&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;EAX,DWORD&nbsp;PTR&nbsp;DS:[EAX+30]<br />&nbsp;&nbsp;&nbsp;&nbsp;//0FB640&nbsp;02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVZX&nbsp;EAX,BYTE&nbsp;PTR&nbsp;DS:[EAX+2]<br />&nbsp;&nbsp;&nbsp;&nbsp;//85C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEST&nbsp;EAX,EAX<br />&nbsp;&nbsp;&nbsp;&nbsp;//75&nbsp;01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JNZ&nbsp;SHORT&nbsp;"ADDRESS&nbsp;SOTTO&nbsp;RETN"&nbsp;OVVERO&nbsp;ECCEZIONE<br />&nbsp;&nbsp;&nbsp;&nbsp;//C3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RETN<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BYTE&nbsp;IsDbgPresent</span><span style="color: #007700">[]&nbsp;=&nbsp;{&nbsp;</span><span style="color: #0000BB">0x64&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0xA1&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x18&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x00&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x8B&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x40&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x30&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x0F&nbsp;</span><span style="color: #007700">,</span><span style="color: #0000BB">0xB6&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x40</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x02&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x85&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0xC0&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x75&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x01&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0xC3</span><span style="color: #007700">};<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Scrivo&nbsp;i&nbsp;byte&nbsp;sul&nbsp;File..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;lpNumberOfBytesWritten</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(!</span><span style="color: #0000BB">WriteFile</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">IsDbgPresent</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">sizeof</span><span style="color: #007700">(</span><span style="color: #0000BB">IsDbgPresent</span><span style="color: #007700">),&nbsp;&amp;</span><span style="color: #0000BB">lpNumberOfBytesWritten</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Se&nbsp;ritorna&nbsp;0&nbsp;(&nbsp;FALSE&nbsp;)&nbsp;allora:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;write&nbsp;file"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Ottengo&nbsp;l'entrypoint&nbsp;del&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;RvaEntryPoint&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ImageNtHeaders</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">OptionalHeader</span><span style="color: #007700">.</span><span style="color: #0000BB">AddressOfEntryPoint</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Calcolo&nbsp;i&nbsp;byte&nbsp;da&nbsp;scrivere&nbsp;per&nbsp;la&nbsp;Call&nbsp;che&nbsp;parte&nbsp;dal&nbsp;VA&nbsp;dell'entrypoint&nbsp;+&nbsp;1&nbsp;(lascio&nbsp;il&nbsp;PUSH&nbsp;EBP&nbsp;che&nbsp;avvolte&nbsp;genera&nbsp;errore&nbsp;se&nbsp;lo&nbsp;levo&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;e&nbsp;che&nbsp;ha&nbsp;come&nbsp;destinazione&nbsp;il&nbsp;VA&nbsp;dei&nbsp;byte&nbsp;che&nbsp;ho&nbsp;scritto&nbsp;prima<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CalcoloCode</span><span style="color: #007700">(</span><span style="color: #0000BB">RvaEntryPoint</span><span style="color: #007700">+</span><span style="color: #0000BB">ImageBase</span><span style="color: #007700">+</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">VaPartenza</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Sposto&nbsp;il&nbsp;file&nbsp;pointer&nbsp;alla&nbsp;seconda&nbsp;istruzione&nbsp;del&nbsp;programma<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Ris&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">SetFilePointer</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">RvaEntryPoint&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">VA&nbsp;</span><span style="color: #007700">+</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILE_BEGIN</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//se&nbsp;Ris&nbsp;=&nbsp;INVALID_SET_FILE_POINTER<br />&nbsp;&nbsp;&nbsp;&nbsp;//allora&nbsp;Errore..<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">Ris&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">INVALID_SET_FILE_POINTER</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;Set&nbsp;File&nbsp;Pointer"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Scrivo&nbsp;i&nbsp;Byte&nbsp;che&nbsp;compongono&nbsp;la&nbsp;CALL<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(!</span><span style="color: #0000BB">WriteFile</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">sizeof</span><span style="color: #007700">(</span><span style="color: #0000BB">Op</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;&amp;</span><span style="color: #0000BB">lpNumberOfBytesWritten</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//e&nbsp;se&nbsp;ritorna&nbsp;0&nbsp;errore:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"Error:&nbsp;Unable&nbsp;to&nbsp;write&nbsp;file"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cin</span><span style="color: #007700">.</span><span style="color: #0000BB">get</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Tutto&nbsp;è&nbsp;andato&nbsp;bene,&nbsp;il&nbsp;file&nbsp;è&nbsp;stato&nbsp;packato&nbsp;con&nbsp;successo!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">cout&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"File&nbsp;Succesfully&nbsp;Packed!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*</span><span style="color: #0000BB">Log&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #DD0000">"File&nbsp;Succesfully&nbsp;Packed!"&nbsp;</span><span style="color: #007700">&lt;&lt;&nbsp;</span><span style="color: #0000BB">endl</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">HandleFile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CloseHandle</span><span style="color: #007700">(</span><span style="color: #0000BB">MpObj</span><span style="color: #007700">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">system</span><span style="color: #007700">(</span><span style="color: #DD0000">"pause"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//cancello&nbsp;il&nbsp;puntatore&nbsp;allo&nbsp;stream<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">delete&nbsp;Log</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;&nbsp;&nbsp;<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #FF8000">//Funzione&nbsp;per&nbsp;calcolare&nbsp;i&nbsp;byte&nbsp;che&nbsp;compongono&nbsp;un&nbsp;istruzione&nbsp;CALL<br /></span><span style="color: #0000BB">void&nbsp;CalcoloCode</span><span style="color: #007700">(</span><span style="color: #0000BB">DWORD&nbsp;VAPartenza&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">DWORD&nbsp;VADestinazione</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Destinazione&nbsp;CALL&nbsp;-&nbsp;Partenza&nbsp;CALL&nbsp;-&nbsp;5&nbsp;(ovvero&nbsp;i&nbsp;byte&nbsp;che&nbsp;compongono&nbsp;la&nbsp;call)&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">VADestinazione&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">VADestinazione&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">VAPartenza&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">5</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//Conversione&nbsp;Big&nbsp;Endian&nbsp;-&gt;&nbsp;Little&nbsp;Endian<br />&nbsp;&nbsp;&nbsp;&nbsp;//inverto&nbsp;i&nbsp;byte&nbsp;dato&nbsp;i&nbsp;processori&nbsp;Intel&nbsp;usano&nbsp;questa&nbsp;"notazione"<br />&nbsp;&nbsp;&nbsp;&nbsp;//nelle&nbsp;CALL&nbsp;e&nbsp;nei&nbsp;JMP&nbsp;infatti&nbsp;il&nbsp;byte&nbsp;più&nbsp;significativo&nbsp;è&nbsp;l'ultimo&nbsp;e&nbsp;quello&nbsp;meno<br />&nbsp;&nbsp;&nbsp;&nbsp;//il&nbsp;primo.<br />&nbsp;&nbsp;&nbsp;&nbsp;//Se&nbsp;ad&nbsp;esempio&nbsp;il&nbsp;risultato&nbsp;della&nbsp;sottrazione&nbsp;è&nbsp;00006765&nbsp;la&nbsp;call&nbsp;sarà<br />&nbsp;&nbsp;&nbsp;&nbsp;//E8&nbsp;65670000&nbsp;..&nbsp;per&nbsp;questo&nbsp;ho&nbsp;inizializzato&nbsp;a&nbsp;0&nbsp;l'array!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">unsigned&nbsp;char&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ptr&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">unsigned&nbsp;char&nbsp;</span><span style="color: #007700">*)&amp;</span><span style="color: #0000BB">VADestinazione</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//il&nbsp;primo&nbsp;byte&nbsp;è&nbsp;E8&nbsp;CALL<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">0xE8</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Op</span><span style="color: #007700">[</span><span style="color: #0000BB">4</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">ptr</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">];&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /></span><span style="color: #FF8000">//Funzione&nbsp;per&nbsp;accertare&nbsp;se&nbsp;un&nbsp;file&nbsp;esiste..<br /></span><span style="color: #0000BB">bool&nbsp;FileExist</span><span style="color: #007700">(</span><span style="color: #0000BB">LPSTR&nbsp;Filename</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//apro&nbsp;il&nbsp;file&nbsp;Filename&nbsp;con&nbsp;permesso&nbsp;di&nbsp;lettura<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">FILE</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">File&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">Filename&nbsp;</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"r"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//se&nbsp;File&nbsp;è&nbsp;nonzero&nbsp;esiste<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">File</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//chiudo&nbsp;e&nbsp;ritorno&nbsp;True<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">File</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//altrimenti&nbsp;ritorno&nbsp;false<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}&nbsp;<br /></span></code></div></div></div>
  <br />
<br />
<span style="font-weight: bold;">Crediti</span><ul>
<li>Il mio grande amico retr0bot per la base (il suorce del codicecavo <img src="http://www.infernet.ws/images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" /> ) e che mi deve dare una mano su MSN</li>
<li>D4n13le che mi sopporta su skype e mi ha risolto il problema della conversione Big -&gt; Little endian<br />
</li></ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Java&#93; Connect4ITU - Forza 4 con intelligenza artificiale]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16714</link>
			<pubDate>Thu, 11 Mar 2010 15:49:09 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16714</guid>
			<description><![CDATA[Progetto da presentare per il corso di efficient artificial intelligence programming all'ITU di Copenhagen. Si tratta di un gioco di Forza 4 in Java (l'interfaccia grafica era già pronta, il mio compito era sviluppare la logica dell'AI, che scegliesse le mosse di risposta a quelle del giocatore umano). Per l'uso, pasto il README:<br />
<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>Connect 4 game made for a project of AI at the ITU of Copenhagen (DK).<br />
To run it (of course you must have Java installed on your machine), simply type:<br />
<br />
java ShowGame &lt;GameLogic | human&gt; &lt;GameLogic | human&gt; [board rows (default: 6)&#93; [board columns (default: 7)&#93; [AI skill level (default: 12)&#93; [number of n-in-a-row winning coins (default: 4)&#93;<br />
<br />
For example, to start a 7x6 grid where a player wins when it places 4 coins in a row ("Forza 4"), and the artificial intelligence is on an average level, simply type<br />
java ShowGame human GameLogic</code></div></div>
<br />
Si può anche fare roba figa, tipo far giocare una logica contro un'altra (anche se questo potrebbe portare a un deadlock del gioco):<br />
<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>java ShowGame GameLogic GameLogic</code></div></div>
<br />
oppure sviluppare la propria logica semplicemente implementando l'interfaccia IGameLogic e modificando la classe GameState, e far giocare una logica contro l'altra.<br />
<br />
L'AI usa un algoritmo di minimax con alpha-beta pruning per scegliere la migliore strategia in un certo momento, con una funzione euristica basata sullo score in un determinato stato se il livello di profondità raggiunto è pari al livello di abilità dell'AI stessa, per effettuare il cutoff. I dettagli implementativi sono contenuti nella directory mydoc, in formato JavaDoc.<br />
<br />
Link:<br />
<a href="http://0x00.ath.cx/prog/connect4itu.tar.gz" target="_blank">http://0x00.ath.cx/prog/connect4itu.tar.gz</a>]]></description>
			<content:encoded><![CDATA[Progetto da presentare per il corso di efficient artificial intelligence programming all'ITU di Copenhagen. Si tratta di un gioco di Forza 4 in Java (l'interfaccia grafica era già pronta, il mio compito era sviluppare la logica dell'AI, che scegliesse le mosse di risposta a quelle del giocatore umano). Per l'uso, pasto il README:<br />
<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>Connect 4 game made for a project of AI at the ITU of Copenhagen (DK).<br />
To run it (of course you must have Java installed on your machine), simply type:<br />
<br />
java ShowGame &lt;GameLogic | human&gt; &lt;GameLogic | human&gt; [board rows (default: 6)] [board columns (default: 7)] [AI skill level (default: 12)] [number of n-in-a-row winning coins (default: 4)]<br />
<br />
For example, to start a 7x6 grid where a player wins when it places 4 coins in a row ("Forza 4"), and the artificial intelligence is on an average level, simply type<br />
java ShowGame human GameLogic</code></div></div>
<br />
Si può anche fare roba figa, tipo far giocare una logica contro un'altra (anche se questo potrebbe portare a un deadlock del gioco):<br />
<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>java ShowGame GameLogic GameLogic</code></div></div>
<br />
oppure sviluppare la propria logica semplicemente implementando l'interfaccia IGameLogic e modificando la classe GameState, e far giocare una logica contro l'altra.<br />
<br />
L'AI usa un algoritmo di minimax con alpha-beta pruning per scegliere la migliore strategia in un certo momento, con una funzione euristica basata sullo score in un determinato stato se il livello di profondità raggiunto è pari al livello di abilità dell'AI stessa, per effettuare il cutoff. I dettagli implementativi sono contenuti nella directory mydoc, in formato JavaDoc.<br />
<br />
Link:<br />
<a href="http://0x00.ath.cx/prog/connect4itu.tar.gz" target="_blank">http://0x00.ath.cx/prog/connect4itu.tar.gz</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Olimpiadi di Informatica]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16713</link>
			<pubDate>Thu, 11 Mar 2010 14:52:00 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16713</guid>
			<description><![CDATA[Libri per le olimpiadi di informatica? Qualcuno ha mai passato la selezione scolastica? Dove trovare esercizi logico-matematici che vengono chiesti alle Olimpiadi di Informatica?]]></description>
			<content:encoded><![CDATA[Libri per le olimpiadi di informatica? Qualcuno ha mai passato la selezione scolastica? Dove trovare esercizi logico-matematici che vengono chiesti alle Olimpiadi di Informatica?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Accesso pannello di Amministrazione Joomla]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16712</link>
			<pubDate>Wed, 10 Mar 2010 21:02:29 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16712</guid>
			<description><![CDATA[Salve ho un enorme problema, nel pannello di Amministrazione al sito immetto user e Password corrette e quando effettuo il login che non mi fà entrare nel pannello di Amministrazione ma mi fà il redirect nuovamente alla pagina di login... Ho provato anche a cambiare la password dal Database ma mi succede la stessa cosa di nuovo. Come posso risolvere il problema?? Grazie]]></description>
			<content:encoded><![CDATA[Salve ho un enorme problema, nel pannello di Amministrazione al sito immetto user e Password corrette e quando effettuo il login che non mi fà entrare nel pannello di Amministrazione ma mi fà il redirect nuovamente alla pagina di login... Ho provato anche a cambiare la password dal Database ma mi succede la stessa cosa di nuovo. Come posso risolvere il problema?? Grazie]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[eliminare  boot windows loader]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16711</link>
			<pubDate>Wed, 10 Mar 2010 20:58:29 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16711</guid>
			<description><![CDATA[quando si avvia il sistema mi compaiono una lista di boot ( windows e ubuntu come sistema operativi) come posso togliere gli altri?]]></description>
			<content:encoded><![CDATA[quando si avvia il sistema mi compaiono una lista di boot ( windows e ubuntu come sistema operativi) come posso togliere gli altri?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Blog&#93; Appunti Università]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16710</link>
			<pubDate>Wed, 10 Mar 2010 10:18:07 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16710</guid>
			<description><![CDATA[<span style="font-weight: bold;">Salve a tutti!</span><br />
<br />
Sono da poco ricominciate le lezioni all'uni e ho lanciato un'iniziativa nel mio blog che non so se altri hanno lanciato (e neanche mi interessa).<br />
<br />
<span style="font-weight: bold;">Sto pubblicando gli appunti che prendo a lezione,</span> in modo che chi ha voglia di imparare approfonditamente qualcosa, lo possa fare "al passo" delle lezioni universitarie; ovviamente, questo potrebbe estendersi per tutti coloro che magari han saltato una lezione all'uni.<br />
<br />
Dunque, <span style="font-weight: bold;">io studio Informatica alla Sapienza di Roma</span>, quindi gli appunti si riferiranno al secondo semestre del primo anno di questo corso di studi.<br />
<br />
Vi lascio il link del mio sito, oggi ho già caricato gli appunti di Calcolo Integrale e di Metodologie di Programmazione (Java) (megaupload rulez... xD).<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">http://capiamoinsieme.bloog.it</span></span><br />
<br />
<br />
Ps:<br />
Si, lo so, ho già spammato pure troppo, però secondo me in queste cose lo spam non è mai troppo, nel senso che più si spamma e più c'è possibilità che qualcuno bisognoso "del sapere" possa trovare la giusta fonte.<br />
<br />
In fin dei conti, non vendo "V1AGR4" ..xD LOOOOL<br />
<br />
Bene, fatemi sapere cosa ne pensate e..niente, buono studio!  <img src="http://www.infernet.ws/images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" />]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;">Salve a tutti!</span><br />
<br />
Sono da poco ricominciate le lezioni all'uni e ho lanciato un'iniziativa nel mio blog che non so se altri hanno lanciato (e neanche mi interessa).<br />
<br />
<span style="font-weight: bold;">Sto pubblicando gli appunti che prendo a lezione,</span> in modo che chi ha voglia di imparare approfonditamente qualcosa, lo possa fare "al passo" delle lezioni universitarie; ovviamente, questo potrebbe estendersi per tutti coloro che magari han saltato una lezione all'uni.<br />
<br />
Dunque, <span style="font-weight: bold;">io studio Informatica alla Sapienza di Roma</span>, quindi gli appunti si riferiranno al secondo semestre del primo anno di questo corso di studi.<br />
<br />
Vi lascio il link del mio sito, oggi ho già caricato gli appunti di Calcolo Integrale e di Metodologie di Programmazione (Java) (megaupload rulez... xD).<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">http://capiamoinsieme.bloog.it</span></span><br />
<br />
<br />
Ps:<br />
Si, lo so, ho già spammato pure troppo, però secondo me in queste cose lo spam non è mai troppo, nel senso che più si spamma e più c'è possibilità che qualcuno bisognoso "del sapere" possa trovare la giusta fonte.<br />
<br />
In fin dei conti, non vendo "V1AGR4" ..xD LOOOOL<br />
<br />
Bene, fatemi sapere cosa ne pensate e..niente, buono studio!  <img src="http://www.infernet.ws/images/smilies/biggrin.gif" style="vertical-align: middle;" border="0" alt="Big Grin" title="Big Grin" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ciao rigààà]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16709</link>
			<pubDate>Tue, 09 Mar 2010 22:00:22 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16709</guid>
			<description><![CDATA[cia sono un nuovo acquisto. Bel forum complimenti...]]></description>
			<content:encoded><![CDATA[cia sono un nuovo acquisto. Bel forum complimenti...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Motore di ricerca. Linguaggio migliore?]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16708</link>
			<pubDate>Tue, 09 Mar 2010 18:13:16 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16708</guid>
			<description><![CDATA[Scusate ragazzi se la domanda è così banale per voi, ma per me si complica un pochino, in quanto andando a vedere un po di script già fatti su internet, ho visto che la maggior parte sono in javascript. <br />
Andando direttamente al punto, dovrei creare un motore di ricerca interno con i quali escano una serie di risultati, ma non come su google, dove sono link con piccola descrizione, ma vorrei fare così:<br />
<br />
Nella index vorrei mettere un form di ricerca, magari con un bel contorno, un'immagine (questo proprio non so come si fa <img src="http://www.infernet.ws/images/smilies/undecided.gif" style="vertical-align: middle;" border="0" alt="Undecided" title="Undecided" />), nel quale una volta digitato una parola chiave, anche complessa, mi mandi ad una pagina con i risultati, nella quale compaiano per l'appunto i risultati strutturati così: <br />
<br />
(esempio 1 risultato dev'essere così)<br />
piccola immagine (sinistra)<br />
descrizione (a fianco dell'immagine)<br />
e sotto due link che mandino ad altre due pagine nella quale inserire maggiori informazioni<br />
<br />
Ora, avendo queste informazioni, con che tipo di linguaggio sarebbe meglio usare?<br />
<br />
Considerando che per trovare qualcosa devo anche inserire gli argomenti, perciò altro campo (nascosto). Per questo, penso basti un semplice file xml che abbia la funzione di inserire titolo, descrizione, immagine, più eventuale link con ulteriori dettagli, oppure il buon vecchio mysql <img src="http://www.infernet.ws/images/smilies/blush.gif" style="vertical-align: middle;" border="0" alt="Blush" title="Blush" /><br />
<br />
<br />
Ogni consiglio è ben accetto. <img src="http://www.infernet.ws/images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />]]></description>
			<content:encoded><![CDATA[Scusate ragazzi se la domanda è così banale per voi, ma per me si complica un pochino, in quanto andando a vedere un po di script già fatti su internet, ho visto che la maggior parte sono in javascript. <br />
Andando direttamente al punto, dovrei creare un motore di ricerca interno con i quali escano una serie di risultati, ma non come su google, dove sono link con piccola descrizione, ma vorrei fare così:<br />
<br />
Nella index vorrei mettere un form di ricerca, magari con un bel contorno, un'immagine (questo proprio non so come si fa <img src="http://www.infernet.ws/images/smilies/undecided.gif" style="vertical-align: middle;" border="0" alt="Undecided" title="Undecided" />), nel quale una volta digitato una parola chiave, anche complessa, mi mandi ad una pagina con i risultati, nella quale compaiano per l'appunto i risultati strutturati così: <br />
<br />
(esempio 1 risultato dev'essere così)<br />
piccola immagine (sinistra)<br />
descrizione (a fianco dell'immagine)<br />
e sotto due link che mandino ad altre due pagine nella quale inserire maggiori informazioni<br />
<br />
Ora, avendo queste informazioni, con che tipo di linguaggio sarebbe meglio usare?<br />
<br />
Considerando che per trovare qualcosa devo anche inserire gli argomenti, perciò altro campo (nascosto). Per questo, penso basti un semplice file xml che abbia la funzione di inserire titolo, descrizione, immagine, più eventuale link con ulteriori dettagli, oppure il buon vecchio mysql <img src="http://www.infernet.ws/images/smilies/blush.gif" style="vertical-align: middle;" border="0" alt="Blush" title="Blush" /><br />
<br />
<br />
Ogni consiglio è ben accetto. <img src="http://www.infernet.ws/images/smilies/smile.gif" style="vertical-align: middle;" border="0" alt="Smile" title="Smile" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[una canzone per genere]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16707</link>
			<pubDate>Tue, 09 Mar 2010 15:58:03 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16707</guid>
			<description><![CDATA[salve<br />
per un progetto di scuola, devo riunire in un cd una canzone per ogni genere musicale.<br />
una canzone particolarmente rappresentativa e/o famosa<br />
<br />
queste sono quelle che ho pensato...<br />
<span style="font-weight: bold;">dimentico qualche genere ? canzoni migliori per i generi che ho scritto ?</span><br />
e poi mi serve quella per la musica house...<br />
<br />
punk / sex pistols - god save the queen<br />
rock / the doors - break on through (to the other side)<br />
metal / metallica - enter sandman<br />
pop / michael jackson - billie jean<br />
reggae / dawn penn - you don't love me<br />
hip hop / cypress hill - tequila sunrise<br />
gothic / cure - friday i'm in love<br />
blues / jimi hendrix - all along the watchtower<br />
jazz / louis armstrong - jeeper creeper<br />
dnb / dj hype - ready or not<br />
grunge / nirvana - smells like teen spirit<br />
dance / ice mc - think about the way<br />
ska / ska-p - napa es<br />
classica / beethoven -quinta sinfonia<br />
house / ????????????????????????<br />
funky / incredible bongo band - apache<br />
<br />
ah, niente sottogeneri (tipo melodic death metal rientra dentro metal)<br />
<br />
grazie in anticipo]]></description>
			<content:encoded><![CDATA[salve<br />
per un progetto di scuola, devo riunire in un cd una canzone per ogni genere musicale.<br />
una canzone particolarmente rappresentativa e/o famosa<br />
<br />
queste sono quelle che ho pensato...<br />
<span style="font-weight: bold;">dimentico qualche genere ? canzoni migliori per i generi che ho scritto ?</span><br />
e poi mi serve quella per la musica house...<br />
<br />
punk / sex pistols - god save the queen<br />
rock / the doors - break on through (to the other side)<br />
metal / metallica - enter sandman<br />
pop / michael jackson - billie jean<br />
reggae / dawn penn - you don't love me<br />
hip hop / cypress hill - tequila sunrise<br />
gothic / cure - friday i'm in love<br />
blues / jimi hendrix - all along the watchtower<br />
jazz / louis armstrong - jeeper creeper<br />
dnb / dj hype - ready or not<br />
grunge / nirvana - smells like teen spirit<br />
dance / ice mc - think about the way<br />
ska / ska-p - napa es<br />
classica / beethoven -quinta sinfonia<br />
house / ????????????????????????<br />
funky / incredible bongo band - apache<br />
<br />
ah, niente sottogeneri (tipo melodic death metal rientra dentro metal)<br />
<br />
grazie in anticipo]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[PERL&#93; Trova l'errore]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16706</link>
			<pubDate>Tue, 09 Mar 2010 00:30:30 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16706</guid>
			<description><![CDATA[<a href="http://nessuno.gotdns.org/no_paste/?id=126&amp;line=1" target="_blank">http://nessuno.gotdns.org/no_paste/?id=126&#x26;line=1</a><br />
<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>Name "main::file" used only once: possible typo at ./linkextor.pl line 17.</code></div></div>
<br />
Sarà che sono stanco, sarà che sto capendo male , ma non riesco a farlo andare.<br />
Va bene così (come idea, deve solo estrarre i link di determinati tag da tutte le pagine html contenute in una cartella) ?<br />
Dov'è l'errore?<br />
<br />
Thanks in advance]]></description>
			<content:encoded><![CDATA[<a href="http://nessuno.gotdns.org/no_paste/?id=126&amp;line=1" target="_blank">http://nessuno.gotdns.org/no_paste/?id=126&line=1</a><br />
<br />
<div class="codeblock">
<div class="title">Codice:<br />
</div><div class="body" dir="ltr"><code>Name "main::file" used only once: possible typo at ./linkextor.pl line 17.</code></div></div>
<br />
Sarà che sono stanco, sarà che sto capendo male , ma non riesco a farlo andare.<br />
Va bene così (come idea, deve solo estrarre i link di determinati tag da tutte le pagine html contenute in una cartella) ?<br />
Dov'è l'errore?<br />
<br />
Thanks in advance]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Programmazione concorrente.]]></title>
			<link>http://www.infernet.ws/showthread.php?tid=16705</link>
			<pubDate>Mon, 08 Mar 2010 03:54:48 +0100</pubDate>
			<guid isPermaLink="false">http://www.infernet.ws/showthread.php?tid=16705</guid>
			<description><![CDATA[Per caso qualcuno di voi ha in mente un buon libro che tratti primariamente la programmazione concorrente? Possibilmente non legando troppo ai sistemi operativi e prendendo come esempio linguaggi diversi dal java (o, se presente il java, che non sia proprio il punto di riferimento).<br />
<br />
Per la lingua, indifferentemente inglese o italiano.<br />
<br />
EDIT: vale la pena specificare: ho già visto diverse possibilità e letto diversi trafiletti, cerco semmai qualcuno che ne abbia letti uno o più, e che sappia quindi darmi un feedback diretto ^^]]></description>
			<content:encoded><![CDATA[Per caso qualcuno di voi ha in mente un buon libro che tratti primariamente la programmazione concorrente? Possibilmente non legando troppo ai sistemi operativi e prendendo come esempio linguaggi diversi dal java (o, se presente il java, che non sia proprio il punto di riferimento).<br />
<br />
Per la lingua, indifferentemente inglese o italiano.<br />
<br />
EDIT: vale la pena specificare: ho già visto diverse possibilità e letto diversi trafiletti, cerco semmai qualcuno che ne abbia letti uno o più, e che sappia quindi darmi un feedback diretto ^^]]></content:encoded>
		</item>
	</channel>
</rss>