Hinter den Kulissen von Blitz3D

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

Vertex

Betreff: Hinter den Kulissen von Blitz3D

BeitragMo, Jul 05, 2004 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
So ich habe nochmal fast alles zusammengefasst, was bei den Hackarbeiten vor dem Forumcrash zusammen gekommen ist.
Code: [AUSKLAPPEN]
Autor: Vertex

Credits:
 - Xenon
 - Vertex
 - halo
 - Shagwana
 - TheShadow
 - Panno
 - Fredborg


TCP
   HostIP: Offset 16, Integer


Bank
   Address: Offset 4, Integer
   Size:    Offset 8, Integer


Image
   Frames: Offset 0, Byte
   ImageBuffer
      Locked:         Offset  60, Integer; Value=1 is locked, Value=0 is unlocked
      Videoaddress:   Offset  72, Integer
      Width:          Offset  92, Integer
      Height:         Offset  96, Integer
      Bits per Pixel: Offset 100, Integer
      Format:         Offset 104, Integer
      X-Handle:       Offset 300, Integer
      Y-handle:       Offset 304, Integer
      MaskColorBlue:  Offset 308, Byte
      MaskColorGreen: Offset 309, Byte
      MaskColorRed:   Offset 310, Byte


Brush
   Dummy: Offset 0, Integer
      Brush Shininess: Offset 28, Float
      Brush Alpha:     Offset 32, Float
      Brush FX:        Offset 40, Integer


Texture
   Texture Flags:      Offset 32, Integer
   Texture Blend:      Offset 48, Integer
   Texture Coords:     Offset 52, Integer
   Texture Scale U:    Offset 60, Float; Value = 1.0 / Value
   Texture Scale V:    Offset 64, Float; Value = 1.0 / Value
   Texture Position U: Offset 68, Float; Value = -Value
   Texture Position V: Offset 72, Float; Value = -Value
   Texture Angle:      Offset 76, Float; Value = (-360.0*Value)/2.0/Pi


Entity
   Entity Refresh:       Offset  44, Integer; Value=3 to refresh
   Entity Order:         Offset 228, Integer
   Entity Radius X:      Offset 232, Float
   Entity Radius Y:      Offset 236, Float
   Entity Box X:         Offset 264, Float
   Entity Box Y:         Offset 268, Float
   Entity Box Z:         Offset 272, Float
   Entity Box Width:     Offset 276, Float
   Entity Box Height:    Offset 280, Float
   Entity Box Depth:     Offset 284, Float
   Entity PickMode:      Offset 288, Integer
   Entity Pick-Geometry: Offset 292, Integer
   Entity FX:            Offset 724, Integer


Camera
   Camera Zoom:            Offset 576, Float
   Camera Viewport X:      Offset 580, Integer
   Camera Viewport Y:      Offset 584, Integer
   Camera Viewport Width:  Offset 588, Integer
   Camera Viewport Height: Offset 592, Integer
   Camera CLS-ZBuffer:     Offset 608, Integer
   Camera ProjMode:        Offset 612, Integer
   Camera Fog-RangeStart:  Offset 628, Float
   Camera Fog-RangeEnd:    Offset 632, Float
   Camera RangeStart:      Offset 640, Float
   Camera RangeEnd:        Offset 644, Float


Mesh
   Surfaceheader: Offset 644, Integer
      Surface Count: Offset  0, Integer
      Surfacelist:   Offset 56, Integer
         Surfacehandle: Offset 0, Integer
            Vertex: Offset 28, Integer
               Vertex X:         Offset  0, Float
               Vertex Y:         Offset  4, Float
               Vertex Z:         Offset  8, Float
               Vertex NX:        Offset 12, Float
               Vertex NY:        Offset 16, Float
               Vertex NZ:        Offset 20, Float
               Vertex Blue:      Offset 24, Byte
               Vertex Green:     Offset 25, Byte
               Vertex Red:       Offset 26, Byte
               Vertex Alpha:     Offset 27, Byte; Value = Value/255.0
               Vertex U1:        Offset 28, Float
               Vertex U1:        Offset 32, Float
               Vertex V2:        Offset 36, Float
               Vertex U2:        Offset 40, Float
               Vertex Boneindex: Offset 44, Integer
               Vertex X:         Offset 48, Float
               Vertex Y:         Offset 52, Float
               Vertex Z:         Offset 56, Float
               Vertex NX:        Offset 60, Float
            ...
            Until Vertex N

            Trianglelist: Offset 44, Integer
               Vertex 0: Offset 0, Short
               Vertex 1: Offset 2, Short
               Vertex 2: Offset 4, Short
               ...
               Until Triangle N

            Surface Refresh: Offset  64, Integer; Value=0 to refresh
            Vertexcount:     Offset 100, Integer
         Until Surfacehandle N


Local Array
   Local a[10]
   Address = Int(a)


Type
   Type test_t
      Field aa%
      Field bb#
      Field cc$
      Field dd[2]
   End Type

   a.test_t = New test_t
   b.test_t = New test_t
   c.test_t = New test_t
   Int(b)
      Int(c): Offset 4, Integer
      Int(a): Offset 8, Integer
      aa%:    Offset 20, Integer
      bb#:    Offset 24, Integer
      cc$:    Offset 28, Integer
      dd[]:   Offset 32, Integer
         dd[0]: Offset 0, Integer
         dd[1]: Offset 4, Integer
         dd[2]: Offset 8, Integer

mfg olli
  • Zuletzt bearbeitet von Vertex am Di, Jul 06, 2004 15:23, insgesamt einmal bearbeitet

Plasma(alt)

Betreff: ok

BeitragDi, Okt 05, 2004 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
super vertex kann ich brauchen !!
bin so vergesslich
DIV is dead !
 

Ava

Gast

BeitragSo, Nov 28, 2004 15:06
Antworten mit Zitat
Mich würd mal interessieren, wie ich das anwende ... Rolling Eyes
Also wie ich in die entsprechenden Banks reinkomme (wo ich die Adressen herbekomme) und wie ich dort etwas verändern kann?
Ein kleines Beispiel wäre echt klasse! Mich interessieren vorallem Images... Rolling Eyes

Lieben Gruss
+ Ava +

eXceptION

BeitragMo, Nov 29, 2004 6:44
Antworten mit Zitat
Benutzer-Profile anzeigen
beim image.lock ... value >= 1 ist locked... oder?

also wenn:
lockbuffer(buf)
lockbuffer(buf)

muss man auch:
unlockbuffer(buf)
unlockbuffer(buf)

directx macht es auf jedenfall so dass die lockcount steigert bei locken, und umgekehrt bei unlocken... ob bb objects das auch so machen weiss ich ja nicht... Rolling Eyes
Norweger...

Spreche aber verdammt gut 8086

Freeman

BeitragMo, Nov 29, 2004 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ich frage mich auch wie ich das nutzen kann. Wäre nett wenn man jemand ein gutes beispiel schreiben könnte, damit die breite masse das auch versteht und nichtnur die cracks Smile
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

Jan_

Ehemaliger Admin

BeitragMo, Dez 06, 2004 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Beispiel zum "hacken" der Banks:

Code: [AUSKLAPPEN]

