Summary of the invention
In view of the deficiencies of the prior art, the present invention provides a kind of reverse methods for obtaining UE4 global object table, including with
Lower step:
S1, detection target game obtain initial information;
S2, it calls initial information and demonstration sample is write based on target game;
The deviant of GUObjectArray in S3, analysis demonstration sample;
S4, the deviant that GUObjectArray in target game is obtained using the mode in S3;
S5, the storage address of positioning target game GUObjectArray in memory;
S6, it calls storage address and obtains global object's table of target game.
Further, the initial information includes the version of UE4.
Further, writing UE4 version used in demonstration sample must be identical as the UE4 version in initial information.
Further, the positioning of storage address is to add deviant reality by the plot of GUObjectArray in target game
Existing.
A kind of reverse device for obtaining UE4 global object table, comprises the following modules:
Detection module obtains initial information for detecting target game;
Sample module, for calling initial information and writing demonstration sample based on target game;
First analysis module, for analyzing the deviant of GUObjectArray in demonstration sample;
Second analysis module, for obtaining the deviant of GUObjectArray in target game using the mode in S3;
Locating module, for positioning the storage address of target game GUObjectArray in memory;And
Calling module, for calling storage address and obtaining global object's table of target game.
Further, the initial information includes the version of UE4.
Further, writing UE4 version used in demonstration sample must be identical as the UE4 version in initial information.
Further, the positioning of storage address is to add deviant reality by the plot of GUObjectArray in target game
Existing.
A kind of computer readable storage medium, is stored thereon with computer instruction, it is characterised in that the instruction is by processor
The step of method according to any one of claims 1 to 4 is realized when execution.
The invention has the benefit that realizing the technology effect for obtaining target game global object table under the premise of passive coding
Fruit effectively improves working efficiency.
Specific embodiment
It should be appreciated that the embodiment of the present invention can be by computer hardware, the combination of hardware and software or by depositing
The computer instruction in non-transitory computer-readable memory is stored up to be effected or carried out.Standard can be used in the method
Programming technique-includes that the non-transitory computer-readable storage media configured with computer program is realized in computer program,
Wherein configured in this way storage medium operates computer in a manner of specific and is predefined --- according in specific embodiment
Described in method and attached drawing.Each program can with the programming language of level process or object-oriented come realize with calculating
Machine system communication.However, if desired, the program can be realized with compilation or machine language.Under any circumstance, which can
With the language for being compiling or explaining.In addition, the program can be run on the specific integrated circuit of programming for this purpose.
In addition, the operation of process described herein can be performed in any suitable order, unless herein in addition instruction or
Otherwise significantly with contradicted by context.Process described herein (or modification and/or combination thereof) can be held being configured with
It executes, and is can be used as jointly in one or more processors under the control of one or more computer systems of row instruction
The code (for example, executable instruction, one or more computer program or one or more application) of upper execution, by hardware or
A combination thereof is realized.The computer program includes the multiple instruction that can be performed by one or more processors.
Further, the method can be realized in being operably coupled to suitable any kind of computing platform, wrap
Include but be not limited to PC, mini-computer, main frame, work station, network or distributed computing environment, individual or collection
At computer platform or communicate with charged particle tool or other imaging devices etc..Each aspect of the present invention can be with
The machine readable code in non-transitory storage medium or equipment is stored in realize, no matter is moveable or is integrated to
Computing platform, such as hard disk, optical reading and/or write-in storage medium, RAM, ROM, so that it can be read by programmable calculator
It takes, can be used for configuration and operation computer when storage medium or equipment are read by computer to execute mistake described herein
Journey.In addition, machine readable code, or part thereof can be transmitted by wired or wireless network.When such media include that combination is micro-
When processor or other data processors realize the instruction or program of steps described above, invention as described herein includes these
With other different types of non-transitory computer-readable storage medias.When methods and techniques according to the present invention program
When, the invention also includes computers itself.
Computer program can be applied to input data to execute function as described herein, to convert input data with life
At storing to the output data of nonvolatile memory.It is such as aobvious that output information can also be applied to one or more output equipments
Show device.In the preferred embodiment of the invention, the data of conversion indicate physics and tangible object, including generate on display
Physics and physical objects particular visual describe.
It should be noted that such as without Special Statement, in the disclosure used in the "an" of singular, " described " and
"the" is also intended to including most forms, unless the context clearly indicates other meaning.In addition, unless otherwise defined, this paper institute
All technical and scientific terms used are identical as the normally understood meaning of those skilled in the art.Illustrate herein
Term used in book is intended merely to description specific embodiment, is not intended to be limiting of the invention.Art used herein
Language "and/or" includes the arbitrary combination of one or more listed items.
(" such as ", " such as ") makes it should be appreciated that provided in this article any and all example or exemplary language
With being intended merely to that the embodiment of the present invention is better described, and unless the context requires otherwise, otherwise the scope of the present invention will not be applied
Limitation.
Next specific embodiments of the present invention are described further in conjunction with attached drawing:
It show overview flow chart according to the present invention referring to Fig.1, specifically includes the following steps:
S1, detection target game obtain initial information;The initial information includes but is not limited to the version of UE4, is actually obtained
The initial information taken is determined based on need of work;
S2, it calls initial information and demonstration sample is write based on target game;The UE4 of identical version has write difference at any time
Game, but the realization logic of its global object's table is identical, therefore it is necessary to write UE4 version used in demonstration sample
It is identical as the UE4 version in initial information;
The deviant of GUObjectArray in S3, analysis demonstration sample;
S4, the deviant that GUObjectArray in target game is obtained using the mode in S3;
S5, the storage address of positioning target game GUObjectArray in memory;The positioning of storage address is to pass through mesh
Mark what the plot addition deviant of GUObjectArray in game was realized, obtain the purpose of deviant also for by with base
The address of global object's table in memory under the combination positioning present case of location;
S6, it calls storage address and obtains global object's table of target game.
It is shown apparatus according to the invention connection figure referring to Fig. 2, is specifically included with lower module:
Detection module connect realization interaction with sample module, obtains initial information for detecting target game;
Sample module connect realization interaction with the first analysis module, for calling initial information and being compiled based on target game
Write demonstration sample;
First analysis module connect realization interaction with the second analysis module, for analyzing in demonstration sample
The deviant of GUObjectArray;
Second analysis module connect realization interaction with locating module, for obtaining in target game using the mode in S3
The deviant of GUObjectArray;
Locating module connect realization interaction with calling module for positioning target game GUObjectArray in memory
Storage address;And
Calling module, for calling storage address and obtaining global object's table of target game.
A kind of computer readable storage medium, is stored thereon with computer instruction, it is characterised in that the instruction is by processor
Each step in the above method is realized when execution.
Referring to Fig. 3 it show A according to a particular embodiment of the invention, embodiment A shows to be compiled based on the present invention
One UE4 global object scan tool, by program screenshot shown in figure, staff can easily obtain different objects
Real-time address in memory.
It is shown B according to a particular embodiment of the invention referring to Fig. 4, embodiment B shows how to obtain target game
UE4 version.By taking Android game as an example, based on the game of UE4 engine exploitation, in game installation kit, there are entitled
The file of libUE4.so, it is the core document of game engine and game logic.LibUE4.so file is opened by IDA, it
It is scanned in Strings window by keyword of UE4 afterwards, UE4 version used in target game can be obtained.
Referring to Figure 5 for according to specific embodiments of the present invention C, embodiment C show how from IDA by inverse
GUObjectArray deviant is obtained to analysis.
For example, global object's table is the example of a FUObjectArray type in UE4.18 source code:
From the foregoing, it will be observed that we are only it needs to be determined that the address of ObjObjects, is equivalent to have found global object's table.Pass through
UE4.18 source code is read, discovery ObjObjects is cited in the constructed fuction of FUObjectArray:
FUObjectArray::FUObjectArray()
:ObjFirstGCIndex(0)
,ObjLastNonGCIndex(INDEX_NONE)
,MaxObjectsNotConsideredByGC(0)
,OpenForDisregardForGC(!HACK_HEADER_GENERATOR)
,MasterSerialNumber(START_SERIAL_NUMBER)
{
GCoreObjectArrayForDebugVisualizers=&GUObjectArray.ObjOb jects;
}
LibUE4.so is opened using IDA, checks FUObjectArray::FUObjectArray.
That is GCoreObjectArrayForDebugVisualizers=&GUObjectArray.ObjOb jects;With figure
The code of 3 centers choosing is corresponding.
Specifically, unk_7397290 is a global variable, so its offset in libUE4.so is 0x
07397290。
It show D according to a particular embodiment of the invention referring to figure 6 and figure 7, embodiment D shows how to obtain target
The position of game global object table in memory.
The offset of global object's table in target game is determined first:
We need first to determine the address of FUObjectArray::FUObjectArray function, because there are two for the function
System feature can search for byte sequence based on this feature to be positioned in IDA.* ((DOWRD*) v1+83) in Fig. 5
The corresponding ARM instruction of=1000 code statements includes: MOV, R2 and #0x3E8, and the corresponding byte sequence of the instruction is: FA
2F A0E3。
Byte sequence is searched in IDA: FA 2F A0E3, obtaining that FUObjectArray::FUObjectArray is all can
Can it is alternative;From target game it is alternative in, one by one with FUObjectArray::FUObjectArray pairs of DemoGame
Than, so that it is determined that in TargetGame FUObjectArray::FUObjectArray offset, it is final to determine global object's table
Offset.
In the example that Fig. 6 and Fig. 7 is shown, the offset address of ObjObjects is: 0x04170A98;Operational objective game,
The position of global object's table in memory is determined by " plot+offset ";The plot of libUE4.so is 0xc9c98000;Cause
This, the address of global object's table in memory is: ObjObjects_addr=0xc9c98000+0x04170A98.
The above, only presently preferred embodiments of the present invention, the invention is not limited to above embodiment, as long as
It reaches technical effect of the invention with identical means, all should belong to protection scope of the present invention.In protection model of the invention
Its technical solution and/or embodiment can have a variety of different modifications and variations in enclosing.