PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [B] porndump.pl



Bonkers
01.02.2010, 20:58
Hey,
Einige von euch werden vielleicht iSteamy kennen, ein iPhone-App um Porno-Videos und Bilder anzusehen.
Ich hab mir das gecracked besorgt (Hat aber eh nicht richtig funktioniert) und war irgendwie interressiert woher das App seine Daten bezieht, zumal es ja kostenpflichtig ist.
Daher hab ich mal ein kleines Skript erstellt mit dem es möglich ist die komplette Bilder-Datenbank des Anbeiter zu dumpen (Nach vorheriger Angabe der Kategorie).
Mir ging es um den Spaß das App zu untersuchen, nicht darum irgendwelche Pornos zu laden, aber wenn man schonmal dabei ist ;)
Mein Perl-Stil reicht wahrscheinlich nicht an das mancher Member ran, aber was solls, hauptsache es funktioniert, das ist die Devise ;) Wenn euch was größeres Auffällt am Skript was ich beheben soll dann postet das bitte, auch Verkürzungen (Wenns sich lohnt) würde ich gerne wissen.
Wie auch immer, hier das Skript.



#!/usr/local/bin/perl
# porndump.pl <> Written by Bonkers.
use IO::Socket;
use strict;
use warnings;
our $solution;
our $pages;
our $cato;
our $packet;
sub enumpages {
my $socket = new IO::Socket::INET (
PeerAddr => 'www.isteamy.net',
PeerPort => '80',
Proto => 'tcp',
);
$packet = "GET /category2.php?catID=".$cato." HTTP/1.1\nHost: www.isteamy.net\nUser-Agent: iSteamy/3.2 CFNetwork/459 Darwin/10.0.0d3\nConnection: close\r\n\n";
print $socket $packet;
while(<$socket>)
{
$solution .= $_;
if ($solution =~ /database/) {
print "Database died... AGAIN!\n";
return 1;
$pages = "";}
}
my @splitto = split(/\n/, $solution);
$pages = $splitto[112];
$pages =~ s/\t<string>//;
$pages =~ s/<\/string>//;
return 0;
close($socket);
}
sub dumppage {
my $selec = shift;
my $socket = new IO::Socket::INET (
PeerAddr => 'www.isteamy.net',
PeerPort => '80',
Proto => 'tcp',
);
$packet = "GET /category2.php?catID=".$cato."&page=".$selec." HTTP/1.1\nHost: www.isteamy.net\nUser-Agent: iSteamy/3.2 CFNetwork/459 Darwin/10.0.0d3\nConnection: close\r\n\n";
print $socket $packet;
while(<$socket>)
{
my $test = $_;
if ($test =~ /<string><\!/ && $test =~ /\.jpg/) {
$test =~ s/<string><\!\[CDATA\[//;
$test =~ s/\]\]><\/string>//;
print "Initiated Download of ".$test."\n";
system('wget --user-agent="iSteamy/3.2 CFNetwork/459 Darwin/10.0.0d3" http://www.isteamy.net/Media/Pictures/'.$test);
}
if ($test =~ /database/) {
return 1; }
}}
print ("Please select your Categorie! Just enter the Number of your desired Cat.");
print ("\n\n[56] Amateurs\n[36] Anal\n[41] Anime\n[2] Asian\n[3] Asses\n[4] BBW\n[5] BDSM\n[1] Blondes\n[33] BlowJobs\n[53] Body Art\n[6] Boobs\n[7] Brunettes\n[48] Calendars\n[54] Camel Toe\n[8] Celebs\n[29] Cleavage\n[34] Cocks\n[57] Comics\n[32] Couples\n[43] Drawings\n[9] Ebony\n[10] Fetish\n[11] Hairy\n[50] In] Public\n[12] Latina\n[13] Lesbian\n[14] Lingerie\n[15] Mature\n[51] Misc\n[28] Non-Nude\n[49] Old Fashion Panties\n[17] Orgy\n[42] Other\n[18] Panties\n[19] Pantyhose\n[20] Pregnant\n[30] Pussy\n[21] Redhead\n[31] Sexy\n[22] Shemale\n[23] Teens (18+ ONLY)\n[24] Uniforms\n[25] Unusual\n[58] Upskirt\n[26] Voyeur\n\n\n");
print "Your Selection: ";
$cato = <STDIN>;
$cato =~ s/\n//;
my $fff = 1;
while ($fff != 0) {
$solution = "";
$fff = enumpages();
}
print "Pages found: ".$pages."\n";
for (my $count = ($pages - 1); $count >= 1; $count--) {
print "#----------------------------------------NOW DUMPING PAGE ".$count."-----------------\n";
while (dumppage($count) != 0) {}
}

