mardi 25 mars 2014

How RP are working for you topic




For those having trouble reversing UObject, fear not. RP did it for you!

Code:


;************************************************************************
;
; LET THE FUN BEGIN
;
;************************************************************************
11079220    55                  PUSH EBP
11079221    8BEC                MOV EBP,ESP
11079223    83EC 24            SUB ESP,24
11079226    53                  PUSH EBX
11079227    56                  PUSH ESI
11079228    8BF1                MOV ESI,ECX
1107922A    57                  PUSH EDI
1107922B    8A06                MOV AL,BYTE PTR DS:[ESI]
1107922D    8A46 3F            MOV AL,BYTE PTR DS:[ESI+3F]
11079230    8B7E 20            MOV EDI,DWORD PTR DS:[ESI+20] ; get objects index
11079233    33DB                XOR EBX,EBX
11079235    85FF                TEST EDI,EDI ; null check it
11079237    78 38              JS SHORT 11079271
11079239    3B3D 20B95B12      CMP EDI,DWORD PTR DS:[125BB920] ; verify index < GObjObjects->ArrayNum
1107923F    7D 30              JGE SHORT 11079271
11079241    A1 1CB95B12        MOV EAX,DWORD PTR DS:[125BB91C] ; GObjObjects
11079246    8B04B8              MOV EAX,DWORD PTR DS:[EDI*4+EAX] ; get it by index
11079249    85C0                TEST EAX,EAX ; null check
1107924B    75 09              JNE SHORT 11079256
1107924D    57                  PUSH EDI
1107924E    56                  PUSH ESI
1107924F    68 A08ABE11        PUSH 11BE8AA0 ; UNICODE "IsValid 0x%08X: GObjObjects( %i ) == NULL"
11079254    EB 22              JMP SHORT 11079278
11079256    3BC6                CMP EAX,ESI
11079258    74 0B              JE SHORT 11079265
1107925A    57                  PUSH EDI
1107925B    56                  PUSH ESI
1107925C    8BD8                MOV EBX,EAX
1107925E    68 F88ABE11        PUSH 11BE8AF8 ; UNICODE "IsValid 0x%08X: GObjObjects( %i ) == <other object>"
11079263    EB 13              JMP SHORT 11079278
11079265    5F                  POP EDI
11079266    5E                  POP ESI
11079267    B8 01000000        MOV EAX,1
1107926C    5B                  POP EBX
1107926D    8BE5                MOV ESP,EBP
1107926F    5D                  POP EBP
11079270    C3                  RETN
11079271    57                  PUSH EDI
11079272    56                  PUSH ESI
11079273    68 508ABE11        PUSH 11BE8A50 ; UNICODE "IsValid 0x%08X: Invalid object index %i"
11079278    68 FF020000        PUSH 2FF
1107927D    68 F8020000        PUSH 2F8
11079282    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079288    E8 B38C88FF        CALL 10901F40
1107928D    83C4 18            ADD ESP,18
11079290    56                  PUSH ESI
11079291    68 608BBE11        PUSH 11BE8B60 ; UNICODE "IsValid 0x%08X: UObject has incorrect GObjObjects index"
11079296    68 FF020000        PUSH 2FF
1107929B    68 F8020000        PUSH 2F8
110792A0    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110792A6    E8 958C88FF        CALL 10901F40
110792AB    FF36                PUSH DWORD PTR DS:[ESI] ; <<
110792AD    68 D08BBE11        PUSH 11BE8BD0 ; UNICODE "    vtable          0x%08X"
110792B2    68 FF020000        PUSH 2FF
110792B7    68 F8020000        PUSH 2F8
110792BC    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110792C2    E8 798C88FF        CALL 10901F40
110792C7    FF76 20            PUSH DWORD PTR DS:[ESI+20] ; <<
110792CA    68 088CBE11        PUSH 11BE8C08 ; UNICODE "    Index            %i"
110792CF    68 FF020000        PUSH 2FF
110792D4    68 F8020000        PUSH 2F8
110792D9    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110792DF    E8 5C8C88FF        CALL 10901F40
110792E4    FF76 0C            PUSH DWORD PTR DS:[ESI+0C] ;
110792E7    FF76 08            PUSH DWORD PTR DS:[ESI+8] ; << (ULONG [2])
110792EA    68 388CBE11        PUSH 11BE8C38 ; UNICODE "    ObjectFlags      0x%I64X"
110792EF    68 FF020000        PUSH 2FF
110792F4    68 F8020000        PUSH 2F8
110792F9    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110792FF    E8 3C8C88FF        CALL 10901F40
11079304    83C4 54            ADD ESP,54
11079307    FF76 04            PUSH DWORD PTR DS:[ESI+4] ; <<
1107930A    68 748CBE11        PUSH 11BE8C74 ; UNICODE "    HashNext        0x%08X"
1107930F    68 FF020000        PUSH 2FF
11079314    68 F8020000        PUSH 2F8
11079319    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
1107931F    E8 1C8C88FF        CALL 10901F40
11079324    FF76 10            PUSH DWORD PTR DS:[ESI+10] ; <<
11079327    68 AC8CBE11        PUSH 11BE8CAC ; UNICODE "    HashOuterNext    0x%08X"
1107932C    68 FF020000        PUSH 2FF
11079331    68 F8020000        PUSH 2F8
11079336    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
1107933C    E8 FF8B88FF        CALL 10901F40
11079341    FF76 14            PUSH DWORD PTR DS:[ESI+14] ; <<
11079344    68 E48CBE11        PUSH 11BE8CE4 ; UNICODE "    StateFrame      0x%08X"
11079349    68 FF020000        PUSH 2FF
1107934E    68 F8020000        PUSH 2F8
11079353    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079359    E8 E28B88FF        CALL 10901F40
1107935E    FF76 18            PUSH DWORD PTR DS:[ESI+18] ; <<
11079361    68 1C8DBE11        PUSH 11BE8D1C ; UNICODE "    _Linker          0x%08X"
11079366    68 FF020000        PUSH 2FF
1107936B    68 F8020000        PUSH 2F8
11079370    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079376    E8 C58B88FF        CALL 10901F40
1107937B    83C4 50            ADD ESP,50
1107937E    FF76 1C            PUSH DWORD PTR DS:[ESI+1C] ; <<
11079381    68 548DBE11        PUSH 11BE8D54 ; UNICODE "    _LinkerIndex    0x%08X"
11079386    68 FF020000        PUSH 2FF
1107938B    68 F8020000        PUSH 2F8
11079390    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079396    E8 A58B88FF        CALL 10901F40
1107939B    FF76 24            PUSH DWORD PTR DS:[ESI+24] ; <<
1107939E    68 8C8DBE11        PUSH 11BE8D8C ; UNICODE "    NetIndex        %d"
110793A3    68 FF020000        PUSH 2FF
110793A8    68 F8020000        PUSH 2F8
110793AD    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110793B3    E8 888B88FF        CALL 10901F40
110793B8    FF76 28            PUSH DWORD PTR DS:[ESI+28] ; <<
110793BB    68 BC8DBE11        PUSH 11BE8DBC ; UNICODE "    nDynRefsIndex    %d"
110793C0    68 FF020000        PUSH 2FF
110793C5    68 F8020000        PUSH 2F8
110793CA    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110793D0    E8 6B8B88FF        CALL 10901F40
110793D5    FF76 2C            PUSH DWORD PTR DS:[ESI+2C]; <<
110793D8    68 EC8DBE11        PUSH 11BE8DEC ; UNICODE "    Outer            0x%08X"
110793DD    68 FF020000        PUSH 2FF
110793E2    68 F8020000        PUSH 2F8
110793E7    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
110793ED    E8 4E8B88FF        CALL 10901F40
110793F2    83C4 50            ADD ESP,50
;...
110794A8    8945 F4            MOV DWORD PTR SS:[EBP-0C],EAX
110794AB    8B0D 08535512      MOV ECX,DWORD PTR DS:[12555308]; << name array GNames
110794B1    8B46 30            MOV EAX,DWORD PTR DS:[ESI+30]; << UObject::Name::Index
110794B4    8B0481              MOV EAX,DWORD PTR DS:[EAX*4+ECX]
110794B7    8D4D F4            LEA ECX,[EBP-0C]
110794BA    F700 00400000      TEST DWORD PTR DS:[EAX],00004000; << flag check on FNameEntry
110794C0    74 10              JE SHORT 110794D2
110794C2    F640 08 01          TEST BYTE PTR DS:[EAX+8],01
110794C6    FF70 10            PUSH DWORD PTR DS:[EAX+10] ; ptr to char
110794C9    74 1C              JE SHORT 110794E7
110794CB    E8 20CF88FF        CALL 109063F0
110794D0    EB 1A              JMP SHORT 110794EC
110794D2    F640 08 01          TEST BYTE PTR DS:[EAX+8],01
110794D6    74 0B              JE SHORT 110794E3
110794D8    83C0 10            ADD EAX,10 ; v
110794DB    50                  PUSH EAX ; char array
110794DC    E8 0FCF88FF        CALL 109063F0
;...
11079514    B8 68C1A011        MOV EAX,11A0C168
11079519    0F4545 F4          CMOVNE EAX,DWORD PTR SS:[EBP-0C]
1107951D    50                  PUSH EAX
1107951E    68 248EBE11        PUSH 11BE8E24 ; UNICODE "    Name            %s"
11079523    68 FF020000        PUSH 2FF
11079528    68 F8020000        PUSH 2F8
1107952D    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079533    E8 088A88FF        CALL 10901F40
11079538    8B55 F4            MOV EDX,DWORD PTR SS:[EBP-0C]
1107953B    83C4 14            ADD ESP,14
1107953E    C745 FC 00000000    MOV DWORD PTR SS:[EBP-4],0
11079545    C745 F8 00000000    MOV DWORD PTR SS:[EBP-8],0
1107954C    85D2                TEST EDX,EDX
1107954E    74 0C              JE SHORT 1107955C
11079550    8B0D D4535512      MOV ECX,DWORD PTR DS:[125553D4]
11079556    52                  PUSH EDX
11079557    8B01                MOV EAX,DWORD PTR DS:[ECX]
11079559    FF50 50            CALL DWORD PTR DS:[EAX+50]
1107955C    FF76 38            PUSH DWORD PTR DS:[ESI+38] ; <<
1107955F    68 548EBE11        PUSH 11BE8E54 ; UNICODE "    Class            0x%08X"
11079564    68 FF020000        PUSH 2FF
11079569    68 F8020000        PUSH 2F8
1107956E    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079574    E8 C78988FF        CALL 10901F40
11079579    FF76 3C            PUSH DWORD PTR DS:[ESI+3C] ; << total class size = 40h
1107957C    68 8C8EBE11        PUSH 11BE8E8C ; UNICODE "    ObjectArchetype  0x%08X"
11079581    68 FF020000        PUSH 2FF
11079586    68 F8020000        PUSH 2F8
1107958B    FF35 0C3E1112      PUSH DWORD PTR DS:[12113E0C]
11079591    E8 AA8988FF        CALL 10901F40

;************************************************************************
;
; GREETZ TO THE RELOADED PRODUCTIONS TEAM THAT ALWAYS TRIES TO MAKE IT
; EASIER FOR US ;)
;
;************************************************************************







Aucun commentaire:

Enregistrer un commentaire