2008-12-14, 01:47
  #1
Medlem
RiddareRalfs avatar
Titel:
Godkväll kära flashbackare.

Förord:
Inspirerad av OnYs och seb-s tråd (https://www.flashback.org/showthread.php?t=443355 - Ventrilo-crack) så tycker jag att vi borde ta en titt på det, vi flashbackare tillsammans.
För tillfället finns det ingen crackad version ute och det är nog inte helt omöjligt att göra om det som OnY och seb-s gjorde tidigare, mycket är samma.

Översikt:
För tillfället har servern en cap på 8 personer vilket betyder att efter det så släpps det inte in fler. Exakt detta problem hade dom i den tidigare versionen.

Jag har setat och kollat på det här idag och kom fram till att det vore trevligt att ha någon att bolla idéerna med.
Hittills har jag lyckats med att få in 10 pers på servern.
9 utan problem, men när den 10:e disconnectar så blir det lite knas (vad vet jag inte riktigt men saker händer, dock så kraschar inget).
Det är bara reserverat minne för 9 platser, så man måste hitta en ny plats för arrayen med användarna.

Detta är vad som gjorts hittills:

Kod:
För user limit-spärren:
Ändrat CMPn på offseten 0040BFAE till CMP EAX,0E
Ändrat CMPn på offseten 0041AEEB till CMP EAX,0F
Ändrat CMPn på offseten 0041ADC2 till CMP DWORD PTR DS:[43D4F0],0F.

För att det inte ska krascha:
Ändrat CMPn på offseten 004116A4 till CMP EAX,0E
Ändrat MOVn på offseten 004116AB till MOV ECX,0E

Ändras för att få mer plats i minnet:
Klienterna som ansluter börjar sparas på offsetten 43D4CC. Ändra detta till 43D6A0 ~75 ändringar görs.
Även en till offsett ska ändras från 43D4D0 till 43D6A4. 1 ändring görs

Detta kan göras genom att lägga in dom båda filerna i en byte editor och ändra. Kom ihåg att när du ändrar så skriver du inte in 43D4CC utan CCD443.

Nu är det inte långt kvar, tack vare OnY och seb- så är det mesta redan löst. Sedan finns det självklart en hel del andra buggar, men ingenting som vi inte kan lösa!
Citera
2008-12-14, 02:32
  #2
Medlem
blueCommands avatar
Kika gärna även på Linux-varianten. Hade antagligen försökt översätta det ni gör på Windows-versionen om jag inte var så förbaskat lat :-)

Bör rent teoretiskt inte vara överdrivet mycket jobb mer än att ev. offsetter ändras.
Citera
2008-12-14, 23:50
  #3
Medlem
RiddareRalfs avatar
Ja, när jag lyckas med denna kan jag ta en titt på Linuxvarianten. Det lär inte vara någon större skillnad så det är nog inga problem.

Jag har stött på mer problem än vad jag förutstpådde.
9 klienter kan komma och gå som dom vill men efter det blir det knas.
10 kan komma in men den 10:e personen får inte emot någon data, han kan endast skicka.

Det är nog samma fel där som gör att den 11:e timear ut.

Men jag kämpar på!
Citera
2008-12-15, 04:24
  #4
Medlem
RiddareRalfs avatar
Puh. Dags att sova.

Jag har kollat igenom tidigare crackar och förstår nu varför den crashade tidigare, detta är nu fixat.

Nu kan 10 komma och gå utan större problem (dvs crashar).
Alla 10 kan prata, men endast 9 kan höra. Dvs, den 10en personen kan prata så alla hör men kan inte få något tillbaka.

Här är ändringarna hittills (ursäkta min knaggliga engelska såhär halv 5 på morgonen):
Kod:
Since they sometimes use 8 and sometimes 9 when checking for a server, we at the moment change 8 to E and 9 to F (although there might be some mixups).