;.lib "kernel32.dll"
;RtlMoveMemory(Destination%, Source%, Length%) ; copy memory from [Source, Source+Length[ to [Destination, Destination+Length[

;Bank
;   Address: Offset 4, Integer  <-- Stehen die ganzen Werte drinne
;   Size: Offset 8, Integer         <-- Steht drinne, wie Groß die Bank ist

Graphics 640, 480, 32,2

;Bisschen was Zufälliges
SeedRnd MilliSecs()

;Größe der Bank
Size=Rand(4,32)

;Bank erstellen
srcBank% = CreateBank(Size+1)
For i = 0 To Size ; Bank Füllen
   PokeByte(srcBank, i, 3*i)
Next


Print "Anzahl: "+Get_Mem_int(srcBank+8) +"="+ (Size+1) ; 1. Test, ob das aus der Bank genauso groß ist, wie die size

destBank% = CreateBank(Get_Mem_int(srcBank+8)) ; erstellen der Ziel Bank

RtlMoveMemory(destBank, Get_Mem_int(srcBank+4), Get_Mem_int(srcBank+8)) ;Kopieren der Source in die Zielbank


For i = 0 To Size ; Anzeigen der Zielbank
   Print i+": "+PeekByte(destBank, i) + "    " + i+"*3= " + (i*3)
Next

WaitKey() ; warten

End ; beenden

Function Get_Mem_int(Adress%); Kleine Hilfe Function von mir :-)
   Local destBank = CreateBank(4)
   Local Integer
   RtlMoveMemory(destBank, Adress%, 4)
   integer=PeekInt(destBank,0)
   FreeBank destBank
   Return integer
End Function


Dann findet man auch ganz schnell andere sachen heraus:

Zitat:
;StartAdress: Texturebuffer(Texture)
; Texturewidth: Offset 92, Integer ; In Pixel
; Textureheight: Offset 96, Integer ; In Pixel
; Texturedepth: Offset 100, Integer ; in Bit
between angels and insects

Xaymar

ehemals "Cgamer"

BeitragMo, Jul 12, 2010 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Entity
   Entity Refresh:       Offset  44, Integer; Value=3 to refresh
   Entity Pitch:         Offset  48, Float
   Entity Yaw:           Offset  52, Float
   Entity Roll:          Offset  56, Float
   Entity Unknown:       Offset  60, Float
   Entity X:             Offset  64, Float
   Entity Y:             Offset  68, Float
   Entity Z:             Offset  72, Float
   Entity Matrix:        Offset  76, Float(16)
   Entity Matrix:        Offset  80, Float(15)
   Entity Matrix:        Offset  84, Float(14)
   Entity Matrix:        Offset  88, Float(13)
   Entity Matrix:        Offset  92, Float(12)
   Entity Matrix:        Offset  96, Float(11)
   Entity Matrix:        Offset 100, Float(10)
   Entity Matrix:        Offset 104, Float(9)
   Entity Matrix:        Offset 108, Float(8)
   Entity Matrix:        Offset 112, Float(7)
   Entity Matrix:        Offset 116, Float(6)
   Entity Matrix:        Offset 120, Float(5)
   Entity Matrix:        Offset 124, Float(4)
   Entity Matrix:        Offset 128, Float(3)
   Entity Matrix:        Offset 132, Float(2)
   Entity Matrix:        Offset 136, Float(1)
   Entity Order:         Offset 228, Integer
   Entity Radius X:      Offset 232, Float
   Entity Radius Y:      Offset 236, Float
   Entity Box X:         Offset 264, Float
   Entity Box Y:         Offset 268, Float
   Entity Box Z:         Offset 272, Float
   Entity Box Width:     Offset 276, Float
   Entity Box Height:    Offset 280, Float
   Entity Box Depth:     Offset 284, Float
   Entity PickMode:      Offset 288, Integer
   Entity Pick-Geometry: Offset 292, Integer
   Entity FX:            Offset 724, Integer


Zugriff auf Position, Rotation und Matrix ist auch möglich. Letzteres brauche ich^^

PacMani

BeitragMo, Jul 12, 2010 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Wink

Sieht sehr interessant aus. Wäre der Zugriff durch "hacken" schneller als die internen B3D-Befehle oder was kann ich für Eigenschaften ändern, die ich so nicht kann?

Xaymar

ehemals "Cgamer"

BeitragDi, Jul 13, 2010 3:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Um auf die Frage von Pac-Man zu antworten: In fast jedem fall, außer du nimmst BB zum hacken^^

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group