Volumen
01.02.2010, 21:09
Wie hast du das App untersucht? Benutzt du Mac?

kalachnikov
01.02.2010, 21:51
Also bei mir kommt beim wählen der Kategorien während des downloads ein Fehler
"Der Befehl wget ist entweder falsch geschrieben oder konnte nicht gefunden werden"

2.) Wohin werden die Bilder gespeichert? Kann jetzt vom Code aus nix erkennen wohin das heruntergeladene hin soll

blubbblubb
01.02.2010, 22:19
ich entschuldige mich schonmal falls die Frage dumm ist, aber ist das script jetzt zum ausführen auf dem PC gedacht?

ich bekomm beim ausführen den selben fehler wie kalachnikov

LuLu-X
01.02.2010, 23:27
"Der Befehl wget ist entweder falsch geschrieben oder konnte nicht gefunden werden"



Wget ist das Programm womit er die Bilder läd.
Wget – Wikipedia --> sollte auch unter Windows laufen, installierts euch, dann läuft das Progg.

Zur Frage wohin er die Daten speichert:
In den Ordner wo ihr das Perl-Skripte gespeichert habt/Von wo ihr das Perl-Skript ausführt.

@TE: Nett nachgeschrieben ^.^

proofed
02.02.2010, 09:00
Sehr schönes Script.

Ihr müsst wget erst installieren und dann zu der PATH Umgebungsvariable hinzufügen, oder das Script so abändern, dass ihr den vollen Pfadnamen angebt.

Wie hast du die Infos eigentlich gesnifft?

(http://www.cafepress.com/isteamy omg >.< Kinderbekleidung)

proofed

Bonkers
02.02.2010, 21:14
Hey,
Ich hab das so gedumped:


[root@ultraBox ~]# ettercap -T -i eth1 -M ARP /192.168.0.101/ // >> test.txt

Damit wird der Traffic auf euren Rechner umgeleitet und ihr könnt ganz bequem den gesamten Traffic des iPhones sehen.

Zum Thema wget: Ich bin ja hier unter Linux (uhhh) und da ist wget natürlich Standart, hab jetzt nicht daran gedacht dass ihr das unter Windows eventuell garnicht installiert habt ;)
Wollte mich jetzt auch nicht zu einer Lösung mit mehr Modulen hinreißen lassen, die hättet ihr dann ja auch installieren müssen.


Benutzt du Mac?

Haha ;)

BTW: Es gibt auch ne Möglichkeit eine Shell auf den Server zu laden, aber mehr verrate ich nicht ;) Das App hat einen "Upload-Knopf", mit dem ihr natürlich NUR Bilder hochladen könnt. *hust*

blubbblubb
02.02.2010, 22:14
funzt super das script, nachdem ich dann auch wget installiert hatte *schäm*


Aber wie siehts mit den Videos aus, kommt man da auch ran? Weil die Bilder sind ja auch langweilig ;)

Asmo
02.02.2010, 22:27
Für die die das Script unter Windows nutzen wollen, es gibt
auch eine version von wget für windows ;) ihr müstet dan halt nur
überall ne anpassung im Script machen wo wget genutzt würd *Den Pfard zu wget hinzufügen*

Dan solte es auch unter Windows Funsen.

Ein nettes Script!

lg
Asmo

kalachnikov
03.02.2010, 13:35
wusste nicht, dass man unter windows wget installieren muss..bin davon ausgegangen, dass es schon integriert ist wie es bei Liux der fall ist. Es funktioniert alles, tolles script!
Noch ne frage, Perl ist net so ganz meine vertraute Sprache, aber wo kann man denn den Download Pfad bestimmen? ider geht es nicht?
Script liegt in ../Desktop/dump/ , die Bilder werden allerdings auf dem Desktop abgelegt..
Kann man das ändern?

