Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 06:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



WPE weiterentwicklung

Discussion on WPE weiterentwicklung within the General Coding forum part of the Coders Den category.

Reply
 
Old 08/29/2006, 13:01   #31
 
reijin's Avatar
 
elite*gold: 20
Join Date: Feb 2006
Posts: 3,174
Received Thanks: 1,152
Quote:
Originally posted by rEdoX@Aug 29 2006, 12:58
Ich habe mir ein eigenes format ausgedacht mit dem man die packets speichern/laden kann. Nen konverter koennen andere machen

Ab jetzt wird es laenge rdauern bis updates kommen, da ich die woche nicht viel zeite habe und es jetzt anfaegt schwieriger zu werden.
schade^^
aber ok, das macht nix, halt uns einfach aufm laufenden

wann gibts voraussichtlich das erste Release?

[img]text2schild.php?smilienummer=1&text=gruuuuuuuß' border='0' alt='gruuuuuuuß' />
reijin is offline  
Old 09/06/2006, 18:06   #32
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
So, ich melde mich hier mal wieder mir einem neuen feature :O



Den Filtern, was meiner meinung nach mit einer der schwersten parts gewesen ist.
Die Filter funktionieren genauso wie in WPE, habe sie bis jetzt nur in WS1::Send eingebaut, einerseits wegen zeitmangels andererseits weils ne sau tipp arbeit ist und ich solche sachen imemr vor mir her schiebe (genau so wie SendTo/RecvFrom :? )

Da wir in den wochen bis zu den herbstferien 8 klausuren schreiben, wird das nächste update auf sich warten lassen .

so far

//Edit: uppps screen vergessen :>
rEdoX is offline  
Old 09/06/2006, 18:14   #33
 
elite*gold: 0
Join Date: Mar 2006
Posts: 145
Received Thanks: 14
könntest du vlt einen PreRelease oder so rausgeben?^^
brauche nur packtes log und anzeige was drin drin steht (als hex und als plaintext)^^

brauch nen genaus o ein tool, finde wpe nirgends =/


MfG DodgeX
Dodge is offline  
Old 09/06/2006, 18:18   #34

 
Kingdingelling's Avatar
 
elite*gold: 540
Join Date: Apr 2005
Posts: 1,810
Received Thanks: 401

<,< bisl suchen ja
Kingdingelling is offline  
Old 09/07/2006, 00:20   #35
 
elite*gold: 0
Join Date: Mar 2006
Posts: 145
Received Thanks: 14
Quote:

<,< bisl suchen ja
hm ja google 4tw aber boardsuche vergessen T_T""


Sorry XD
Dodge is offline  
Old 09/07/2006, 13:48   #36
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Habe mich dazu entschloßen hier mal die aktuelle version zum download freizugeben.

Download weiter unten

Würde mich ueber kritik und/oder anregungen freuen.

Wenn ihr fehler findet bitte posten, danke.

Die file ist zu 100% virenfrei :>


/!&#092; Ich übernehme keinerlei verantwortung fuer folgeschäden oder sonstiges /!&#092;
rEdoX is offline  
Old 09/07/2006, 15:54   #37
 
elite*gold: 0
Join Date: May 2005
Posts: 2,922
Received Thanks: 106
Hm scheint noch etwas buggy zu sein...
Hab ma paar packets von mirc gesnifft nach ner zeit kam irgend ne fehlermeldung und mirc is abgekackt das selbe mit ro und msn messenger

ich versuch die fehler mal zu rekonstruieren und poste die meldung ;D


Quote:

---------------------------
FormDLL: mirc.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x0174669f" verweist auf Speicher in "0x00000000". Der Vorgang

"written" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Glaub der Fehler tritt auf wenn man auf File New geht also um packets vom n andren prozess zu sniff000r0000rn oder so ;o

Das Interface ist auch etwas buggy, nämlich wenn man was aufgenommen hat dann stop drückt und nomma was aufnehmen will überschneiden sich die ziffern irgendwie.
CyRuSTheViRuS is offline  
Old 09/07/2006, 16:27   #38
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Wie gesagt es ist ne beta ->

Das mit File New ist mir bekannt, werde ich eben ausbauen.

download weiter unten

Kannst du mal nen sceenshot machen von der gui, verstehe nicht ganz was du meinst :> ?
rEdoX is offline  
Old 09/10/2006, 23:46   #39
 
