                         #                    
                        ###                   
                       ## ##                  
                      ### ###                 
                     ###   ###                
               ######################         
              ########################        
               ###  ###    ####  ####         
                ## ###      ### ####          
                 #####      #######           
         ###     ######     ######   ###      
        ######  ########   #######  #######   
       ######   ######### #########  #######  
      #####    ####  ######### #####    ####  
      #####   #####   #######   #####   ####  
       ###########     #####     ###########  
        #########       ##        #########   
         #####                      #####
            ---exarp v1.2 - by unnex---

          ---visit: http://blacknet.me---

            ---visit: http://unnex.de---

...
der hilfetext befindet sich im unteren teil dieser notice.txt
...

---v0.2a beinhaltet---
[x] lokale einstellungen zur ip und port
----------------------

---v0.3 beinhaltet---
[x] boundary transfer
----------------------

---v0.3a beinhaltet---
[x] kastierung der ausgabe um extra ausgaben
wie werbung etc. zu umgehen.
----------------------

---v0.3b beinhaltet---
[x] falsche button anzeige bei leerer user
agent angabe korrigiert.
[x] stop moeglichkeit des programms
hinzugefuegt.
----------------------

---v0.3c beinhaltet---
[x] fehlerbehebung bei boundary formular
[x] fehlerbehebung bei x-fach zeilenumbruch
in download.
----------------------

---v0.3d beinhaltet---
[x] stabilisierungsbutton zum schnellen beheben
des festfahren des sockettunnels und zum uebergehen
von zu langen ladezeiten hinzugefuegt.
[x] meldung "cant understand header data. please
use 5 or more chars in your header data." beim
abbrechen des programms entfernt.
----------------------

---v0.3e beinhaltet---
[x] stabilisierungsbutton automatisiert.
er reagiert nun automatisch wenn es noetig ist.
fuer besondere notfaelle wurde der button dennoch
beibehalten. die automatisierung kann nun zeitlich
eingestellt werden ueber den config button. die
dort angegebene zeit in sekunden beschreibt die
wartezeit die das programm abwartet bei fehlerhaften
verbindungen (standart: 5).
----------------------

---v0.4 beinhaltet---
[x] file_get_contents hinzugefuegt. moechten sie
file_get_contents anstatt curl nutzen dann setzen
sie ein "yes" bei: $filegety="no";. wenn "no"
gesetzt ist wird automatisch curl genutzt.
----------------------

---v0.4a beinhaltet---
[x] traffic anzeige verfeinert (beschleunigt und
intensiviert).
[x] stabilitaet des exarp-tunnels erheblich verbessert!
----------------------

---v0.4b beinhaltet---
[x] eine kurze interne informationsadresse (info.exarp)
wurde hinzugefuegt. natuerlich auch individuell ein zu
stellen unter: $eaddx="info.exarp";.
[x] leichter transparenzeffekt beim oeffnen und schliesen
des propgramms hinzugefuegt.
----------------------

---v0.5 beinhaltet---
[x] ein credits button wurde hinzugefuegt.
[x] option zum anlegen von logfiles wurde hinzugefuegt.
diese findet man unter der option "local config". das
logfile wird dann immer im selben ordner wie exarp als
log.txt erstellt und genutzt.
---------------------

---v0.6 beinhaltet---
[x] es wurde ein http-header modul hinzugfuegt zur livetime
bearbeitung des traffics. ein kurzes wort zur handhabung findet
sich natuerlich auch hier in dieser notice.txt.
---------------------

---v0.6a beinhaltet---
[x]stabilitaet des tunnels weiter verbessert.
[x]fehler des ok buttons der "local config" nach nutzung
des header moduls behoben.
[x]kleinere anomalien bei der behandlung von verschiedenartigen
zeilenumbruechen in post angaben behoben.
----------------------

---v0.6b beinhaltet---
[x]kleinere kodierungsoptimierungen
----------------------

---v0.6c beinhaltet---
[x]die groee des prgrammfensters wurde geaendert auf 500x220
[x]individuelle user-agent angabe wurde mit einer auswahlliste
von eingespeicherten agenten erweitert.
[x]korrektur bei angabe von user-agent strings mit 0 zeichen
hinzugefuegt.
----------------------

---v0.7 beinhaltet----
[x]aes-256 verschluesselung hinzugefuegt. der traffic des
tunnels kann nun mit einem selbst zu waehlenden passwort
verschleusselt werden. (diese verschluesselung kann im gegensatz zu ssl
mittels eine man in the middle attack (+arp spoof etc.) nicht umgangen
werden!) fuer weitere infos zur nutzung der
versechluesselung, bitte die hilfe im unteren teil dieser
notice.txt lesen!
----------------------

---v0.8 beinhaltet----
[x]fsock function hinzugefuegt.
[x]geschwindigkeit unter nutzung von file_get_contents
erheblich verbessert.
[x]ladefehler der letzten version (0.7) bei unverschluesseltem
file_get_contents tunnel behoben.
[x]aes-passwort kann nun auch nach erstellen eines tunnels
ohne neustart des programms abgeaendert werden.
[x]stabilitaet des verschluesselten tunnels geringfuefig
optimiert.
----------------------

---v0.9 beinhaltet----
[x]intranet hinzugefuegt. es kann nun schnell, einfach und sicher ein intranet
fuer den exarp tunnel eingerichtet werden. (weitere infos dazu im hilfetext in
dieser notice.txt)
[x]traymenue zum verstecken des fensters im trayicon hinzugefuegt
[x]gzip encoding fehler beo fsock behoben
----------------------

---v0.9a beinhaltet----
[x]die tunnelung von https traffic wurde hinzuegfuegt. das besuchen von https
adressen ist unter verwendung von curl und file_get_contents moeglich. (weitere
infos zur nutzung und arbeitsweise bitte am ende der notice.txt entnehmen)
----------------------

---v1.0 beinhaltet----
[x]es wurde die moeglichkeit hinzugefuegt verschiedene user-profile in exarp zu
speichern (weitere infos im hilfebereich der notice.txt).
[x]der icon des compilierten programms hat sich geaendert.
[x]die fertige exe wurde nun mit au3.3.8.1 erstellt, nicht mehr mit 3.3.6.1.
[x]die geschwindigkeit des surfens im verschluesselten modus wurde um ~101%
erhoet & traffic verbrauch im verschluesselten modus wurde erheblich verringert.
----------------------

---v1.1 beinhaltet----
[x]"stop and go"-tamper zur sektion "set new header" im header-modul hinzugefuegt (weitere infos im hilfebereich der notice.txt).
[x]suchfunktion/filter zur zum headerlog hinzugefuegt (weitere infos im hilfebereich der notice.txt).
[x]ladeanzeige zum bereich des headerlogs hinzugefuegt.
[x]ruby version hinzugefuegt (konsolenbasiert: kein headertool etc.). diese version ist wesentlich schneller, kann jeh nach
system unzaehlige connections gleichzeitig verarbeiten usw.. informationen bitte gegen ende dieser notice.txt entnehmen
----------------------

---v1.2 beinhaltet----
[x] ruby-version: geringfuegige protocol violation bei veschluesseltem tunnel behoben.
[x] ruby-version: option zum erstellen von logfiles hinzugefuegt
----------------------

--->compiled with autoit: 3.3.8.1

thread & download zum programm:
https://new-crew.net/showthread.php?tid=416
---

v1.0 fuer http und https handlungen.

config *.php:
$pw="anypw"; = trage dein passwort ein

