Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {$CLEO}
- 11@ = 0
- 05F7: 0@ = label @lbl offset
- 05DF: write_memory 0x00689A5C size 4 value 0@ virtual_protect 1 //689A5C
- 05F8: 1@ = var 11@ offset
- 0@ += 2
- 05DF: write_memory 0@ size 4 value 1@ virtual_protect 0
- while true
- wait 0
- if
- 11@ == 1
- then
- while true
- wait 0
- if and
- $ONMISSION == 0
- not Actor.Driving($PLAYER_ACTOR)
- then
- Break
- end
- end
- 05DF: write_memory 0x61D8F7 size 5 value 0x90 virtual_protect 1
- 05E1: call 0x61D8B0 num_params 1 pop 0 6
- 05DF: write_memory 0x61D8F7 size 1 value 0xE8 virtual_protect 1
- 05F5: call_scm_func @setMemOffset 3 memory 0x61D8F8 pointing_to 0x0061A690 virtual_protect 1
- 11@ = 0
- end
- end
- :lbl
- hex
- C705 00000000 01000000 // MOV DWORD PTR DS:[00000000], 1
- B8 C56B4500 // MOV EAX,00456BC5
- FFE0 // JMP EAX
- end
- {
- FUNCTIONS INCLUDED:
- - getMemOffset
- Type: GET
- Description: Get the relative offset of a memory pointing to a specific address.
- - setMemOffset
- Type: GET
- Description: Set a 4-byte relative offset of a memory pointing to a specific address with virtual protection.
- }
- :getMemOffset
- {
- Parameters:
- Passed:
- 0@ - memory pointer
- 1@ - memory to point
- Result:
- 1@ - memory offset
- Example:
- 05F5: call_scm_func @getMemOffset 2 memory 0x0 pointing_to 0x0 store_to 1@
- }
- 0@ += 0x4
- 000E: 1@ -= 0@
- 05F6: ret 1 1@
- :setMemOffset
- {
- Parameters:
- Passed:
- 0@ - memory pointer
- 1@ - memory to point
- 2@ - virtual protection
- Result:
- none
- Example:
- 05F5: call_scm_func @setMemOffset 3 memory 0x0 pointing_to 0x0 virtual_protect 0
- }
- 05F5: call_scm_func @getMemOffset 2 memory 0@ pointing_to 1@ store_to 3@
- 05DF: write_memory 0@ size 4 value 3@ virtual_protect 2@
- 05F6: ret 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement