Blog von eddy14 » Programmierung /41yd.de/blog "I am the master of this computer, for me the gates will open" -c0mrade Tue, 26 Jul 2011 00:30:44 +0000 en hourly 1 http://wordpress.org/?v=3.2.1 YouPandora /41yd.de/blog/2009/01/03/youpandora/ /41yd.de/blog/2009/01/03/youpandora/#comments Sat, 03 Jan 2009 01:49:28 +0000 eddy14 /41yd.de/blog/?p=167 Meine neueste Errungenschaft: Ein Programm, welches Youtube-User freezed und somit verhindert, dass dieser sich einloggen kann; je nach verwendung sogar lebenslänglich :)

Vorgeschichte:

Von langeweile geplagt hingen ich und Hann!bal wieder im Netz rum und überlegten uns was wir diesmal wieder hacken. Ein bisschen rumgetrödelt, bisschen gehacked und da kam uns die Idee eines XSS Wurms. Eins auf Youtube wäre cool dachten ich mir! Also gingen wir beide auf die Webseite los und wollten Vulnerabilities suchen die uns unsere Machenschaften erleichtern sollten.

Ich tippe also www.youtube.com in den Browser und möchte mich einloggen. Benutzername eingetippselt, aber Passwort vergessen :(

Nach ein paar Fehlversuchen meint Youtube plötzlich: Du hast zu oft vergeblich versucht, dich anzumelden. Bei einem weiteren fehlgeschlagenen Versuch wird dein Konto eventuell vorübergehend gesperrt.

Oh Gott. Wollten sie wirklich den Benutzer sperren, und nicht die IP die versucht sich dort fälchlicherweise anzumelden? Wenn dem so wäre, könnte man glatt den alten MSN Freezer im neuen Glanz wieder beleben, diesmal für Youtube :P (ja ich weiß, das Tool war lame, aber das Prinzip war brilliant).

Also ein paar mal mehr versucht mich unter falschen Daten anzumelden, und Youtube meldete sich mit:

Du hast zu oft vergeblich versucht, dich anzumelden. Bitte warte einen Moment, bevor du es erneut versuchst.

Und tada, mein Account war wirklich ein paar Minuten gesperrt. Um ganz sicher zu gehen bat ich Hann!bal sich in meinem Account anzumelden, aber ihn ereilte die gleiche Meldung. Also war eines sicher: Das war eine ziemlich kleine, aber lustige “Sicherheits”lücke.

Wir fingen beide an zu coden. Ich in Ruby, er in Perl. Fertig waren 2 Scripte, die uns ermöglichen jeden Benutzer von Youtube lebenslang zu sperren :D Möglich ist das, weil zwar der Benutzer nach ein paar Minuten freigeschaltet wird, aber das Script dann wieder versucht sich falsch anzumelden.

Hier kriegt ihr meinen und sowohl Hann!bals script:

YouPandora&YouFreeze

]]>
/41yd.de/blog/2009/01/03/youpandora/feed/ 8
Vegan-Crypter (*.exe Crypter) Release /41yd.de/blog/2008/11/03/vegan-crypter-exe-crypter-release/ /41yd.de/blog/2008/11/03/vegan-crypter-exe-crypter-release/#comments Mon, 03 Nov 2008 14:20:51 +0000 eddy14 /41yd.de/blog/?p=137 Nicht lange ist es her, dass ich wieder mit Delphi gearbeitet habe … ich hatte eine PE-Library erstellt um auf die interne Struktur einer PE-Datei (Portable Executable => exen, dlls etc.) zuzugreiffen.

Zum testen der Funktionstüchtigkeit der Library hab ich ein paar kleine Programme erstellt. Unter anderem einen Delphi-Port meines “One-Eye PE-Crypter“s, der nun “Vegan-Crypter” heißt und einen Export-Viewer, womit man die Exports einer EXE (oder eher DLL) Datei einsehen kann. Außerdem hab ich ein Tutorial darüber geschrieben, wie man (theoretisch) einen Crypter dieser Art programmieren könnte.

Vegan-Crypter:

Vegan-Crypter 0.7 Screenshot

Export-Viewer:

Export-Viewer Screenshot

Es ist nicht viel, und noch lange nicht aus der Alpha raus, aber man kann es schon verwenden um mal ein Preview auf die kommenden Features zu haben. Also, was bietet meine Pe-Bibliothek?

Ihr könnt auf Eigenschaften der Datei zugreiffen (die Signaturen, Adressen, Sections usw.) und diese verändern. Ganz nach dem Delphi Prinzip braucht ihr nur “PeFormat.LoadFromFile(datei,exe)” aufrufen, und die Library ladet alles für euch. Einfach ein paar Änderungen an der Datei machen und wieder per SaveToFile abspeichern. So einfach ist das :)

Für mehr Infos, schaut einfach in den Export-Viewer (dieser ist einfach und zeigt die Grundfunktionalität der Library).

Dann gibt es noch etwas erwähnenswertes: Beide Programme sind OpenSource. Der Crypter und der Viewer sind unter der GPL wobei die Pe-Unit Public-Domain ist.

Also, dann mal viel Spaß mit diesem Release, und wartet erstmal das Endprodukt ab (samt die Dokumentation über die Library, mit vielen Beispielen) …

:)

Download:

Vegan-Crypter
Eddys PE-File Export-Viewer

Have fun :)

]]>
/41yd.de/blog/2008/11/03/vegan-crypter-exe-crypter-release/feed/ 4
Coding a Crypter /41yd.de/blog/2008/09/29/coding-a-crypter/ /41yd.de/blog/2008/09/29/coding-a-crypter/#comments Mon, 29 Sep 2008 21:47:25 +0000 eddy14 /41yd.de/blog/?p=136 Es ist soweit. Ich habe mein Tutorial über PE-Crypter zuende geschrieben :) Es ist bisschen dürftig ausgefallen, weil ich nur einen Tag hatte um daran zu schreiben.

Hier ist es.

Viel Spaß beim lesen :)

btw, arbeite ich seit 2 Wochen an einer Pe-Library für Delphi (und vermutlich als DLL für andere Sprachen, dank born2die’s idee =) ) welches fast fertig ist! Es kann schon sehr viel :) Zur Demonstration der Fähigkeiten der Library hab ich damit meinen “One-Eye Pe-Crypter” portiert, und ein paar kleine Programme wie Import-/Export Viewer geschrieben. Mehr Infos dazu gibt es später, Morgen oder Übermorgen.

]]>
/41yd.de/blog/2008/09/29/coding-a-crypter/feed/ 4
Crypter >> Neue Version (0.85) /41yd.de/blog/2008/06/18/crypter-neue-version-085/ /41yd.de/blog/2008/06/18/crypter-neue-version-085/#comments Wed, 18 Jun 2008 19:50:13 +0000 eddy14 /41yd.de/blog/?p=130 Es war mir mal wieder langweilig.
Also entschied ich mich zu 3 Sachen, die alle eng miteinander verbunden sind:

1.) VMWare installieren und Windows drauf
2.) Meinen One Eye – PE-Crypter verbessern
3.) Ein Paper darüber schreiben

Die ersten beiden Punkte hab ich bewältigt (AntiWPA ftw!). Nun bin ich bei dem letzten Punkt. Ich veröffentliche hier nun aber erstmal den Crypter. Diesmal wieder ohne Source-Code (ist noch unreif <- wirklich sorry), aber ich verspreche, das liefere ich spätestens mit dem Tutorial nach! Allerdings wird das Tutorial nicht so sehr praktisch sein, sondern mehr theoretisch, also wie man so einen Crypter coden kann, was es eigentlich macht usw. Hab bemerkt, dass aus dem API-Crypting Tutorial einige die Source-Codes einfach kopiert hatten :(
Außerdem hätte ich nicht so viel über das Format gelernt, wenn mir jemand am Anfang meiner Lernerei so ein Tutorial angeboten hätte :)