cTPu1bjo
03.02.2010, 13:57
Wieso nimmst du Perl wenn du Function Calls wie system() benutzt? Das ist nicht nur total unsauber sondern auch absolut überflüssig, wenn du schon was mit Sockets machst.
Perl ist nicht dazu da um externe Tools wie wget zu wrappen... Programmier sowas lieber in Bash ...

Bonkers
03.02.2010, 15:56
Hatte ich erst auch vor, aber war mir dann doch zu umständlich noch auf Bash umzusteigen. Ich hatte ja ursprünglich nichtmal vorher überhaupt was zu scripten.
Videos kannst du übrigens auch dumpen, ist kein Problem. Wenn jemand interesse hat schreibe ich das kurz um ;)

newkaiza
03.02.2010, 16:11
Ich bezieh mich da auch auf h0yt3rs aussage ...
den http request hätteste einfach mit LWP(UserAgent) machen können, genauso wie das mit dem WGET, wofür benutzt du wget?
Den Useragent kannst du auch in perl angeben, das ist kein problem
bsp:
my $b = LWP::UserAgent->new(agent => 'whatever');

Einfach nur mal ein bisschen lesen, wenn ich die tage mal zeit hab überarbeite ichs vllcht, (langeweile vorrausgesetzt)

blubbblubb
03.02.2010, 19:07
naja ich dachte mein post zählt schon als interesse an den videos, vllt auch ne Abfrage am anfang einbauen, dann brauch man nicht 2 scripts

Bonkers
04.02.2010, 14:11
@blubb{2,} Ich code das dann neu mit ner Auswahl, allein schon um das mit LWP mal auszuprobieren.
@hoyter und newkaiza, Danke für den Hinweis.

Soo...

Neues Skript, mögen Hoyter und co es mal bewerten ;)
Hab mir Mühe gegeben es so professionell wie möglich zu gestalten...

http://nopaste.info/6b430e2fbe.html

Viel Spaß!

kalachnikov
06.02.2010, 12:42
"has too many errors"
Script wird nicht gestartet..
Braucht man irgendwie besondere Libaries? Wieso hast du das net mit wget gemacht?

Bonkers
06.02.2010, 12:53
Nimm mal strict raus, bei mir funktioniert es auf 2 Systemen perfekt.

kalachnikov
06.02.2010, 13:02
Scalar found where operator expected at line 10, near "10. $|"
(Missing operator before $|?)

Number found where operator expected at line 16, near "16."
(Missing semicolon on previous line?)

Bareword found where operator expected at l line 16, near "16. header
(Missing operator before header?)

Scalar found where operator expected at line 19, near "19. $cat"
(Missing operator before $cat?)

Scalar found where operator expected at line 20, near "20. $cat"
(Missing operator before $cat?)

Vielleicht hilft dir das weiter..

Bonkers
06.02.2010, 20:19
Kann ich leider überhaupt nicht nachvollziehen.
Haste auch richtig kopiert? :)

kalachnikov
06.02.2010, 21:09
danke für den Hinweis...hat sich erledigt!

blubbblubb
07.02.2010, 19:06
funzt bei mir auch super, nochmal nen fettes danke, aber beides in einem script ist nicht möglich? sry kenn mich da nicht aus, aber ne simple abfrage sollte doch möglich sein oder?

Bonkers
11.02.2010, 13:56
Och, dumpe doch einfach die Videos und dann die Bilder oder andersherum... Klar ginge das in 1 Skript, aber eigentlich bin ich nicht davon ausgegangen dass jemand wirklich die Porno-DB dumpen wollen würde :) Es gibt doch genug "alternative" Seiten, sogar mit Thumbs und so ;)

blubbblubb
11.02.2010, 14:43
ja klar, hab auch nicht vor alles zu dumpen, aber warum 2 scripte wenn auch eins geht ^^

Wenn ich etwas mache möchte ich immer das es möglichst kompakt und perfekt ist, daher der Vorschlag, musst du natürlich nicht, werden wohl eh die wenigstens auf dauer nutzen, vor allem da die meisten videos und bilder doch eher bescheiden sind ;)