elite*gold: 0
Join Date: Mar 2006
Posts: 111
Received Thanks: 0
Quote:
Originally posted by rEdoX@Sep 6 2006, 18:06
Den Filtern, was meiner meinung nach mit einer der schwersten parts gewesen ist.
Der schwerste Teil ist der Userkontakt mit dem rauskitzeln von brauchbaren Informationen zur Behebung des unerwünschten Verhalten der Applikation (um das Wort "Bug" zu vermeiden )

Ich habe mir deinen Packet Editor ein wenig angeguckt, hier meine Vorschläge:

- Du prüfst an keiner Stelle in deiner Software ob der Benutzer die nötigen Rechte hat, du gehst davon aus das die Software als Administrator ausgeführt wird (ich für meinen Teil arbeite am System mit minimalen Rechten).

- In der Funktion wo du die Pointer für die Winsock APIs und das Handle für die benötigten Dlls ermittelst, solltest du die Rückgabewerte vor dem Aufrufen der SetHook-Funktion(oder wie immer du sie bei dir genannt hast) prüfen als mit einem ungesetzten Hook aus der SetHook-Funktion zu kommen (was du übrigens auch nicht prüfst ob das erfolgreich war - soweit ich das korrekt gesehen habe)

- In der gleichen Funktion wie gerade beschrieben, rufst du unnötigerweise mehrfach die GetModuleHandle API auf, wo du nur 1 Aufruf und 1 lokale Variable brauchst.

- Wenn die ws2_32.dll oder wsock32.dll noch nicht geladen sind, kannst du sie ruhig selbst in den Prozess laden und deine Hooks schon mal setzen. Falls die Zielapplikation auf die Idee kommt die gleichen Dlls noch mal zu laden, kriegt es als HMODULE das geladene zurück.

- Du solltest auch einen Hook auf FreeLibrary/LoadLibrary setzen (das letztere für eine Alternative für meinen obigen Vorschlag). Es kann vorkommen dass das Spiel die ws2_32.dll entläd und später wieder läd. Würde das dein Packet Editor mitkriegen und die hooks noch einmal setzen? -> So könntest du in der IDE eine entsprechende Meldung darstellen.

- Du könntest dazu SetUnhandledExceptionFilter benutzen und im Filter die Exceptions/Register loggen. Falls du gerissen bist, addierst du zum EIP immer eine Eins und lässt die Applikation fortfahren. Damit stürzt die nicht mehr ab aber vielleicht bemerkt der User nicht das eigenartige Verhalten ... NEIN, das war nur Spass, das solltest du NICHT tun ;-)

- Das folgende sieht einfach nur unschön aus(...):
Quote:
00398B24 . A1 D0AC3900 MOV EAX,DWORD PTR DS:[39ACD0] ; kannst du dir sparen
00398B29 . C640 0C 00 MOV BYTE PTR DS:[EAX+C],0
00398B2D . C600 00 MOV BYTE PTR DS:[EAX],0
00398B30 . C640 01 00 MOV BYTE PTR DS:[EAX+1],0
00398B34 . C640 02 00 MOV BYTE PTR DS:[EAX+2],0
00398B38 . C640 03 00 MOV BYTE PTR DS:[EAX+3],0
00398B3C . C640 04 00 MOV BYTE PTR DS:[EAX+4],0
00398B40 . C640 05 00 MOV BYTE PTR DS:[EAX+5],0
00398B44 . C640 06 00 MOV BYTE PTR DS:[EAX+6],0
00398B48 . C640 07 00 MOV BYTE PTR DS:[EAX+7],0
00398B4C . C640 08 00 MOV BYTE PTR DS:[EAX+8],0
00398B50 . C640 09 00 MOV BYTE PTR DS:[EAX+9],0
00398B54 . C640 0A 00 MOV BYTE PTR DS:[EAX+A],0
00398B58 . C640 0B 00 MOV BYTE PTR DS:[EAX+B],0
00398B5C . A1 C0A93900 MOV EAX,DWORD PTR DS:[39A9C0]
00398B61 . C600 00 MOV BYTE PTR DS:[EAX],0
Ich weiss nicht ob das von dir stammt, oder es sich um ein Resultat des Compilers handelt. Einer der Gründe hier ZeroMemory (sollte in Delphi geben; ich bin kein Delphi-Entwickler) aufzurufen, wäre, dass wenn du die struct erweiterst, nicht ständig manuell die Stelle anpassen musst. Wozu die restlichen Operationen im Codeschnipsel darstellen sollen, will ich nicht so richtig Wissen ;-)
Ist das die struct die du später benutzt um die GUI zu informieren?
SilonVier is offline  
Old 09/11/2006, 13:59   #40
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Quote:
Der schwerste Teil ist der Userkontakt mit dem rauskitzeln von brauchbaren Informationen zur Behebung des unerwünschten Verhalten der Applikation (um das Wort "Bug" zu vermeiden wink.gif)
Verstehe nicht so recht was du mir damit sagen willst :>


