Sub Menu
Suche

Last Online
In order to view the online list you have to be registered and logged in.



We are a free and open
community, all are welcome.

Click here to Register

Leechererkennung

BeitragAuthor: JvA » Fr 7. Nov 2008, 15:51

Erstmal danke für den Song... ich steh auf die Mucke - wer noch mehr will: http://www.keygenmusic.net/
Ich hör das irgendwie gern, v.a. beim Coden (jaja ich bin krank) Bild

sind wir das nicht alle? @stulle: "hirnsausen"....

Ich starte so Dinger net gern auf meinem System und hab immo auch keine Lust mir mit Sandbox, Wireshark & Co das neue System zuzumüllen... aber als erster Anlauf isses ja net schlecht, die Anzahl der Hashes spricht ja Bände Bild

naja ich mein wenn das prog was böses macht, dann muss ich halt meinen rechner wieder neu aufsetzen....schade drum....ich mach mir da nie großartig stress....weil im endeffekt isses nur nen emule-mod.....wenn die macher da was schlechtes reinproggen würden sie alle ihre nutzer verlieren.....

Code folgt - muss aber von euch angepasst werden, ich nutze eben meine modinternen Funktionen:
Header:
<div class='codetop'>CODE
<div class='codemain' style='height:200px;white-space:pre;overflow:auto'>//>>> Anti-Fincan&const
public:
bool IsBadHash(const uchar* hash) const;
bool LoadBadHashLists();
//<<< Anti-Fincan&const</div>
Source:
Code: Alles auswählen
#include "Friend.h" //>>> Anti-Fincan&Co
...
//>>> Anti-Fincan&Co
   LoadBadHashLists();
   if(!m_badHashList.IsEmpty())
      theApp.QueueCommLogLineEx(LOG_SUCCESS, L"*** AntiLeech: loaded %u userhash filters", m_badHashList.GetCount());
//<<< Anti-Fincan&Co
...
//>>> Anti-Fincan&Co
   if(IsBadHash(client->GetUserHash()))
      client->Ban(L"Bad Userhash", BA_BANKNOWN);   
//<<< Anti-Fincan&Co      
...
//>>> Anti-Fincan&Co
bool CAntiLeechChecker::IsBadHash(const uchar* hash) const
{
   if(hash == NULL)
      return false;

   const CString strHash = md4str(hash);
   return m_badHashList.Find(strHash) != NULL;
}

bool CAntiLeechChecker::LoadBadHashLists()
{
   m_badHashList.RemoveAll();

   const CString strURLs[] = {
      L"http://www.emulefuture.de/forum/redirect.php?url=http%3A%2F%2Fwww.e-sipa.biz%2Ffincan%2Femfriends.met"
   };

   for(int i = 0; i != _countof(strURLs); ++i)
   {
      const CString strURL = strURLs[i];
      if (strURL.IsEmpty() || strURL.Find(L"://") == -1)   // not a valid URL
      {
         AddLogLine(true, GetResString(IDS_INVALIDURL));
         continue;
      }

      CString strTempFilename;
      strTempFilename.Format(L"%stemp-%d-emfriends.met", thePrefs.GetMuleDirectory(EMULE_CONFIGDIR), ::GetTickCount());
      if(!DownloadFromURLToFile(strURL, strTempFilename, false))
         continue;

      CSafeBufferedFile file;
      CFileException fexp;
      if (!file.Open(strTempFilename, CFile::modeRead | CFile::osSequentialScan | CFile::typeBinary | CFile::shareDenyWrite, &fexp))
      {
         if (fexp.m_cause != CFileException::fileNotFound)
         {
            CString strError(GetResString(IDS_ERR_READEMFRIENDS));
            TCHAR szError[MAX_CFEXP_ERRORMSG];
            if (fexp.GetErrorMessage(szError, _countof(szError)))
               strError.AppendFormat(L" - %s", szError);
            LogError(LOG_STATUSBAR, L"%s", strError);            
         }
         continue;
      }

      try
      {
         uint8 header = file.ReadUInt8();
         if (header != MET_HEADER)
         {
            file.Close();
            continue;
         }
         UINT nRecordsNumber = file.ReadUInt32();
         for (UINT i = 0; i < nRecordsNumber; ++i)
         {
            CFriend* Record = new CFriend();
            Record->LoadFromFile(&file);
            if(Record->HasUserhash())
            {
               const CString strHash = md4str(Record->m_abyUserhash);
               if(!m_badHashList.Find(strHash))
                  m_badHashList.AddTail(strHash);
            }
            delete Record;
         }
         file.Close();
      }
      catch(CFileException* error)
      {
         if (error->m_cause == CFileException::endOfFile)
         {
            LogError(LOG_STATUSBAR,GetResString(IDS_ERR_EMFRIENDSINVALID));
         }
         else
         {
            TCHAR buffer[MAX_CFEXP_ERRORMSG];
            error->GetErrorMessage(buffer, _countof(buffer));
            LogError(LOG_STATUSBAR,GetResString(IDS_ERR_READEMFRIENDS),buffer);
         }
         error->Delete();
         continue;
      }

      _tremove(strTempFilename);
   }
   return !m_badHashList.IsEmpty();
}
//<<< Anti-Fincan&Co
[/quote]
super danke. ich würde sagen der erste kleine erfolg.


