[eMule-Web]

[eMule-Web] (http://www.emule-web.de/board/)
-   eMule MOD - Development (http://www.emule-web.de/board/emule-mod-development/)
-   -   MorphXT 6.4 Antileecher (http://www.emule-web.de/board/9342-morphxt-6-4-antileecher.html)

Borg-King 31. March 2005 08:03

MorphXT 6.4 Antileecher
 
Ja kann mir jemand helfen undzwar Suche ich nach einer Möglichkeit das Freunde hier:
In Baseclient.cpp

void CUpDownClient:: ProcessUnknownHelloTag(CTag *tag)

und hier:

void CUpDownClient:: ProcessUnknownInfoTag(CTag *tag)

nicht gebannt werden.Wie lässt sich das mit einer Ausnahme umgehen ohne es ganz rausnehmen zumüssen?

RasCas 31. March 2005 09:03

if freund
do nothing

if not freund
process hello tag
Oder habe ich jetzt was falsch verstanden?

cyrex2001 31. March 2005 09:03

hi,
machste einfach eine if-abfrage vor dem bann!
gruss, cyrex2001.

Borg-King 31. March 2005 20:26

Hallo

Vielen Dank für eure Vorschläge aber leider scheint es doch nicht so einfach zusein.Ich habe ja schon einiges ausprobiert.Egal was ich versuche,wenn sie nicht gebannt werden was jetzt geht, bleibt trotzdem der Score und die Bewertung auf 0 und ich bekomme sie nicht in den Upload.

@Cyrex 20001
Du bist doch sehr erfahren was das coden angeht,wie würdest Du das den lösen?

RasCas 1. April 2005 07:07

Poste doch einfach mal Deinen Code, wie Cyrex das lösen würde hat er doch bereits gepostet.

cyrex2001 1. April 2005 07:53

hallo,
Zitat:

if(IsFriend()!= true)
{
hier nun der morphban
}
gruss, cyrex2001

Borg-King 2. April 2005 02:01

Hallo

Danke Cyrex für das Codesnipsel aber
if(IsFriend()!= true)
{
hier nun der morphban
}
hatte ich auch schon probiert und funktionierte so auch nicht darum fragte ich ja.Dieser Ban lässt sich so nicht umgehen.Ich frage mich nur warum nicht!Hatte auch schon in Uploadclient in Funktion,BanLeecher und Ban ein If(IsFriend())
return;
Versucht aber nix greift.Ich habe es nur geschafft durch modifizieren von BanLeecher zuverhindern das sie gleich ganz gebannt werden.Es haben aber nachwievor alle 0 Score und werden dann im weiteren Verlauf doch gebannt.

Sieht jemand noch eine Lösung dieses Problems?

Stulle 2. April 2005 18:47

geht auch einfacher, sieh in meine sourcen rein^^

mfg stulle

ps: hab fast nix gelesen^^

Borg-King 3. April 2005 04:40

Zitat:

Zitat von Stulle
geht auch einfacher, sieh in meine sourcen rein^^

mfg stulle

ps: hab fast nix gelesen^^

Ja wie denn?!In dem ich Deinen gesamten Source nach einer möglichen Lösung für mich durchsuche,das geht dann einfacher für mich oder wie kann ich das verstehen?!
:rant
Sorry,wenn das obige etwas bösartig klingt.Also nix für ungut aber etwas genauer darfst Du schon werden,zumal ich schon sehr viel probiert und studiert habe das ich bald nicht mehr weiss was,wie und wo.
Denn meinst Du das :
bool CUpDownClient::Ban(LPCTSTR pszReason) //Sivka-Ban [cyrex2001] - Stulle
{
//start never ban friend - Stulle
if(IsFriend())
// return; // comented due to nesseccary changes caused by Sivka-Ban
return false;
//end never ban friend - Stulle

void CUpDownClient::BanLeecher(LPCTSTR pszReason){
//Start never ban friend - Stulle
if(IsFriend())
return;
//End never ban friend - Stulle

oder gar das:
// ==> Anti Uploader Ban - Stulle

Ich bin es leid alles durchzuprobieren und dann immer wieder feststellen zumüssen,das es so doch nicht geht.Die beiden ersten funktionieren nämlich nicht!Es werden alle Suspect Hello Tags gebannt.

Ich weiss keine Rat mehr,alles andere funktioniert Problemlos nur das will einfach nicht, das Freunde saugen dürfen die einen blöden Community :bang Muli verwenden.

Bliebe also rein theoretisch nur das letzt genannte aber das wäre ja nicht unbedingt einfacher.

Danke und Grüsse
ein ziemlich verzweiffelter
Borg-King

Stulle 3. April 2005 10:20

Da brauchst du doch nur mal die Augen aufmachen! Wenn du in das Changelog geschaut hättest, hättest du beide Sachen identifizieren können!
Anti Uploader Ban ist da um clients die Uploaden unter bestimmten Umständen einen Ban-Schutz zu gewähren. never ban friends ist doch wohl eigentl. selbst redend

MFG Stulle

Borg-King 3. April 2005 15:24

Nur wie oft soll ich das jetzt noch schreiben das,dass dort nicht greift und den Ban nicht verhindert!!Ist das so schwer zuverstehen oder schreibe ich so unverständlich?Ist doch eigentlich ersichtlich das ich mir zumindest die Mühe gemacht hatte das auszuprobieren,bevor ich etwas schreibe!

Stulle 3. April 2005 15:41

also ich wüßte nicht wo sonst der ban definiert wird, wenn nicht dort! Immerhin wird dort der client auf banned gesetzt. wenn ich allerdings vorher unterbreche ist er nicht banned! also vom logischen funktioniert es

mfg stulle

Borg-King 3. April 2005 15:58

Bloss sitze ich hier vor und sehe doch die Ergebnisse und die funktionieren praktisch leider nicht.
Banned: Suspect eMuleInfo-Tag: [md4] ;IP 'Haase [community-*****] [secretshadow] [C4U] Train [QhObZ]' (,None/None)

Funktioniert es denn bei dir?
Was gäbe es denn theoretisch für möglichkeiten warum es bei mir noch nicht funktionieren könnte?

Kann es sein das gewisse Änderungen beim compilieren unter gewissen Umständen nicht sauber eingebunden werden und das man nach jeder Änderung besser die ganze Anwendung neucompiliert?

[edit by Pathfinder: URL im Communitytag unkenntlich gemacht]

Stulle 3. April 2005 17:05

haha, da war der fehler doch schon! wenn du dir den code ansiehst wird überprüft ob der info-/hello-tag iO is und wenn nich soll gebannt werden. um zu bannen wird dann die fkt Ban oder BanLeecher gestartet, die aber durch den friendzusatz abgebrochen wird bevor es nen effekt hat!
oder is der client weg¿

mfg stulle

PS: ich verstehe den code zumindest so, bin aber selbst noch nich sonderlich geschlagen mit wissen bei c++ ...

Borg-King 3. April 2005 17:54

Ja der Client ist weg und wird trotzdem gebannt,zumindest im späteren Verlauf,da ich ihn erstmal kurzfristig halten kann durch das entfernen von if (socket != NULL && socket->IsConnected())
socket->ShutDown(SD_RECEIVE);

in Banleecher.Der Score bleibt aber auf 0 und verhindert den Zugang in den Upload.
Der Friendzusatz kann also warum auch immer das greifen der Funktion BanLeecher nicht verhindern,was mir auch sehr schleierhaft und unlogisch erscheint.Irgendwie greift die Funktion BanLeecher also früher bevor sie durch IsFriend ausgehebelt werden kann.Die Frage ist nur wo und warum.

habe schonmal überlegt bei der Übergabe der Tags in bool CUpDownClient::
ProcessHelloTypePacket(CSafeMemFile* data)

//<<< [SNAFU_V3] Check unknown tags !
if (!((temptag.GetNameID() & 0xF0)==0xF0))
ProcessUnknownHelloTag(&temptag);
//>>> [SNAFU_V3] Save unknown tags !
und
void CUpDownClient:: ProcessMuleInfoPacket(char* pachPacket, uint32 nSize)
//<<< [SNAFU_V3] Check unknown tags !
if (!((temptag.GetNameID() & 0xF0)==0xF0))
ProcessUnknownInfoTag(&temptag);
//>>> [SNAFU_V3] Check unknown tags !

anzusetzen bevor die tags übergeben werden an
void CUpDownClient:: ProcessUnknownHelloTag(CTag *tag)
und
void CUpDownClient:: ProcessUnknownInfoTag(CTag *tag)

Was meinst Du dazu?

Stulle 3. April 2005 17:57

kA was genau du nun meinst, aber versuch doch einfach die Tag-Abfrage zu blockieren indem du die fkt. beendest mit hilfe des tags bevor sie greift.

mfg stulle

Borg-King 3. April 2005 18:08

Beschränken wir uns mal darauf das der Client gebannt wird obwohl er ein Freund ist.Der Friendzusatz kann das also nicht verhindern.

Und jetzt verstehe ich dich nicht wirklich,mein Koprf ist derzeit dicht....

Stulle 3. April 2005 18:16

naja, wenn du das vergleichen der tags aufhältst indem du in der funktion wo verglichen wird die bremse einsetzt, so wird 100% niemand banned

MFG Stulle

Borg-King 3. April 2005 18:25

Verglichen wird ja nix es wird empfangen bzw erkannt in(//<<< [SNAFU_V3] Check unknown tags !) und übergeben an void CUpDownClient:: ProcessUnknownHelloTag(CTag *tag) und void CUpDownClient:: ProcessUnknownInfoTag(CTag *tag).Hier wird auch auf Banleecher zugegriffen aber selbst dort verhindert der Freindzusatz das bannen nicht.

Mir fällt derzeit nix ein wie ich das verhindern könnte,ohne das ich jeden Leecher in meinem Upload habe,mit Freunden könnte ich gerade noch so Leben.

Stulle 3. April 2005 18:37

Code:

        if (strSnafuTag!=NULL)
        {
                CString buffer;
                buffer.Format(_T("Suspect Hello-Tag: %s %s"), strSnafuTag, tag->GetFullInfo());
                BanLeecher(buffer);
        }

Davor wird das Tag entweder auf was anderes gesetzt oder bleibt auf NULL. setze davor einfach:
Code:

        if(IsFriend())
                return;

Nun wird die Funktion beendet bevor gebannt wird. Da dies aber wenig CPU freundlich ist, da er ja alles andere macht obwohl es unnütz ist, setze es lieber an den Anfang der Funktion. Sollte dann so aussehen (1 BSP.):
Code:

void CUpDownClient::ProcessUnknownHelloTag(CTag *tag)
{
        if(IsFriend())
                return;
[...]

Nun wird die Funktion unterbrochen bevor sie loslegt und zack wird SNAFU für Friends ausgehebelt

MFG Stulle

Borg-King 3. April 2005 18:52

Hmm dann sollte doch aber Cyrex sein Code das gleiche bewirken und wenn mich nicht alles täuscht hatte ich das was Du vorschlägst auch schon versucht...Bin mir aber nicht 100% sicher daher versuche ich das jetzt nochmal so bevor ich meckern tu!;)

Habe das mal jetzt so gemacht sollte doch das gleiche bewirken wie deines.
if (!thePrefs.GetEnableAntiLeecher() || IsLeecher() || IsFriend())
return;

Stulle 3. April 2005 19:16

jo. naja, die funktion arbeitet doch so. erst wird eine variable verändert so denn ein gewisser fall auftritt und dann wird geprüft ob sich die variable verändert hat und wenn es so ist, dann wird gebannt. davor sind halt schon die anderen beiden zusätze um ressourcen zu sparen. weil warum prüfen und verändern, wenn die doch eh schon gebannt sind oder das system abgeschaltet ist.

mfg stulle

PS: trotzdessen sollte es reichen es in die Ban dinger zu setzen. hab gerad nochmal mir den ganzen code angesehen von bannen usw. ich hab nix gefunden, was um die ban funktionen herum arbeitet...

Borg-King 4. April 2005 14:38

Hallo

Ich habe es jetzt nochmal so getestet wie von dir vorgeschlagen.Aber weiss der Geier warum,geht es so auch nicht.Das ist schon langsam suspect.

Banned: Suspect eMuleInfo-Tag: [md4] ;IP '[*******] dsl [XCS] [GSB] Train [373C7]' (,None/None)

Freunde werden trotzdem gebannt.

Stulle 4. April 2005 14:46

hast du das auch in den ban's eingefügt¿

ick versteh es auch nich wirkl, aber dann soll dein kolleg doch einfach nen konformen muli nehmen und feddig.
bzw schau mal nach wo die meldung überall produziert wird und setze dort gegebenenfalls auch noch ne friend-abfrage rein

mfg stulle

RasCas 4. April 2005 15:31

Nur so eine Idee, könnte es nicht sein, dass die Bans nicht aufgrund der Funktion durchgeführt werden, die Ihr hier besprecht, sondern z.B. aufgrund der snafu Implementierung?

Afaik sind doch mehrere Funktionen implementiert, die User bannen. :think

Stulle 4. April 2005 15:41

die funktionen von denen wir hier sprechen sind ja eben teil der snafu implementierung
darum auch der hinweis den ich zuletzt gab.

mfg stulle

RasCas 4. April 2005 15:49

Is Klar, aber es gibt ja auch noch den anderen Kram von IceCream etc. Habe allerdings nicht mehr im Kopf, ob da auch bans aufgrund falscher tags ausgesprochen werden. Der Morph war ja nicht umsonst als leecher Keule verschrien. ;-)

Borg-King 4. April 2005 21:21

Habe ja schon versucht die Herren davon zuüberzeugen,einen Regel konformen eMule zubenutzen aber da kämpfe ich gegen Windmühlen.Ist ja auch nicht nur einer.

Zu dem technischen Codekram.Suspect Hello Tags werden ja nur in Snafu ausgewertet und gebannt.ich habe nix weiter gefunden.Und ja ich habe den Friendzusatz auch noch in Uploadclient.cpp bei Funtion Ban und BanLeecher drin.

@Rascas
Ist ja kein falscher Tag sondern ein ausgewerteter Community Tag MD4,der von Snafu entdeckt wurde.

Ich wüsste nicht mehr wo ich noch suchen sollte,denn der Ban selber ist ja ganz deutlich.Was ausser der Code wäre denn noch denkbar an Fehlern die dazu führen könnten das es so nicht funzt bzw kann das mal jemand reproduzieren ob es bei euch auch nicht funzt,bitte?!

Stulle 4. April 2005 21:48

holzhammer methode fällt mir noch ein. du musst den kompletten weg von bans im code verfolgen und immer wenn was damit gemacht wird ne Freund-Abfrage rein kloppen. aber das is mehr als ressourcenunfreundlich und darum sollte es ja eigentl. schon in den bans reichen

mfg stulle

RasCas 5. April 2005 07:48

Zitat:

Zitat von Borg-King
@Rascas
Ist ja kein falscher Tag sondern ein ausgewerteter Community Tag MD4,der von Snafu entdeckt wurde.

Hm, wäre es da nicht am einfachsten diesen Communitytag aus Snafu raus zu nehmen?

Borg-King 5. April 2005 11:57

Zitat:

Zitat von RasCas
Hm, wäre es da nicht am einfachsten diesen Communitytag aus Snafu raus zu nehmen?

Ja das wäre es,aber dann steht jedem CommunityLeecher Tür und Tor offen und das geht dann doch etwas zuweit mit der Freundlichkeit.Obwohl einige ja schon wieder von MD4 weg sind,da es erkannt wird!Naja mal sehen was das noch wird.
;)

RasCas 5. April 2005 12:05

Kein Problem, einfach den AntiNickthief von Wizard rein.
Wenn Deine Kumpels allerdings auch einen nickthief einsetzen wird es wirklich kompliziert. ;-)

Stulle 5. April 2005 15:49

wieso das denn¿ du redest glaub atm bissn am thema vorbei. borg-king hat kumpels bei md4 ist aber selbst nicht dort, zumindest hab ich es so verstanden. und wie ich schon mehrfach sagte, der anti-friendban in den ban fkt. müsste in sich ausreichend sein.

mfg stulle

RasCas 5. April 2005 15:59

Wenn er md4 als bad community rausnimmt wird sie nicht mehr gebannt und somit auch nciht seine friends.

Ich war aber davon ausgegangen, dass er selber auch drin ist. Damit dies nicht gefakt wird, ist der antinickthief sehr effektiv.

Aber ich gebe Dir Recht, eigentlich sollte die if Abfrage reichen, aber er sagt ja, dass dem nicht so wäre. und solange er seinen Code nicht postet ...... können wir nur wild rumraten. ;)

Stulle 5. April 2005 16:13

zu dem rausnehmen sagte er aber bereits anfangs schon was. er mag keine leecher und will deswegen lediglich seine freunde vom ban ausschließen. nimmt er das tag raus ist es wie ein abschalten des systems, wenn auch nur für die community. somit schießt es über das gewünschte ziel wieder heraus.

mfg stulle

Borg-King 6. April 2005 00:41

Zitat:

Zitat von RasCas
Ich war aber davon ausgegangen, dass er selber auch drin ist. Damit dies nicht gefakt wird, ist der antinickthief sehr effektiv.

Aber ich gebe Dir Recht, eigentlich sollte die if Abfrage reichen, aber er sagt ja, dass dem nicht so wäre. und solange er seinen Code nicht postet ...... können wir nur wild rumraten. ;)

Nein,ich bin nicht drin in der Community.Den Code posten, welchen Code am besten noch den mit der MD4 Community oder Nity 3?!Hättest Du wohl gerne...
:mrgreen:

Aber mal im ernst:
Der Code ist der,von der originalen Morph 6.4!Ich habe nur überall dort wo Ban und BanLeecher vorkommt den Friendzusatz gesetzt und es funzt so nicht.

@Stulle und RasCas
Aber ihr werdet es kaum glauben ich habe es geschafft.Wenn ihr wüsstet wie daneben ihr/wir lagen würdet ihr euch wundern!Ihr dürft gerne mal raten wenn ihr Lust und Laune habt am Donnerstag gibt es dann die Auflösung;)

RasCas 6. April 2005 16:47

Zitat:

Zitat von Borg-King
Nein,ich bin nicht drin in der Community.Den Code posten, welchen Code am besten noch den mit der MD4 Community oder Nity 3?!Hättest Du wohl gerne...

Wofür? Es geht natürlich um den Code rund um den Ban, den Du verändert hast. Der funktionierte doch nach Deinen Angaben nicht.

An Deinen Leecherfeatures habe ich keinerlei Interesse. 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102