Quote:
- Du prüfst an keiner Stelle in deiner Software ob der Benutzer die nötigen Rechte hat, du gehst davon aus das die Software als Administrator ausgeführt wird (ich für meinen Teil arbeite am System mit minimalen Rechten).
Ich arbeite auch mit eingeschränkten rechten und sehe keine stelle wo ich admin rechte verlange ^^


Quote:
- In der Funktion wo du die Pointer für die Winsock APIs und das Handle für die benötigten Dlls ermittelst, solltest du die Rückgabewerte vor dem Aufrufen der SetHook-Funktion(oder wie immer du sie bei dir genannt hast) prüfen als mit einem ungesetzten Hook aus der SetHook-Funktion zu kommen (was du übrigens auch nicht prüfst ob das erfolgreich war - soweit ich das korrekt gesehen habe)
Programmierer sind von natur aus faul :O, werde ich aendern


Quote:
- In der gleichen Funktion wie gerade beschrieben, rufst du unnötigerweise mehrfach die GetModuleHandle API auf, wo du nur 1 Aufruf und 1 lokale Variable brauchst.
c&p geht schneller als das ganze mit einer variable zu machen :P (Spass werde ich auch aendern )


Quote:
- Wenn die ws2_32.dll oder wsock32.dll noch nicht geladen sind, kannst du sie ruhig selbst in den Prozess laden und deine Hooks schon mal setzen. Falls die Zielapplikation auf die Idee kommt die gleichen Dlls noch mal zu laden, kriegt es als HMODULE das geladene zurück.
Ist mir bekannt, wird auch geaendert.


Quote:
- Du solltest auch einen Hook auf FreeLibrary/LoadLibrary setzen (das letztere für eine Alternative für meinen obigen Vorschlag). Es kann vorkommen dass das Spiel die ws2_32.dll entläd und später wieder läd. Würde das dein Packet Editor mitkriegen und die hooks noch einmal setzen? -> So könntest du in der IDE eine entsprechende Meldung darstellen.
Sehr gute idee, danke dafuer


Quote:
- Du könntest dazu SetUnhandledExceptionFilter benutzen und im Filter die Exceptions/Register loggen. Falls du gerissen bist, addierst du zum EIP immer eine Eins und lässt die Applikation fortfahren. Damit stürzt die nicht mehr ab aber vielleicht bemerkt der User nicht das eigenartige Verhalten ... NEIN, das war nur Spass, das solltest du NICHT tun ;-)
und warum nicht? xD


Quote:
- Das folgende sieht einfach nur unschön aus(...):

Ich weiss nicht ob das von dir stammt, oder es sich um ein Resultat des Compilers handelt. Einer der Gründe hier ZeroMemory (sollte in Delphi geben; ich bin kein Delphi-Entwickler) aufzurufen, wäre, dass wenn du die struct erweiterst, nicht ständig manuell die Stelle anpassen musst. Wozu die restlichen Operationen im Codeschnipsel darstellen sollen, will ich nicht so richtig Wissen ;-)
Ist das die struct die du später benutzt um die GUI zu informieren?
Nein, das sollten die die einzelnen (12) capture structs sein (fuer jede funktion ein bool -> 0 = false).


