-
Posts
75 -
Joined
-
Last visited
-
Days Won
2
Un_Known last won the day on May 28 2020
Un_Known had the most liked content!
Additional Information
-
Android
9.x (Pie)
Recent Profile Visitors
7,270 profile views
Un_Known's Achievements
-
Chainer: search and restore pointers chains - GameGuardian
Un_Known commented on Enyby's gallery image in Video Tutorials
-
Chainer: search and restore pointers chains - GameGuardian
Un_Known commented on Enyby's gallery image in Video Tutorials
-
It's for understanding game logic and then modding the game!
-
If above Answer is confusing this might be better explanation: In ARM State: PC (Program counter , R15). stores the address of the current instruction plus 8 (two ARM instructions) in ARM state. In Thumb State: For B, BL, CBNZ, and CBZ instructions, the value of the PC is the address of the current instruction plus 4 bytes. For all other instructions that use labels, the value of the PC is the address of the current instruction plus 4 bytes, with bit[1] of the result cleared to 0 to make it word-aligned.
-
So finally I Got answer to this thnx to @saiaapiz . Posting Answer here because it can help many! The Program Counter is automatically incremented by the size of the instruction executed. This size is always 4 bytes in ARM state and 2 bytes in THUMB mode. When a branch instruction is being executed, the PC holds the destination address. During execution, PC stores the address of the current instruction plus 8 (two ARM instructions) in ARM state, and the current instruction plus 4 (two Thumb instructions) in Thumb(v1) state. This is different from x86 where PC always points to the next instruction to be executed.
-
Why pc is pointing to 0x8 shouldn't it be pointing to 0x4 from current address! As next instruction would always be at 0x4 from current address as instructions are of 32 bits (exclude thumb instruction set here )@saiaapiz
-
Thnx buddy for putting a lot of effort just to helpme!
-
Above question can be ignored Updated: I think it is offset is loaded into R1 after subtraction between ahighscore and 0x19D8B4 and their addresses being subtracted! so Here ahighscore has address =>00319CEC so 00319CEC - 0x19D8B4 =17C438 So R1, = 17C438 would it be an offset? Am.i correct or Wrong? @saiaapiz @Enyby
-
What is happening here can u explain? I have highlighted offset pushed to R1 with cursor? what type of sign is between ahighscore and offset is it just a dash ? What is purpose of ahighscore here? Any reference guide for arm instruction set ?
-
ohh thnx buddy once again sorry for disturbing you
-
It generally means that value of coins would be highest (because 2147483647 is largest dword) only when value in R0 is less than 0 Okk if I change MOVLT to MOV and STRLT to STR then value will always be 2147483647 because it will bypass condition check is it correct and plz elaborate this part =(dword_36BD38 - 0x19D86C) couldn't understand this That What would be value in R3 register @saiaapiz
-
I have learnt a lot after joining GG forum. Thnx to @saiaapiz @Enyby
-
Can anybody explain logic here It's ARM instruction set: Here dword_36BD38 is uninitialized variable in .bss section LDR R3, =(dword_36BD38 - 0x19D86C) ADD R3, PC, R3 ; dword_36BD38 CMP R0, #0 STR R0, [R3] MOVLT R2, #0x7FFFFFFF STRLT R2, [R3] I have a little idea what's happening here but couldn't understand whole logic!
-
-
Chainer: search and restore pointers chains - GameGuardian
Un_Known commented on Enyby's gallery image in Video Tutorials