Wie habt ihr den Hash geprüft? IM Mod oder habt ihr nur nachgesehen ob euer Hash sich offensichtlich ändert? Bei meinem letzten Test war es nämlich so dass der AJ den Hash INTERN geändert hat (z.B. erstellt er einen zweiten den er versendet während der "normale" überall angezeigt wird). Eine "gute" Erkennung läuft über den Weg:
  • Initial Check (und ich nehme weiterhin an dass das über den Hash läuft) ob jemand zur Comm gehören könnte
  • Handshake (o.g. Packet mit besonderem Inhalt, erst wenn der korrekt ist gehört man WIRKLICH zur Comm)

wir haben es nicht über den internen anzeige weg geprüft sondern über den der bei der gegenstelle angezeigt wird.

Ich dachte seine .exe wäre gecrypted? Nun, wie dem auch sei... wenn du via Hexeditor die Strings auslesen kannst solltest du auch die Opcodes sehen können, die müssten im Prinzip ja direkt dahinter stehen weil das Defines sind.

k.a. warum der mir das anzeigt. ich hab das ganze allerdings nur über die im programm sogenannte stringliste ausgelesen....aber auch sonst scheint man mit dem tool nen anständigen assambler code zu bekommen. ich schau nochmal.....

Naja gut, also bringt das vorerst nichts... aber zur Not könnten wir ja auch gegen den FlashGet vorgehen - gemeinsam sind wir stark Bild
Ich bin mir aber nicht sicher ob der gegen die GPL verstösst... und ansonsten wäre es ja "legal" wie beim Hydranode, ePlus usw.?

naja wir könnten gemeinsam alle drecksleecher durchgehen und schauen ob sie von der dlp+ erkannt werden. wenn ja können wir ebenfalls versuchen sie zu erkennen. wir könnten aber auch dem macher solange auf den sack gehen bis er den quellcode schickt.......ich persönlich finde die idee mit dem auf den sack gehen grandios Bild

Naja KAD muss er immer laufen haben weil er sie für sein ganzes KAD-Zeug (Credits, Toplist) benötigt.

nur warum kann ich dann sobald ich einen aj-node gefunden habe mich wieder vom kad trennen? das macht doch keinen sinn.

Naja das ist ja schonmal interessant.... wieso krieg ich die dann immer? Simuliert mein Mod unbewusst nen AJ?! Bild

ich werd nochmal genau nachschauen ob das wirklich der opcode war denn wenn dann könnte man den ja schon einfach mal mit bannen.

das wars erstmal von mir....geh dann mal arbeiten Bild

cya
JvA
Bild

JvA
Stammgast
 
Beiträge: 426
Registriert: Mi 11. Jan 2006, 10:41
Wohnort: Arsch der Welt

BeitragAuthor: Tuxman » Fr 7. Nov 2008, 18:53

Ich schnei mal rein:

nur warum kann ich dann sobald ich einen aj-node gefunden habe mich wieder vom kad trennen? das macht doch keinen sinn.

Vermutung:
AJ fragt die AJ-Nodes, nicht die KAD-Nodes ab.

Vermutung:
Kad ist /immer/ an, damit keiner versehentlich dreckelige Server nutzt. Wäre nun indes die Perspektive der newbiefreundlichen Modder.

Ich schnei mal wieder raus.
Ein intelligenter Mensch ist manchmal gezwungen, sich zu betrinken, um Zeit mit Narren zu verbringen.
(E. Hemingway)
Benutzeravatar
Tuxman
Forenlegende
 
Beiträge: 4184
Registriert: Sa 8. Jan 2005, 02:16

BeitragAuthor: JvA » Fr 7. Nov 2008, 19:50

nicht wieder hinausschneien.....wir brauchen hier jeden.....jeder kleine hinweis kann zu lösung führen.....umso mehr sich damit beschäftigen umso näher kommen wir unserem ziel.

ich hatte gestern ein sehr eigenartiges verhalten mit dem aj. ich hatte noch eine ewig alte nodes.dat im config dir und hab den aj gestartet. er hat auch files beim suchen gefunden und hat mir auch genügend quellen gegeben. nur beim abfragen dieser blieben alle quellen auf "connecting" hängen und nix ging voran. ich hab das mehrmals mit dieser nodes.dat versucht aber immer das gleiche ergebnis. als ich hingegen die nodes.dat mitm x-ray verwendet habe gabs keine probleme. keine ahnung ob das irgendwas damit zu tun hat.

auf jeden fall denke ich nicht das ekliptor nur nutzerfreundlich sein will. ich denke da steckt mehr dahinter. die nodes.dat wird zum einen mitgeliefert (wahrscheinlich enthält sie schon sehr viele aj-nodes). wenn man eine andere nodes.dat als die von den aj-machern verwendet wird ein automatischer dl in gang gesetzt der die aj-nodes dat von deren servern läd. man kann die verbindung zu kad nicht trennen solange man nicht einer aj-node begegnet ist.
irgendwas ist da entschieden faul. stulle hatte mir gestern abend seine vermutung per icq dargelegt die einer der schlimmsten szenarien darstellt und dennoch sehr wahrscheinlich ist. @stulle: du kannst es besser formulieren als ich. ich würde dich bitten nochmal zu erklären was in deinem hirn diesbezüglich gespeichert ist Bild

zu tuxmans post nochmal: das er nur die aj-nodes abfragt ist unwahrscheinlich, denn wie gesagt. ich hatte mit großer wahrscheinlichkeit gesgern in dieser ewig alten nodes.dat keinen aj-node drin denn auch beim laden meinte er das kein aj-node vorhanden wäre. den dl habe ich irgendwie umgangen.....aber anscheinend braucht er eine aj-node-connection um richtig funktionieren zu können.

cya
JvA
Bild

JvA
Stammgast
 
Beiträge: 426
Registriert: Mi 11. Jan 2006, 10:41
Wohnort: Arsch der Welt

BeitragAuthor: Tuxman » Fr 7. Nov 2008, 20:05

Du kannst dich aber vom KAD trennen, weil das AJ-Netz auf Wunsch komplett eigenständig zu funktionieren in der Lage zu sein scheint.
Oder reden wir aneinander vorbei?
Ein intelligenter Mensch ist manchmal gezwungen, sich zu betrinken, um Zeit mit Narren zu verbringen.
(E. Hemingway)
Benutzeravatar
Tuxman
Forenlegende
 
Beiträge: 4184
Registriert: Sa 8. Jan 2005, 02:16

BeitragAuthor: WiZaRd » Fr 7. Nov 2008, 20:48

Mein Tipp ist: er versucht zunächst evtl. gespeicherte Credits zu finden, danach braucht er die Verbindung (vorerst) nicht mehr.
Bild

... 9 von 10 Stimmen im meinem Kopf sagen ich bin nicht verrückt... - die 10te summt die Melodie von TETRIS
Benutzeravatar
WiZaRd
Forenlegende
 
Beiträge: 3805
Registriert: Fr 7. Jan 2005, 19:28
Wohnort: The Realm of Magic

BeitragAuthor: Stulle » Fr 7. Nov 2008, 21:33

naja, also mein worst case scenario sieht so aus, dass der aj sich über das kad identifiziert. quasi wird im aj-kad gespeichert wer aj ist und diese info wird dann abgefragt. somit ist es eine indirekte identifizierung, die schwierig zu knacken ist.
auf die idee gekommen bin ich bei den tests mit jva, bei denen ich mal den aj angeschmissen habe. was problematisch war, war dass der aj zu erst nicht von "connecting" runter gehen wollte bei den gefundenen quellen. ich bin mir ziemlich sicher, dass er erst rücksprache mit dem aj-kad halten wollte. nun ja, damit ein client überhaupt in das aj-kad kommt muss er sich sicherlich verräterisch dem anderen gegenüber vorstellen. das ließe sich vielleicht auch noch erkennen, aber damit ist vielleicht einer geschützt, der rest des netzwerks aber nicht. nun, es gibt zwei dinge zu bedenken dabei. zum einen natürlich, dass die mod in diesem scenario sich nicht direkt zu erkennen gibt, wenn sie uns als normaler download/ upload client begegnet. zum anderen heißt es aber auch, dass der aufwand einer identifizierung die komplette emulierung des aj-kads vorraussetzen würde.
kurz um, es ist ein worst-case-scenario bei der wir ziemlich in der tinte sitzen.

was meine vermutung stützt ist die o.g. beobachtung mit dem connecten und der fakt, dass gezielt eine nodes.dat von deren seite gezogen wird. versucht man über ip:port zu bootstrappen geht es los. löscht man die adresse aus dem url feld taucht sie von selbst wieder auf. nur das verändern der adresse sorgt für ein fehlschlagen. daher denke ich, dass dort mindestens ein paar aj-kad clients in der nodes.dat sind, die dann als eingangspunkt benutzt werden.