Code:
00398B24 . A1 D0AC3900  MOV EAX,DWORD PTR DS&#58;&#91;39ACD0&#93;&#59;bin mir nicht so sicher woher das kommt &#58;/
00398B29 . C640 0C 00  MOV BYTE PTR DS&#58;&#91;EAX+C&#93;,0       &#59;RecvFrom_WSA &#58; bool = false
00398B2D . C600 00    MOV BYTE PTR DS&#58;&#91;EAX&#93;,0         &#59;Send_WS_1 &#58; bool = false
00398B30 . C640 01 00  MOV BYTE PTR DS&#58;&#91;EAX+1&#93;,0       &#59;Send_WS_2 &#58; bool = false
00398B34 . C640 02 00  MOV BYTE PTR DS&#58;&#91;EAX+2&#93;,0       &#59;usw ^^
00398B38 . C640 03 00  MOV BYTE PTR DS&#58;&#91;EAX+3&#93;,0
00398B3C . C640 04 00  MOV BYTE PTR DS&#58;&#91;EAX+4&#93;,0
00398B40 . C640 05 00  MOV BYTE PTR DS&#58;&#91;EAX+5&#93;,0
00398B44 . C640 06 00  MOV BYTE PTR DS&#58;&#91;EAX+6&#93;,0
00398B48 . C640 07 00  MOV BYTE PTR DS&#58;&#91;EAX+7&#93;,0
00398B4C . C640 08 00  MOV BYTE PTR DS&#58;&#91;EAX+8&#93;,0
00398B50 . C640 09 00  MOV BYTE PTR DS&#58;&#91;EAX+9&#93;,0
00398B54 . C640 0A 00  MOV BYTE PTR DS&#58;&#91;EAX+A&#93;,0
00398B58 . C640 0B 00  MOV BYTE PTR DS&#58;&#91;EAX+B&#93;,0
00398B5C . A1 C0A93900  MOV EAX,DWORD PTR DS&#58;&#91;39A9C0&#93;
00398B61 . C600 00    MOV BYTE PTR DS&#58;&#91;EAX&#93;,0         &#59;capture &#58; bool = false

danke fuer die gute und lange kritik
rEdoX is offline  
Old 09/11/2006, 14:50   #41
 
elite*gold: 0
Join Date: Mar 2006
Posts: 111
Received Thanks: 0
Quote:
Originally posted by rEdoX+Sep 11 2006, 13:59--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (rEdoX @ Sep 11 2006, 13:59)</td></tr><tr><td id='QUOTE'>
Quote:
- Du könntest dazu SetUnhandledExceptionFilter benutzen und im Filter die Exceptions/Register loggen. Falls du gerissen bist, addierst du zum EIP immer eine Eins und lässt die Applikation fortfahren. Damit stürzt die nicht mehr ab aber vielleicht bemerkt der User nicht das eigenartige Verhalten ... NEIN, das war nur Spass, das solltest du NICHT tun ;-)
und warum nicht? xD[/b]

Es gibt viele Gründe, z. B.:
- Du weisst nicht wo genau eine Exception beim User aufgetreten ist um sie zu beheben.
- Exceptions sind langsam. Bei einer 4 byte Instruktion die eine Exception verursacht, schmeisst es im besten Fall 4 mal eine Exception und führt den nächsten Befehl korrekt aus. Vielleicht nimmt es aber auch nach 2 Exceptions die nächsten 2 byte(s) und verbindet diese mit der nächsten Instruktion und fügt dann über lange Codeabschnitte sehr unsinnige Sachen aus und die Prozessorauslastung ist bei 100%. Man müsste das also mit einem kleinen Disassembler verbinden und bei der ersten Exception ermitteln wie lang(byte(s)) der Befehl ist und die Länge wird zu EIP addiert (statt immer nur eine Eins). Damit würden die Befehle korrekt sein aber nicht zwangsläufig das Resultat

Quote:
Originally posted by -rEdoX@Sep 11 2006, 13:59