http://rapidshare.com/files/123402747/one-eye-0_85.rar (mein Hoster erlaubt temporär keine Downloads, deswegen RS, sorry)

Verbessert wurde der Absturz, den es verursacht hat, als es ohne Argumente aufgerufen wurde.
Außerdem sollte der “No section with code”-Error nicht mehr auftauchen, hab die Erkennungsroutine abgeändert und verbessert.

Es gibt noch einiges zu tun. Ich werde den Stub ein wenig erneuern. Eventuell erstelle ich mehrere, von denen man im Programm selbst dann die jeweilige auswählen kann. Dann werde ich eine kleine PE-Include Datei schreiben (eventuell eine Klasse, werde dann wohl C++ benutzen müssen) welches automatisch die ganze Datei einliest, und die Werte den jeweiligen Beschriftungen und Variablen zuordnet. Außerdem muss ich den Variablentyp wechseln, den ich in meinem Source benutzt habe. Es war bis jetztein “unsigned char” Array, hab aber von f0Gx erfahren, dass tatsächlich DWORD, WORD etc. existieren :)

]]>
/41yd.de/blog/2008/06/18/crypter-neue-version-085/feed/ 0
One Eye – PE Crypter /41yd.de/blog/2008/03/10/one-eye-pe-crypter/ /41yd.de/blog/2008/03/10/one-eye-pe-crypter/#comments Mon, 10 Mar 2008 14:50:42 +0000 eddy14 /41yd.de/blog/?p=118 Die Tage verstreichen, die Arbeiten stehen an und die Osterferien nahen (erinnert mich irgendwie an die letzte News auf robsite.de, lebt der Typ überhaupt noch?), und ich hab nichts weiter zu tun als das PE-Format zu studieren! :)
Ich hatte schon vor einer Weile mit Delphi angefangen einen Crypter zu programmieren. Doch mit der Zeit kommt die Erfahrung :)
Diesmal hab ichs in C versucht, und nach meinen mehrere Nächte langen Reverse Engineering Machenschaften hatte ich genug Erfahrung in diesem Bereich (und speziell im Manual Unpacking Bereich), und letzendlich gelang es mir, einen fähigen Crypter zu coden :)
Die Stub ist gerade mal 24 Bytes groß, der Crypter um die 25KB. Es macht nichts weiter als den ganzen Code zu XORen und die stub XORed es halt “zurück” :)
Der Name des Crypters ist “One Eye” (lange Geschichte ^^) und befindet sich hier zum Download! Die aktuelle Version ist 0.8…

DOWNLOAD
MIRROR

Reported mir bitte alle Bugs (per Kommentar, per Messenger, oder halt per Mail, wie ihr wollt) und Feature-Requests!

Features:
- Cryptet EXE Dateien (bei den DLLs weiß ich noch nicht so recht, hab mich damit noch nicht intensiv beschäftigt)
- Es wird natürlich Runtime sowie Scantime Undetected (für beide Fälle werde ich noch ein Tutorial schreiben)
- Es gibt keine GUI, alles findet auf der Konsole statt (wisst ihr wie abgefuckt es ist in Windows ne GUI zu proggen? Oder besser gesagt: Allgemein die GUI Programmierung? Da sag ich: Ne danke!)
- Vollkommen Open-Source (entweder unter der GPL oder der BSD-Lizenz, bin mir noch nicht sicher; der Source kommt später, mit dem Tutorial zusammen, weil man sonst den Code nicht versteht)

]]>
/41yd.de/blog/2008/03/10/one-eye-pe-crypter/feed/ 3
Neues Tutorial: API-Crypting /41yd.de/blog/2008/03/03/neues-tutorial-api-crypting/ /41yd.de/blog/2008/03/03/neues-tutorial-api-crypting/#comments Mon, 03 Mar 2008 20:50:36 +0000 eddy14 /41yd.de/blog/?p=117 Ich hab heute ein neues Tutorial geschrieben (das Thema wollte ich ohne hin schonmal durcharbeiten). Es handelt sich um das Verschleiern von WinAPI Aufrufen, sodass viele Heuristische Scan-Methoden von Antivirus Programmen beim Suchen nach gewissen Mustern fehlschlagen.
Bin gerade fertig geworden, und bitte, gebt mir Kritik und Verbesserungsvorschläge, es ist sehr wahrscheinlich dass irgendein mehr oder weniger peinlicher Fehler im Tutorial ist :)

