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)
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
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.....
<div class='codemain' style='height:200px;white-space:pre;overflow:auto'>//>>> Anti-Fincan&constCode folgt - muss aber von euch angepasst werden, ich nutze eben meine modinternen Funktionen:
Header:
<div class='codetop'>CODE
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
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
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
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?!
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
cya
JvA