usage: addr/*.php?p=yourpw

                    ---hilfe---
bsp video (exarp v0.2):
http://www.file-upload.net/download-4328283/exarp02.rar.html

first runs video (exarp v0.0):
http://www.file-upload.net/download-4328282/a98sdpt5atp7v.rar.html

youtube:
http://www.youtube.com/watch?v=7UyY6yk6hrc = bsp video (exarp v0.2)

http://www.youtube.com/watch?v=0OTKEaDDTXw = first runs video (exarp v0.0)

------------------------------kurze anleitung zur nutzung von exarp------------------------------
1: downloaden sie das programm unter: https://new-crew.net/showthread.php?tid=416
dort finden sie immer die aktuellste version. bitte seien sie mit externen
downloadquellen vorsichtig!

2: entpacken sie die rar/zip datei und laden sie exarp.php auf ihren webspace hoch.
jeh nachdem welche funktionen ihr server unterstuetzt waehlen sie curl oder
file_get_contents zum surfen via exarp. ein zu stellen unter (exarp.php):
$filegety="no";//method: no=curl, yes=file_get_contents.

3: nun muss ein passwort gesetzt werden. damit sie sicher stellen koennen, dass
nur sie den exarp-tunnel nutzen koennen (exarp.php): $pw="anypw";//link-password
im beispiel heist das passwort "anypw".

4: starten sie nun exarp.exe und tragen sie ihren exarp-link ein.
wenn ihre exarp.php zb. hier liegt: http://seite.xx/proxy/exarp.php
und ihr passwort "anypw" ist dann wuerde ihr exarp-link so aussehen:
http://seite.xx/proxy/exarp.php?p=anypw. tragen sie ihren individuellen
link bitte im programm ein bei "Link (PHP-File)".

5: zu guter letzt starten sie das programm mit einem klick auf "start".
ihr exarp ist nun vollstaendig konfiguriert und kann in ihr proxy programm
eingetragen werden (standart: 127.0.0.1:80).
anmerkung: aenderungen wie zb. die tunneladresse koennen mit "local config"
oder "profile" vorgenommen werden. tragen sie dort zb. anstatt 127.0.0.1 eine
ihrer ausgehenden adressen ein um den tunnel auch ueber das internet fuer
aussenstehende oder ihre freunde frei zu schalten
(bsp: 192.168.178.?? - (port im router freischalten)) usw...

um ihren neuen exarp-tunnel zb. im firefox nutzen zu koennen gehen sie folgendermasen
vor: extras>einstellungen>erweitert>netzwerk>einstellungen. waehlen sie nun
"Manuelle Proxy-Konfiguration" und tragen sie ip sowie port bei "HTTP-Proxy" ein.
die ip ist wie gesagt im standart 127.0.0.1 und der port standartmaesig 80.

---weiteres---

---header modul---
...noch ein wort zum header modul. der neue header wird dann ausgefuehrt wenn der
browser einen neuen aufruf, egal wohin startet. moechten sie also einen manipulierten
header nutzen dann tragen sie diesen im unteren eingabefeld des header moduls ein und
klicken sie dann auf "set new header". nun erhaelt der button den vermerkt "(saved)".
anschliessend koennen sie ihre seite einefach neu aufrufen, reloaden oder auch eine
andere adresse aufrufen. das programm wird automatisch den von ihnen eingetragenen
header einschluessen und als erstes ausfuehren.

---traffic verschluesseln---
...nutzung der traffic verschluesselung. hierzu gehen sie auf den button "local config"
und geben nun dort unter "---aes password---" das gewuenschte passwort ein. sobald
der exarp tunnel gestartet wurde kann das passwort nicht mehr editiert werden. damit
client und server beidermaen die nachrichten entschluesseln und verschluesseln koennen,
muss dementprechend auch bei der jeweiligen php-datei von exarp das gewaehlte aes-passwort
gesetzt werden. dieses passwort kann bei $key="Test-123";//aes-password eingetragen
werden. sobald client und server das selbe aes-passwort eingetragen bekommen haben
kann der exarp-link um ein "&c" erweitert werden. sobald dieser string als echter
parameter und bloer text "&c" erkenntbar ist, startet exarp den tunnel im
verschluesselten modus. bsp: http://0.0.0.0/exarp.php?p=anypw&c
zur information des nutzers erscheint dann bei einer verschluesselten verbindung beim
stop-button hinter dem stop ein "(secure)" ...zur internen testadresse "info.exarp"
wurde ebenfalls eine informtaion zum verschluesselungsstatus des traffics eingefuegt.
(die maximale laenge des aes-passworts betraegt 32 zeichen)

---intranet---
zur erstellung des exarp eigenen intranets bedarf es nur wenige einfache schritte.
zuerst erstellt man einen ordner mit dem namen des intranets. in unserem beispiel
wird dieser ordner und somit das intranet "exarp-intranet" heisen. nun setzen
wir in der exarp.php die noetigen einstellungen. bei $intrafolder gehoert der
intranetname rein also somit auch der ordner zum intranet. dieser heist im beispiel
wie gesagt "exarp-intranet". anschliesend setzen wir den hostname des netzwerkes.
dieser ist der hostname des exarplinks. also zb bei der adresse 127.0.0.1 koennte
der hostname "localhost", oder falls kein hostname gesetzt ist natuerlich einfach
die ip "127.0.0.1". anschlieend muss nur noch der link zum intranet eingetragen
werden. dieser koennte nun wiederum so aussehen "http://127.0.0.1/exarp-intranet".
die komplette intranet einstellung koennte sich nun also wie folgt gestalten:
$intrafolder="exarp-intranet";//local intranetfolder
$intrahost="www.unnex.de";//intranet host
$intralink="http://www.unnex.de/exarp-intranet";//intranet link

sobald wir nun also den intranetordner erstellelt haben und die neotigen eintraege
in der exarp phpdatei gemacht haben koennen wir auch schon adressen fuers lokale
netzwerk anlegen. hierfuer erstellen wir einfach im intranetordner einen weiteren
ordner mit dem name der jeweiligen adresse. ein ordner dieser art koennte nun also
zb. "www.website.x", "website.x" heisen. und innerhalb dieses ordners wiederum
erstellen wir eine "exarp-dummy.txt" mit dem inhalt "intranet". Sobald alle diese
einstellungen und manahme erledigt wurden ist das intranet auch schon einsatzbereit.
beim besuch einer website prueft exarp nun zunaechst ob im intranetordner ein ordner
mit dem namen der aufzurufenden website existiert und ob dieser ordner wiederum eine
"exarp-dummy.txt" mit dem inhalt "intranet" enthaelt. wenn alle pruefungen fehler
verliefen ruft exarp nicht die echte website auf sondern die des internets. das
adressefeld des browsers bleibt dabei im uebrigen unveraendert. es zeigt also ohne
anmerkungen die aufgerufene domain dar, allerdings wird diese nicht den content der
echten domain liefern sondern den der intranetadresse. ...um eine intranetadresse
mit content zu fuellen speichert man wie bei einem normalen webspace einfach dateien
in ihrem ordner. also wenn zb. der ordner "./exarp-intranet/www.website.x/" eine
"index.html" mit dem inhalt "<html>test :-)</html>" enthaelt dann wird der nutzer
beim aufruf der adresse www.website.x auch genau diese ausgabe bekommen und nicht
jene ausgabe die vllt. die echte website www.website.x ausgeben wuerde.

zu guter letzt fehlt nun nur noch der schutz des intranets vor dem internet!
und um das intranet vor aussenstehenden zu schuetzen setzen wir schlicht und
einfach eine .htaccess datei direkt im intranet ordner zb. "./exarp-intranet/.htaccess".
der inhalt dieser .htaccess wiederum koennte so aussehen:
<Files *>
Order deny,allow
Deny from All
Allow from 255.255.255.255
Allow from 127.0.0.1
Allow from 192.168
</Files>

...der sinn des ganzen ist folgender: mithilfe der .htaccess ipsperre erlauben
wir schlicht und einfach nur von uns festgelegtena adressen den zugriff auf
die ordner und dateien des intranets. in beispiel. waeren die die typischen
lokaladressen 255.255.255.255, 127.0.0.1 und 192.168.*.*. die exarp phpdatei
stellt dabei logischerweise die einzige moeglichkeit dar den intranetordner
mittels einer lokalen adresse auf zu rufen. man kann hier also ganz einfach
eine lokale adresse oder falls noetig, die adresse des servers selbst angeben
um sein intranet vor aussenstehenden zu schuetzen und somit nur den zugriff
ueber den server und somit den exarp tunnel zu erlauben.

hier noch ein beispielvideo zum aufsetzen des intranets (download):
http://www.file-upload.net/download-7683398/exarp-intranet_bsp.rar.html
oder: http://www.xup.in/dl,97105231/exarp-intranet_bsp.rar/

---https---
mit dem anhaengen des parameters "h" an das ende des exarplinks wird der https
tunnel genutzt. das script ersetzt dann alle http adressen mit https.
dementsprechend kann bei aktiviertem https tunnel eine https adresse als http
aufgerufen werden. wenn sie zb. google besuchen und dort zb. der ausgehende
link https://mail.google.com/mail/?tab=wm angeboten wird, dann wuerde dieser
mit aktivierten https tunnel so aussehen: http://mail.google.com/mail/?tab=wm.
beim besuchen des links wird dann im browser die http adresse angezeigt, wobei
exarp in wirklichkeit die https adressen besucht hat. eine perfekte weiterleitung
von https traffic ist hier natuerluch nicht moeglich, deshalb diser kleine umweg.
fuer den nutzer allerdings aendert sich hierdurch nicht. es wird ihm lediglich
im browser die jeweilige adresse als http und nicht als https angezeigt (cookies
werden dabei ebenfalls von secure zu httponly). im https modus werden alle
adressen via https abegrufen. eine adresse die die nur http anbietet ist demnach
nicht im https modus abrufbar. um wieder normale http adressen zu besuchen muss
der https modus wieder ausgeschaltet werden. der link fuer den https modus koennte
zb so aussehen: http://seite.xx/proxy/exarp.php?p=anypw&h
sobald der https modus active ist wird "(https)" im start/stop button angezeigt.
die gleichzeitige nutzung des https modus und der exarp eigenen verschluesselung
ist natuerlich moeglich zb.: http://anothersite.xx/proxy/exarp.php?p=anypw&c&h
download bsp. video: http://www.file-upload.net/download-8005676/https-exarp.rar.html
oder: http://www.xup.in/dl,83081964/https-exarp.rar/

---profile---
um verschiedene profile zu verwenden klicken sie einfach auf den button "profiles".
dort befindet sich das jeweils aktuell genutzte profil sowie 3 weitere profilplaetze.
in diesen 3 weiteren profilplaetzen koennen sie neue profile anlegen und diese in das
aktuelle progamm einfliesen lassen. mit einem klick auf "Apply" wird das jeweilige profil
dann gespeichert, wobei die aktuellen eingaben im programm denen des eben gespeicherten
profiles automatisch angepasst werden. ...der rest der propfilspeicherung verhaelt sich
dann wie gehabt, sobald man den tunnel mit "start" startet werden auch die eben gesetzten
daten fest in "profil 1" eingespeichert und somit beim naechsten start des programms
automatisch wieder eingesetzt..

---tamper-header---
der tamper header bietet den vorteil den header noch vor dem eigentlichen absenden des
selbigen zu analysieren und zu veraendern. anstatt also bei "set new header" fuer den
naechsten ankommen header einen neuen zu setzen der dann mit diesem ausgetauscht wird
kann man mit dem tamper-header die zu sendenden header direkt beim senden selbst
vorzeitig abfangen und fuer das eigentliche absenden veraendern. um den tamper-header
zu starten klickt man einfach beim headermodul unter dem button "set-new-header" auf
"start tamper". worauf sich dann bei jedem header der exarp passiert ein kleines fenster
oeffnet in dem der header angezeigt wird und veraendert werden kann. mit einem klick auf
"send" kann man diesen dann absenden, oder mit "stop tamper" den tamper anweisen nicht
mehr zu tampern, also ohne tamper das programm ganz normal weiter laufen zu lassen. im
uebrigen gilt der tamper nur dann als eingeschaltet wenn das headermodul goeffnet ist.
also das fenster des headermoduls offen ist.

---headerlog-filter---
der filter im headerlog filter immer das aktuell angezeigte log unter beachtung des
angegebenen suchstrings. wobei es ds log in vorm von teilen durchsucht. hierbei teilt die
suche den header in requests auf, also ausgehende und einkommende daten pro request geteilt.
es wird also immer der komplette request der jeweligen logstelle angezeigt. ...mit dem filter
buttons setzt mnan ein suchwort und solange das suchwort gesetzt ist wird das log automatisch
nach dem suchwrt gefiltert. entfernen kann man das suchwort dann wiederum indem man das suchfeld
leer macht und diese leere eingabe mit einem klick auf "filter" bestaetigt (suchwoerter werden
im fenstertitel des header moduls angezeigt wenn sich kein suchwort im titel befindet wird auch
nicht gefiltert).

---ruby-client---
die ruby version des clients ist anders als die exe version auf nichts anderes als geschwindigkeit zugeschnitten (hinzukommen kann man sie jetzt natuerlich
auch auf allen ruby faehigen systemen nutzen wie z.b. linux, mac os x, win). die ruby verison kann und macht dementprechend nur das noetigste. sie kann alles
"grundlegende" was das normale exarp auch kann: http & https surfen, traffic verschluesseln, individuelle server und clientinfos nutzen/verarbeiten...
aber extras wie zb. das header modul, curing beim tunnelcrash etc. hat die ruby version nicht.

screenshot: http://s7.directupload.net/images/140101/afdvv9mm.png

getestet mit folgenden eigenschaften:
system: windows 7 (sp1)
cpu: amd fx(tm)-4100 quad-core processor (3,6ghz)
ruby version: ruby 2.0.0p247 (2013-06-27) [i386-mingw32]
browser: firefox 25.0.1
verschluesselung: aes-256->base64
anbindung: dsl 6000
exap-link: lima-city.de

---test mit mehreren requests (aes-256->base64 (&c))---
domain: unnex.de (32 requests, insgesamt ~1,5mb)
ohne exarp: ~2 sec
exarp-exe: ~11-14 sec
exarp-ruby: ~3 sec

---test mit nur einem requets (aes-256->base64 (&c))---
domain: unnex.de (1,5mb)
ohne exarp: ~2 sec
exarp-exe: ~30 sec
exarp-ruby: ~4 sec

...ein typischer example koennte z.b. so aussehen:
ruby exarp.rb "http://kistega.lima-city.de/exarp.php?p=pw123&c" "exarp (ruby)" 127.0.0.1 80 1 "Test-123" 200 logfile.txt
wobei am anfang der exarp-link steht, danach der useragent und dann die ip des tunnels. darauf folgt der port des tunnels, aes-password.
sofern man die aes-vershcleusselung nutzt msus dieses passwort natuerlich mit dem in der php-datei angegebenen pw uebereinstimmten, wenn
man verschluessleung nicht nutzt aknn man selbstverstaendlich was man moechte, denn der key wird dann nicht benutzt. dann gibt man die
anzahl der threads an die das programm nutzen soll. hierbei steht jeder thread fuer eine moegliche gleichzeitige verbindung.
bei 200 threads kann das programm dementsperchend 200 connections gleichzeitig verwalten, bei 150 threads nur noch 150 connections,
bei 500 threads wiederum 500 verbindungen etc... zu letzt folgt dann die angabe der logdatei. gibt man hier das wort "no" an,
ist das speichern in eine logdatei ausgeschaltet.

---
greetz unnex