Das Tutorial wird im ersten EZine von Netplayazz auftauchen (Jaaa, Netplayazz ist wieder online :P )
Viel spaß beim lesen :)

API-Crypting Tutorial vom 03.03.2008

]]>
/41yd.de/blog/2008/03/03/neues-tutorial-api-crypting/feed/ 0
Meine 2D Engine => EdJin /41yd.de/blog/2008/02/15/meine-2d-engine-edjin/ /41yd.de/blog/2008/02/15/meine-2d-engine-edjin/#comments Fri, 15 Feb 2008 12:54:43 +0000 eddy14 /41yd.de/blog/?p=113 Hey guys :P
Seitdem mein Praktikum zuende ist und ich wieder diese Woche viel Freizeit hatte, habe ich mich motiviert mein Traum von einer Spiele-Engine zu verwirklichen. Ich arbeite seit ca. 4 Tagen dran und habe erst heute schöne Fortschritte gemacht :)
Ich benutze dafür SDL und eventuell implementiere ich noch die Physik Engine “Box2D” mit hinein die ja unter der zlib Lizenz steht, was für mich so viel heißt wie: Kompatibel mit der GPL :)
Es hat leider noch keine klare Struktur, ich will aber trotzdem nicht “drauf-los-programmieren” wie ich es fast immer tue. Heute hatte ich z.B. ein paar Ideen um die Programmierung mit meiner Engine einfacher zu gestalten. Es sollte so wenig Code wie möglich brauchen :)
z.B. muss man keine FPS Regelung einbauen oder eine Schleife welches die Tastatur-Eingaben entgegen nimmt. Ersteres übernimmt die Engine bei dem Aufruf Game.finished() (welches gleichzeitig die Main-Loop ausmacht) und letzteres wird mit meinem Event-Handler bearbeitet. Man kann einem Objekt Events “attachen” und “detachen” welches automatisch beim Aufruf von Objekt.refresh() ausgeführt wird (welches gleichzeitig die Anzeige auf dem Bildschirm erneuert).
Der Code ist zurzeit nur ca. ~500 Zeilen groß und (wie ich finde) ziemlich übersichtlich mit schönen Kommentaren :D
So sieht z.B. meine derzeitige Main aus:

EdGame Game(SDL_INIT_EVERYTHING, 640, 480, 32, SDL_HWSURFACE|SDL_DOUBLEBUF, 40, “EdJin Test”);
EdImage testball(Game.screen,”testball.bmp”, 100, 100);
Uint8 *Keys;

int main(int argc, char *argv[])
{

//Attach events to this object:
testball.AttachEvent(KBD_UP, image_up);
testball.AttachEvent(KBD_DOWN, image_down);
testball.AttachEvent(KBD_RIGHT, image_right);
testball.AttachEvent(KBD_LEFT, image_left);

while(!Game.finished())
{
//Main-Loop starts here! :)

//Event-Loop (until all events are handled)
while(Game.GetEvent())
{
switch(Game.CurrentEvent.type)
{
case SDL_QUIT: // User or System wants to quit the Game
Game.finish();
exit(0);
break;
}
}

testball.refresh();
SDL_Flip(Game.screen);

}

return 0;
}

Per attach sag ich ihm dass ich den Event “KBD_UP” (welches für “Keyboard UP”, also die Pfeilhoch-Taste auf der Tastatur, steht) an dieses objekt binden möchte. Und immer wenn dieses Event auftritt (der User drückt auf diese Taste) dann wird die Funktion image_up aufgerufen (das ist ein Pointer auf die jeweilige Funktion).

void image_up(void)
{
if(testball.y > 10)
testball.y -= 10;
}