Stulle
Forenlegende
 
Beiträge: 1014
Registriert: So 5. Feb 2006, 09:55

BeitragAuthor: WiZaRd » So 9. Nov 2008, 11:10

Ich hab mir mal ne kleine Ausgabe gebaut:

09.11.2008 09:34:28: ---> Commencing debug output...
Packet from 77.126.186.196 'Wild Pathfinder' (eMule v0.49b [Esiiimzo 9.2],Connected/None/None) rec via XS (Hash: CD4F99FFED0E77816794ED45F37B6F19)
Tag 0: Tag0xAB="TitanDonkey RiP Special"
Tag 1: Tag0xBA="D86799C1F6E2B432E823FA30E84AF6C1"
Tag 2: Tag0xCA="B338E104F81C2DD33802BA9DAA0A934D"
09.11.2008 09:34:28: <--- debug output complete

09.11.2008 09:37:17: ---> Commencing debug output...
Packet from 77.127.143.20 'Wild WiZaRd' (eMule v0.49b [Atupijoqu 3.7],Connected/Banned/None) rec via XS (Hash: D8F35CC2E50EF8E3C60572E8E1046F1E)
Tag 0: Tag0xAB="TitanDonkey RiP Special"
Tag 1: Tag0xBA="479F878FD16D817CCC601EB67A0EF01F"
Tag 2: Tag0xCA="678B7156D51342E5D7A61940CE3EBD76"
09.11.2008 09:37:17: <--- debug output complete

09.11.2008 09:44:51: ---> Commencing debug output...
Packet from 87.68.89.134 'Slider [68EB4127]' (eMule v0.49b [Uourfahh 4.9],Connected/Banned/None) rec via XS (Hash: 1F5B2E23B00E6F4F558B770B9BF46F7C)
Tag 0: Tag0xAB="TitanDonkey RiP Special"
Tag 1: Tag0xBA="4BB57C580D44FB3B30243815ADA2BAEF"
Tag 2: Tag0xCA="2E06AC2900F3022E602280AF4F2F1C92"
09.11.2008 09:44:51: <--- debug output complete

09.11.2008 09:45:28: ---> Commencing debug output...
Packet from 1@0.0.0.0 (87.69.22.221) 'volume1 [7F17E4127]' (eMule v0.49b [Ibetaavp 4.5],Connected/Banned/None) rec via XS (Hash: A02498BB8F0EE02DCEF766047F2F6FCB)
Tag 0: Tag0xAB="TitanDonkey RiP Special"
Tag 1: Tag0xBA="4BB57C580D44FB3B30243815ADA2BAEF"
Tag 2: Tag0xCA="2E06AC2900F3022E602280AF4F2F1C92"
09.11.2008 09:45:28: <--- debug output complete

Ihr seht also dass meine Vermutung ziemlich hinhaut... was noch fehlt wäre der betreffende Filehash - der wird sicher auch mitgenutzt... ich frage mich allerdings warum ich diese Packets bekomme?
Bild

... 9 von 10 Stimmen im meinem Kopf sagen ich bin nicht verrückt... - die 10te summt die Melodie von TETRIS
Benutzeravatar
WiZaRd
Forenlegende
 
Beiträge: 3805
Registriert: Fr 7. Jan 2005, 19:28
Wohnort: The Realm of Magic

BeitragAuthor: Spike2 » So 9. Nov 2008, 13:58

Hmm....spiegelst Du vllt. deren Hash oder sowas ?
Der Haushalts-Tipp der Woche: Hähnchen bleiben länger frisch, wenn man sie einfach am Leben lässt!
Benutzeravatar
Spike2
Stammgast
 
Beiträge: 992
Registriert: Mi 11. Apr 2007, 00:49
Wohnort: Am Busen der Natur :)

BeitragAuthor: WiZaRd » So 9. Nov 2008, 14:15

Ich doch net Bild
Ne geht ja auch net wegen SUI, ansonsten würd ich schon... *g*
Bild

... 9 von 10 Stimmen im meinem Kopf sagen ich bin nicht verrückt... - die 10te summt die Melodie von TETRIS
Benutzeravatar
WiZaRd
Forenlegende
 
Beiträge: 3805
Registriert: Fr 7. Jan 2005, 19:28
Wohnort: The Realm of Magic

BeitragAuthor: JvA » So 9. Nov 2008, 17:22

sind die tags die dort bekommst eigentständige packets oder teile eines multipackets?
Bild

JvA
Stammgast
 
Beiträge: 426
Registriert: Mi 11. Jan 2006, 10:41
Wohnort: Arsch der Welt

VorherigeNächste

Zurück zu Entwicklung

Wer ist online?

Mitglieder: Google [Bot]

cron