Code:
00398B24 . A1 D0AC3900  MOV EAX,DWORD PTR DS&#58;&#91;39ACD0&#93;;bin mir nicht so sicher woher das kommt &#58;/
00398B29 . C640 0C 00  MOV BYTE PTR DS&#58;&#91;EAX+C&#93;,0      &#59;RecvFrom_WSA &#58; bool = false
00398B2D . C600 00    MOV BYTE PTR DS&#58;&#91;EAX&#93;,0         &#59;Send_WS_1 &#58; bool = false
00398B30 . C640 01 00  MOV BYTE PTR DS&#58;&#91;EAX+1&#93;,0       &#59;Send_WS_2 &#58; bool = false
00398B34 . C640 02 00  MOV BYTE PTR DS&#58;&#91;EAX+2&#93;,0       &#59;usw ^^
00398B38 . C640 03 00  MOV BYTE PTR DS&#58;&#91;EAX+3&#93;,0
00398B3C . C640 04 00  MOV BYTE PTR DS&#58;&#91;EAX+4&#93;,0
00398B40 . C640 05 00  MOV BYTE PTR DS&#58;&#91;EAX+5&#93;,0
00398B44 . C640 06 00  MOV BYTE PTR DS&#58;&#91;EAX+6&#93;,0
00398B48 . C640 07 00  MOV BYTE PTR DS&#58;&#91;EAX+7&#93;,0
00398B4C . C640 08 00  MOV BYTE PTR DS&#58;&#91;EAX+8&#93;,0
00398B50 . C640 09 00  MOV BYTE PTR DS&#58;&#91;EAX+9&#93;,0
00398B54 . C640 0A 00  MOV BYTE PTR DS&#58;&#91;EAX+A&#93;,0
00398B58 . C640 0B 00  MOV BYTE PTR DS&#58;&#91;EAX+B&#93;,0
00398B5C . A1 C0A93900  MOV EAX,DWORD PTR DS&#58;&#91;39A9C0&#93;
00398B61 . C600 00    MOV BYTE PTR DS&#58;&#91;EAX&#93;,0         &#59;capture &#58; bool = false
Vielleicht hätte ich mir den Code gestern nüchtern ansehen sollen - der erste Befehl ist notwendig, vorher gibt es keine Zuweisung.
Wäre hier ein enum nicht sinnig? Ich habe zwar Zuweisungen in deinen gehookten Funktionen gesehen, aber dem nicht viel Beachtung geschenkt.
Code:
type Irgendwas = {blub, blab}
<!--QuoteBegin--rEdoX
@Sep 11 2006, 13:59
danke fuer die gute und lange kritik [/quote]
Kein Problem ;-)
SilonVier is offline  
Old 09/11/2006, 14:57   #42
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Bei mir ist das ganze als record deklariert:

Code:
 foobar&#58; record
  send1, send2, recv1, usw, capture &#58; boolean;
 end;
Finde das eigentlich auch ganz sinnvoll so ^^
Ist ja auch erstmal nur nen "grundgeruest" die optimierung kommen nachher

Habe gerade einen bug in den wsa funktionen festgestellt, die zu der von cyrus geposteten av passen. Kann mir aber nicht erklären woher die kommen.

Download weiter unten
rEdoX is offline  
Old 09/19/2006, 13:49   #43
 
mr.rattlz's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
Meiner Meinung nach wären Hotkeys zum starten und stoppen des loggings ganz praktisch, da man dann nicht zwischen dem untersuchten Programm und dem Packet Editor hin und her tabben müsste.
mr.rattlz is offline  
Old 09/20/2006, 19:40   #44
 
elite*gold: 0
Join Date: May 2005
Posts: 232
Received Thanks: 52
huhu redox, eine frage auf deinem screenshot habe ich direkt erkannt dass du den source (des sniffers) aus einem winsock beispiel für delphi "geklaut/geliehen" hast.
immer wieder wenn ich mit winsock programmierung anfange /weitermache muss ich an das porgramm denken aber ich komm weder auf den exe namen noch auf den des coders, als meine frage könntest du das rohprogramm, auf den du "dein" programm aufbaust bitte posten, bzw den source dazu (name würde mir auch schon reichen). ich wäre dir sehr dankbar habe schon endlose stunden damit verbracht das ding zu suchen aber ohne erfolg.
das grundgerüst war (soweit ich in erinnerung habe) viel sauberer als alles was ich je mit winsock programmiert habe
emjay is offline  
Old 09/23/2006, 12:25   #45
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Quote:
huhu redox, eine frage auf deinem screenshot habe ich direkt erkannt dass du den source (des sniffers) aus einem winsock beispiel für delphi "geklaut/geliehen" hast.
Da muss ich dich entaeuschen, der source ist von grund auf von mir gecodet ;o
Welchen screen meinst du denn?

Und deshalb crashed es auch noch manchmal, ka wieso -.-''

Da ich gerade sehr sehr wening zeit habe, wirds noch nen bisschen dauern, bis es fertig gecodet wird.
rEdoX is offline  
Reply




All times are GMT +2. The time now is 06:34.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.