void image_down(void)
{
testball.y += 10;
}

void image_right(void)
{
testball.x += 10;
}

void image_left(void)
{
if(testball.x > 10)
testball.x -= 10;
}

So könnten diese Funktionen aussehen.
Das sieht doch ganz schick aus oder? :)

]]>
/41yd.de/blog/2008/02/15/meine-2d-engine-edjin/feed/ 2
dlam – Datenbank /41yd.de/blog/2007/11/20/dlam-datenbank/ /41yd.de/blog/2007/11/20/dlam-datenbank/#comments Tue, 20 Nov 2007 23:10:38 +0000 eddy14 /41yd.de/blog/?p=97 Ihr habt sicher schon vom dl.am Problem gehört. Da fiel mir ein, mal ein kleines Script zu schreiben dass mir schnell ermöglicht wieder meine dl.am Adressen besuchen zu können!
Es enstand das hier : /41yd.de/dlam/
Ich finde irgendwie, es ist mir noch durch die letze Quick-URL Idee gelungen, die DB schnell Zugreiffbar zu machen. Wenn man den auf der Seite erwähnten Link als Favouriten speichert oder in die Leiste unter der Adressbar von Firefox “zieht”, kann man den Link mit einem Klick aufrufen. Dabei erscheint eine kleine Inputbox wo man schnell die gewünschte URL eingeben kann, um auf die Seite weitergeleitet zu werdne, die man sich wünscht!
Helft mir bitte die Datenbank zu füllen, ich hab bis jetzt nur 72 Einträge.
Der Dank für die ganzen URLs geht an board.gulli.com und http://www.dl.am-index.de.vu/ von 5cr4v3ng3r

]]>
/41yd.de/blog/2007/11/20/dlam-datenbank/feed/ 0
PE Format! /41yd.de/blog/2007/11/08/pe-format/ /41yd.de/blog/2007/11/08/pe-format/#comments Thu, 08 Nov 2007 18:21:57 +0000 eddy14 /41yd.de/blog/?p=93 Hey Leute :)
Da ich mich schon seit geraumer Zeit mit Manual Unpacking beschäftige und generell mit dem Reverse Engineering, hab ich mich sehr für das PE Format interessiert. Das _muss_ jeder Reverser der unter Windows arbeitet wohl kennen. Aufjedenfall hatte ich lange Zeit Probleme damit die Tutorials über das PE Format zu verstehen. Jetzt gehts irgendwie =)
War bei mir komischerweise immer so, dass ich etwas zuerst garnicht verstanden hatte und nach einiger Zeit & Erfahrung gings aufeinmal =)
Naja, jetzt hab ich lange genug mit dem DOS Header herumexperimentiert. Das Programm in Delphi das ich geschrieben habe, hat sich dann so weit entwickelt dass man damit auslesen kann ob es sich bei einer Datei um eine gültige EXE Datei handelt =)

Hier ist es!

Nun werd ich mich weiter damit beschäftigen und dann wohl so ein PE Tool Dingen schreiben =)

]]>
/41yd.de/blog/2007/11/08/pe-format/feed/ 0
Rubedka – Erster offizieller Release /41yd.de/blog/2007/09/11/rubedka-erster-offizieller-release/ /41yd.de/blog/2007/09/11/rubedka-erster-offizieller-release/#comments Tue, 11 Sep 2007 16:51:11 +0000 eddy14 /41yd.de/blog/?p=84 So,

nach ca. 1-2 Wochen (?) Arbeit ist unser erster Release von Rubedka fertig. Es hat noch einige (eher kleinere) Bugs, aber man kann es schon in dieser Version effektiv nutzen =)
Einfach mal einen Cronjob drauf setzen, und unnötige Einträge auf dem PC entfernen, regelmäßig!
Hier bekommt ihr es:
http://rubyforge.org/projects/rubedka/
Viel Spaß … wer den Easteregg findet, bekommt einen Keks von mir! ^^

]]>
/41yd.de/blog/2007/09/11/rubedka-erster-offizieller-release/feed/ 0