40ADB9 - Change 08 to 0E
415BEE - Change 08 to 0E
4144E4 - Change 08 to 0E
41BD60 - Change 08 to 0E
41ADC2 - Change 08 to 0E
4177E6 - Change 03FF to FFFF (These things, FFFF and such makes the server handle more users somehow, haven't looked into it yet)
4177EF - Change to EXACTLY "OR ESI,FFFF0000" in OllyDBG
41785A - Change to "CMP EBP,0FFFF"

Det känns som att jag är närmare men det är nog ändå en lång bit kvar att vandra...
Citera
2008-12-15, 08:17
  #5
Medlem
TMSs avatar
Om jag hade någon susning om hur man gick tillväga skulle jag hjälpa Tyvärr är fallet inte så, men följer tråden med spänning!
Citera
2008-12-15, 17:38
  #6
Medlem
RiddareRalfs avatar
En liten uppdatering:

Jag har inte gett up än, sitter fortfarande och donar.
Jag har stött på några problem som OnY och seb- inte gjorde i sin version, troligen något nytt från ventrilo men annars så rullar det på.

9 klienter kan komma och gå som dom vill.
Den 10:e kan komma in, och prata men inte lyssna.
När den 10:e drar blir det något fel i funktionen när den rensar användare så vissa försvinner.

OnY och seb- hade ett liknande problem tror jag, dom blev tvungna att skriva om disconnectfunktionen, ska ta mig en titt på den.

Och för er som följer med debugger kan jag säga att de tär på position 41B637 som allting skiljer sig på jämfört om det är <=9 eller >=10 användare.
Fel värde placeras på EDI så funktioen WSAFDIsSet returnerar false.

Ja, får väl se vad som kan göras, har laddat upp med en extra stor kaffekopp nu, så nu jävlar...
Citera
2008-12-16, 00:09
  #7
Medlem
RiddareRalfs avatar
Nä, nu har jag kört fast riktigt ordentligt, får ta och lägga mig och försöka rensa huvudet lite.

Helt nöjd med dagen är jag inte, jag har inte direkt kommit längre, endast lokaliserat problemet. Och det är samma problem som innan att det blir något fel när den 10:e personen lämnar servern, nåja det är en dag imorgon också...
Citera
2008-12-16, 01:00
  #8
Medlem
Spizzes avatar
Håller tummarna!

Hur är det man crackar? Har aldrig fattat hur man lyckas ändra på något som inte är i öppen källkod, dock så är jag ändå ingen programmerare, men men.
Citera
2008-12-16, 01:39
  #9
Medlem
sporkehs avatar
I de nyare versionerna går det inte att ändra till vilken port man vill att servern ska använda, är detta något du kan titta på :-)?
Citera
2008-12-16, 06:58
  #10
Medlem
blueCommands avatar
Citat:
Ursprungligen postat av Spizze
Håller tummarna!

Hur är det man crackar? Har aldrig fattat hur man lyckas ändra på något som inte är i öppen källkod, dock så är jag ändå ingen programmerare, men men.

När du kompilerar källkoden översätts det till maskininstruktioner. Du ändrar helt enkelt vilka maskininstruktioner som körs / vilka minnesadresser som används.
Citera
2008-12-16, 08:14
  #11
Medlem
RiddareRalfs avatar
Ja, jag håller på att skriva en funktion som gör att man kan ändra portnummret i configfilen, inget större problem.
Tex:
port=4001.

Funderar även på att lägga till det som endast finns i pro-versionen dvs Intf kommandot (lite för dom mer avancerade).
Där kan man ställa in vilka interfaces som ska lyssna efter servern, kan komma till användning på större servrar.
Citera
2008-12-16, 11:15
  #12
Medlem
RiddareRalfs avatar
Jag skriver ner dom viktiga delarna som jag kommit fram till här så att jag kan kolla på det senare.

Data skickas faktiskt till alla, även den 10:e personen.
Det syns inte när folk disconnectar heller efter den 10:e personen har anslutit men man HÖR.

Det betyder att data skickas när en klient disconnectar men att ventriloklienten inte riktigt vet VEM som disconnectar och då syns det inte.

Logiskt sätt lär detta peka till att det är fel på IDn någonstans och det är nog det som blir mitt spår nu.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in