[Release] Bypass 4Story DE & other Stuff.

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Release] Bypass 4Story DE & other Stuff.

      Abend Leute,

      da ich jetzt öfters mitbekommen habe, wie viele herum jammern, dass sie keine Pointer suchen können, dachte ich mir, dass ich Ceberus Bypass update. Gesagt getan, ich habe neue Adressen gesucht und eine neue Stelle genoppt, damit das HackShield nicht geladen wird. Credits gehen an Ceberus, da ich seine Source genommen und upgedatet habe.
      Eine fertige .exe Datei habe ich mal hochgeladen.
      Download: 4Story Bypass.rar (5,01 KB) - uploaded.to
      Virustotal:VT
      Beweis:

      ToDo-List: -FindPatter finden zum automatischen updaten. []

      _________________________________________________________________

      Other Stuff:


      Nachdem ich mich mit dem reversen des Client's beschäftigt habe, habe ich mir 2 Sachen besonders intensiv angeschaut. Zum einen die Chat-Funktion und zum anderen die CreateCharacter-Funktion. Diese Informationen möchte ich euch nicht vorenthalten.
      Die Chat-Funktion besteht aus genau 7 verschiedenen Parametern, hier einmal die grobe Funktion:

      PHP-Quellcode

      1. void Chat( char* CharacterName, int Art, int unknown2, (WENN FLÜSTERN DANN VICTIM)char* Victim, char* Text, int unknown4, UNKNOWN5);

      Noch zu erwähnen wäre, dass der gesendete Text immer wie folgt aufgebaut ist:

      PHP-Quellcode

      1. char* Text = 0000000 + TEXT.LENGTH + TEXT; -> z.B. 00000005hallo

      Die Arten der Chat-Funktion sehen wie folgt aus

      PHP-Quellcode

      1. Art = 0(FLÜSTERN), 1(NORMAL), 2(ALLE), 3(), 4(GRUPPE), 5(GILDE), 6(RAID);
      Ich tippe, dass die Nummer 3 entweder der Upp-chat ist oder GM-chat. Hier ist mal ein Beispiel, wie er im Stack zu finden ist:

      PHP-Quellcode

      1. FLÜSTERN:
      2. CPU Stack
      3. Address Value ASCII Comments
      4. 0018FD74 [00513154 T1Q ; /RETURN from TClient.0053B270 to TClient.00513154
      5. 0018FD78 /549A0920 šT ; |Arg1 = ASCII "rdrree4rew"
      6. 0018FD7C |00000000 ; |Arg2 = 0
      7. 0018FD80 |00000000 ; |Arg3 = 0
      8. 0018FD84 |258B2178 x!% ; |Arg4 = ASCII "aaaaaaaaaaaaaaad"
      9. 0018FD88 |549A0998 ˜ šT ; |Arg5 = ASCII "00000003hey"
      10. 0018FD8C |00000000 ; |Arg6 = 0
      11. 0018FD90 |033C1F30 0< ; \Arg7 = 33C1F30
      Alles anzeigen

      Nun kann man die einzelnen Argumente perfekt ablesen.

      Ich habe nun die aktuelle Chat-Funktion gefunden, die 4Story benutzt:
      Spoiler anzeigen

      PHP-Quellcode

      1. CPU Disasm
      2. Address Hex dump Command Comments
      3. 0053B270 /$ 6A FF PUSH -1 ; TClient.0053B270(guessed Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,Arg7)
      4. 0053B272 |. 68 30DF6900 PUSH 0069DF30 ; Entry point
      5. 0053B277 |. 64:A1 0000000 MOV EAX,DWORD PTR FS:[0]
      6. 0053B27D |. 50 PUSH EAX
      7. 0053B27E |. 64:8925 00000 MOV DWORD PTR FS:[0],ESP ; Installs SE handler 69DF30
      8. 0053B285 |. 83EC 20 SUB ESP,20
      9. 0053B288 |. 894C24 04 MOV DWORD PTR SS:[LOCAL.9],ECX
      10. 0053B28C |. A1 D8177200 MOV EAX,DWORD PTR DS:[7217D8]
      11. 0053B291 |. 85C0 TEST EAX,EAX
      12. 0053B293 |. 6A 01 PUSH 1 ; /Arg2 = 1
      13. 0053B295 |. 8D4424 44 LEA EAX,[ARG.5] ; |
      14. 0053B299 |. C74424 2C 020 MOV DWORD PTR SS:[LOCAL.0],2 ; |
      15. 0053B2A1 |. 50 PUSH EAX ; |Arg1 => OFFSET ARG.5
      16. 0053B2A2 |. 74 4B JE SHORT 0053B2EF ; |
      17. 0053B2A4 |. E8 97A30400 CALL 00585640 ; \TClient.00585640
      18. 0053B2A9 |. 83C4 08 ADD ESP,8
      19. 0053B2AC |. 84C0 TEST AL,AL
      20. 0053B2AE |. 75 51 JNE SHORT 0053B301
      21. 0053B2B0 |. 8B4424 30 MOV EAX,DWORD PTR SS:[ARG.1]
      22. 0053B2B4 |. 83C0 F0 ADD EAX,-10
      23. 0053B2B7 |. C64424 28 01 MOV BYTE PTR SS:[LOCAL.0],1
      24. 0053B2BC |. 8D48 0C LEA ECX,[EAX+0C]
      25. 0053B2BF |. 83CA FF OR EDX,FFFFFFFF
      26. 0053B2C2 |. F0:0FC111 LOCK XADD DWORD PTR DS:[ECX],EDX
      27. 0053B2C6 |. 4A DEC EDX
      28. 0053B2C7 |. 85D2 TEST EDX,EDX
      29. 0053B2C9 |. 7F 08 JG SHORT 0053B2D3
      30. 0053B2CB |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
      31. 0053B2CD |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
      32. 0053B2CF |. 50 PUSH EAX
      33. 0053B2D0 |. FF52 04 CALL DWORD PTR DS:[EDX+4]
      34. 0053B2D3 |> 8B4424 3C MOV EAX,DWORD PTR SS:[ESP+3C]
      35. 0053B2D7 |. 83C0 F0 ADD EAX,-10
      36. 0053B2DA |. C64424 28 00 MOV BYTE PTR SS:[ESP+28],0
      37. 0053B2DF |. 8D48 0C LEA ECX,[EAX+0C]
      38. 0053B2E2 |. 83CA FF OR EDX,FFFFFFFF
      39. 0053B2E5 |. F0:0FC111 LOCK XADD DWORD PTR DS:[ECX],EDX
      40. 0053B2E9 |. 4A DEC EDX
      41. 0053B2EA |. E9 57010000 JMP 0053B446
      42. 0053B2EF |> E8 5CE60300 CALL 00579950
      43. 0053B2F4 |. 83C4 08 ADD ESP,8
      44. 0053B2F7 |. 50 PUSH EAX ; /Arg1
      45. 0053B2F8 |. 8D4C24 44 LEA ECX,[ARG.6] ; |
      46. 0053B2FC |. E8 2F99ECFF CALL 00404C30 ; \TClient.00404C30
      47. 0053B301 |> 53 PUSH EBX
      48. 0053B302 |. 55 PUSH EBP
      49. 0053B303 |. 8D4C24 08 LEA ECX,[LOCAL.10]
      50. 0053B307 |. 68 4D020000 PUSH 24D ; /Arg2 = 24D
      51. 0053B30C |. 51 PUSH ECX ; |Arg1 => OFFSET LOCAL.10
      52. 0053B30D |. E8 3E541000 CALL 00640750 ; \TClient.00640750
      53. 0053B312 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
      54. 0053B314 |. 8B6C24 4C MOV EBP,DWORD PTR SS:[ESP+4C]
      55. 0053B318 |. 50 PUSH EAX ; /Arg2
      56. 0053B319 |. 55 PUSH EBP ; |Arg1
      57. 0053B31A |. E8 AA491200 CALL 0065FCC9 ; \TClient.0065FCC9
      58. 0053B31F |. 8BD8 MOV EBX,EAX
      59. 0053B321 |. 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
      60. 0053B325 |. 83C4 10 ADD ESP,10
      61. 0053B328 |. F7DB NEG EBX
      62. 0053B32A |. 1ADB SBB BL,BL
      63. 0053B32C |. 83C0 F0 ADD EAX,-10
      64. 0053B32F |. FEC3 INC BL
      65. 0053B331 |. 8D50 0C LEA EDX,[EAX+0C]
      66. 0053B334 |. 83C9 FF OR ECX,FFFFFFFF
      67. 0053B337 |. F0:0FC10A LOCK XADD DWORD PTR DS:[EDX],ECX
      68. 0053B33B |. 49 DEC ECX
      69. 0053B33C |. 85C9 TEST ECX,ECX
      70. 0053B33E |. 7F 08 JG SHORT 0053B348
      71. 0053B340 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
      72. 0053B342 |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
      73. 0053B344 |. 50 PUSH EAX
      74. 0053B345 |. FF52 04 CALL DWORD PTR DS:[EDX+4]
      75. 0053B348 |> 84DB TEST BL,BL
      76. 0053B34A |. 74 05 JE SHORT 0053B351
      77. 0053B34C |. C64424 3C 07 MOV BYTE PTR SS:[ESP+3C],7
      78. 0053B351 |> 57 PUSH EDI
      79. 0053B352 |. 8D4C24 14 LEA ECX,[ESP+14]
      80. 0053B356 |. E8 65200A00 CALL 005DD3C0 ; [TClient.005DD3C0
      81. 0053B35B |. 8B4424 4C MOV EAX,DWORD PTR SS:[ESP+4C]
      82. 0053B35F |. 8B4C24 44 MOV ECX,DWORD PTR SS:[ESP+44]
      83. 0053B363 |. 8B5424 40 MOV EDX,DWORD PTR SS:[ESP+40]
      84. 0053B367 |. 8B7C24 3C MOV EDI,DWORD PTR SS:[ESP+3C]
      85. 0053B36B |. 50 PUSH EAX ; /Arg1
      86. 0053B36C |. 55 PUSH EBP ; |/Arg1
      87. 0053B36D |. 51 PUSH ECX ; ||/Arg1
      88. 0053B36E |. 52 PUSH EDX ; |||/Arg1
      89. 0053B36F |. 57 PUSH EDI ; ||||/Arg1
      90. 0053B370 |. 68 74510000 PUSH 5174 ; |||||/Arg1 = 5174
      91. 0053B375 |. 8D4C24 2C LEA ECX,[ESP+2C] ; ||||||
      92. 0053B379 |. C64424 4C 03 MOV BYTE PTR SS:[ESP+4C],3 ; ||||||
      93. 0053B37E |. E8 3D1F0A00 CALL 005DD2C0 ; |||||\TClient.005DD2C0
      94. 0053B383 |. 8BC8 MOV ECX,EAX ; |||||
      95. 0053B385 |. E8 B6230A00 CALL 005DD740 ; ||||\TClient.005DD740
      96. 0053B38A |. 8BC8 MOV ECX,EAX ; ||||
      97. 0053B38C |. E8 1F240A00 CALL 005DD7B0 ; |||\TClient.005DD7B0
      98. 0053B391 |. 8BC8 MOV ECX,EAX ; |||
      99. 0053B393 |. E8 78240A00 CALL 005DD810 ; ||\TClient.005DD810
      100. 0053B398 |. 8BC8 MOV ECX,EAX ; ||
      101. 0053B39A |. E8 A1230A00 CALL 005DD740 ; |\TClient.005DD740
      102. 0053B39F |. 8BC8 MOV ECX,EAX ; |
      103. 0053B3A1 |. E8 9A230A00 CALL 005DD740 ; \TClient.005DD740
      104. 0053B3A6 |. 807C24 40 01 CMP BYTE PTR SS:[ESP+40],1
      105. 0053B3AB |. 75 48 JNE SHORT 0053B3F5
      106. 0053B3AD |. 56 PUSH ESI
      107. 0053B3AE |. 8B7424 58 MOV ESI,DWORD PTR SS:[ESP+58]
      108. 0053B3B2 |. 8B46 08 MOV EAX,DWORD PTR DS:[ESI+8]
      109. 0053B3B5 |. 50 PUSH EAX ; /Arg1
      110. 0053B3B6 |. 8D4C24 1C LEA ECX,[ESP+1C] ; |
      111. 0053B3BA |. E8 11230A00 CALL 005DD6D0 ; \TClient.005DD6D0
      112. 0053B3BF |. 8B76 04 MOV ESI,DWORD PTR DS:[ESI+4]
      113. 0053B3C2 |. 8B06 MOV EAX,DWORD PTR DS:[ESI]
      114. 0053B3C4 |. 3BC6 CMP EAX,ESI
      115. 0053B3C6 |. 894424 44 MOV DWORD PTR SS:[ESP+44],EAX
      116. 0053B3CA |. 74 28 JE SHORT 0053B3F4
      117. 0053B3CC |. 8D6424 00 LEA ESP,[ESP]
      118. 0053B3D0 |> 8B40 10 /MOV EAX,DWORD PTR DS:[EAX+10]
      119. 0053B3D3 |. 8B88 E0030000 |MOV ECX,DWORD PTR DS:[EAX+3E0]
      120. 0053B3D9 |. 51 |PUSH ECX ; /Arg1
      121. 0053B3DA |. 8D4C24 1C |LEA ECX,[ESP+1C] ; |
      122. 0053B3DE |. E8 2D240A00 |CALL 005DD810 ; \TClient.005DD810
      123. 0053B3E3 |. 8D4C24 44 |LEA ECX,[ESP+44]
      124. 0053B3E7 |. E8 34680000 |CALL 00541C20 ; [TClient.00541C20
      125. 0053B3EC |. 8B4424 44 |MOV EAX,DWORD PTR SS:[ESP+44]
      126. 0053B3F0 |. 3BC6 |CMP EAX,ESI
      127. 0053B3F2 |.^ 75 DC \JNE SHORT 0053B3D0
      128. 0053B3F4 |> 5E POP ESI
      129. 0053B3F5 |> 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
      130. 0053B3F9 |. 8D5424 14 LEA EDX,[ESP+14]
      131. 0053B3FD |. 52 PUSH EDX ; /Arg1
      132. 0053B3FE |. E8 2D110A00 CALL 005DC530 ; \TClient.005DC530
      133. 0053B403 |. 8D4C24 14 LEA ECX,[ESP+14]
      134. 0053B407 |. C64424 34 02 MOV BYTE PTR SS:[ESP+34],2
      135. 0053B40C |. E8 6F1B0A00 CALL 005DCF80 ; [TClient.005DCF80
      136. 0053B411 |. 8D47 F0 LEA EAX,[EDI-10]
      137. 0053B414 |. C64424 34 01 MOV BYTE PTR SS:[ESP+34],1
      138. 0053B419 |. 8D48 0C LEA ECX,[EAX+0C]
      139. 0053B41C |. 83CA FF OR EDX,FFFFFFFF
      140. 0053B41F |. F0:0FC111 LOCK XADD DWORD PTR DS:[ECX],EDX
      141. 0053B423 |. 4A DEC EDX
      142. 0053B424 |. 85D2 TEST EDX,EDX
      143. 0053B426 |. 5F POP EDI
      144. 0053B427 |. 7F 08 JG SHORT 0053B431
      145. 0053B429 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
      146. 0053B42B |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
      147. 0053B42D |. 50 PUSH EAX
      148. 0053B42E |. FF52 04 CALL DWORD PTR DS:[EDX+4]
      149. 0053B431 |> 8D45 F0 LEA EAX,[EBP-10]
      150. 0053B434 |. C64424 30 00 MOV BYTE PTR SS:[ESP+30],0
      151. 0053B439 |. 8D48 0C LEA ECX,[EAX+0C]
      152. 0053B43C |. 83CA FF OR EDX,FFFFFFFF
      153. 0053B43F |. F0:0FC111 LOCK XADD DWORD PTR DS:[ECX],EDX
      154. 0053B443 |. 4A DEC EDX
      155. 0053B444 |. 5D POP EBP
      156. 0053B445 |. 5B POP EBX
      157. 0053B446 |> 85D2 TEST EDX,EDX
      158. 0053B448 |. 7F 08 JG SHORT 0053B452
      159. 0053B44A |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
      160. 0053B44C |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
      161. 0053B44E |. 50 PUSH EAX
      162. 0053B44F |. FF52 04 CALL DWORD PTR DS:[EDX+4]
      163. 0053B452 |> 8B4424 40 MOV EAX,DWORD PTR SS:[ESP+40]
      164. 0053B456 |. 83C0 F0 ADD EAX,-10
      165. 0053B459 |. C74424 28 FFF MOV DWORD PTR SS:[ESP+28],-1
      166. 0053B461 |. 8D48 0C LEA ECX,[EAX+0C]
      167. 0053B464 |. 83CA FF OR EDX,FFFFFFFF
      168. 0053B467 |. F0:0FC111 LOCK XADD DWORD PTR DS:[ECX],EDX
      169. 0053B46B |. 4A DEC EDX
      170. 0053B46C |. 85D2 TEST EDX,EDX
      171. 0053B46E |. 7F 08 JG SHORT 0053B478
      172. 0053B470 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
      173. 0053B472 |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
      174. 0053B474 |. 50 PUSH EAX
      175. 0053B475 |. FF52 04 CALL DWORD PTR DS:[EDX+4]
      176. 0053B478 |> 8B4C24 20 MOV ECX,DWORD PTR SS:[LOCAL.2]
      177. 0053B47C |. 64:890D 00000 MOV DWORD PTR FS:[0],ECX
      178. 0053B483 |. 83C4 2C ADD ESP,2C
      179. 0053B486 \. C2 1C00 RETN 1C
      Alles anzeigen


      Warum ich das euch schreibe ist einfach, damit könnte man eine ASM-ChatFunktion schreiben, wodurch man blitzschnell Spamen kann und falls es eine Chatsperre geben sollte, diese umgehen. Leider fehlen mir noch ein paar Parameter, die ich erst herausfinden muss, aber vielleicht schafft einer von euch ja was daraus zu machen. :) Ich werde mich mal am Wochenende vielleicht ran setzten.

      2.Teil, CreateCharacter-Funktion:


      Hierzu sage ich vorab habe ich noch nicht die richtige Stelle im Client gefunden, aber die Funktion sieht ungefähr so aus:

      PHP-Quellcode

      1. void CreateChar(int Server, char* Name, unknown UNKNOWN, int Klasse, int Rasse, int unknown4, int Gender, int Channel, int HairColor, int Hair, int unknown7, int unknown8, int unknown9, int unknown10);


      Ich denke, dass die Parameter klar sein müssen, aber hier nochmal eine genauere Liste:

      PHP-Quellcode

      1. Server: 0 = ,1 = Lapiris, 2 = Xhadra, 3 = Rumapark, 4 = Titurion, 5 = Pendatron;
      2. Gender: 0 = Männlich, 1 = Weiblich;
      3. Rasse: 0 = Mensch, 1 = Feline, 2 = Fee;
      4. Klasse: 0 = Krieger, 1 = Schattenläufer, 2 = Bogenschütze, 3= Magier, 4 = Priester, 5 = Beschwörer;

      Beim Parameter Hair und HairColor ist es so, dass Typ A = 0, Typ B = 1, Typ C = 2 usw. ist.

      Ein Code im Stack sieht wie folgt aus:

      PHP-Quellcode

      1. CPU Stack
      2. Address Value ASCII Comments
      3. 0018FD7C /00000002 ; |Arg1 = 2
      4. 0018FD80 |199E74A0 *; |Arg2 = ASCII "fddffdfsdfsdfsd"
      5. 0018FD84 |7C356903 i5| ; |Arg3 = 7C356903
      6. 0018FD88 |00000001 ; |Arg4 = 1
      7. 0018FD8C |00000000 ; |Arg5 = 0
      8. 0018FD90 |00000000 ; |Arg6 = 0
      9. 0018FD94 |00000000 ; |Arg7 = 0
      10. 0018FD98 |00000001 ; |Arg8 = 1
      11. 0018FD9C |00000001 ; |Arg9 = 1
      12. 0018FDA0 |00000000 ; |Arg10 = 0
      13. 0018FDA4 |00000000 ; |Arg11 = 0
      14. 0018FDA8 |00000000 ; |Arg12 = 0
      15. 0018FDAC |00000000 ; \Arg13 = 0
      Alles anzeigen

      Vergleicht man die Parameter mit dem Beispiel, dann ist klar, welchen Character ich erstellt habe.
      Bei den letzten 4 Parametern bin ich mir sehr unsicher, die letzten 3 könnte die Position des Characters sein, an dem er erstellt wurde (X,Y,Z), wobei man bei 4Story immer an der selben Stelle aufkommt.

      Was könnte man damit machen?
      Das ist einfach, man könnte sich theoretisch Charackter erstellen mit unerlaubten Namen, Überschreitung der maximalen Länge des Namens und man könnte unendlich viele Character auf kürzester Zeit erstellen, die gegeben falls den Server crashen könnten. Aber das ist nur eine Spekulation.


      INFO:


      In kürzester Zeit werde ich mein altes Projekt, welches ich vor ein paar Monaten erstellt habe, fertig machen und veröffentlichen. Hier mal ein Bild dazu:

      Es ist ein PacketEditor, welcher bis jetzt nur die HShield Packets richtig anzeigt, aber dies wird bald behoben sein. Außerdem ist es möglich, mit dem Anklicken einer Zeile, den Hex String in ASCII zu wandeln.
      Was haltet ihr vom dem Programm, eine gute Idee oder eher nicht ?

      So, dass war's jetzt erst mal von mir, ich hoffe ihr gebt Feedback zu meinen Sachen. Bis zum nächsten mal ;)

      MFG
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )