rendered paste bodySCM Hook ASM:
01555555 66A155565501 mov ax,[0x1555655]
0155555b 6683F800 cmp ax,0x0
0155555f 741F je short 0x01555580
01555561 B955565501 mov ecx,0x1555655
01555566 890D69545501 mov [0x1555469],ecx
0155556c B955545501 mov ecx,0x1555455
01555571 E88A49F1FE call 0x00469F00
01555576 66B80000 mov ax,0x0
0155557a 66A355565501 mov [0x1555655],ax
01555580 C7055CCBB700ACC52737 mov dword ptr [0xB7CB5C],0x3727C5AC
0155558a E925C400FF jmp 0x005619B4
SCMHOOK VB6 Code:
Dim SCMHookASM(58) As Byte
Dim SCMHookASMJump(4) As Byte
Const SCMInjectAddr = &H1555555
Const SCMInjectJumpAddr = &H53BF9C
Public Sub InjectSCM()
Dim i As Integer
Dim Orig() As Byte
SCMHookASM(0) = &H66
SCMHookASM(1) = &HA1
SCMHookASM(2) = &H55
SCMHookASM(3) = &H56
SCMHookASM(4) = &H55
SCMHookASM(5) = &H1
SCMHookASM(6) = &H66
SCMHookASM(7) = &H83
SCMHookASM(8) = &HF8
SCMHookASM(9) = &H0
SCMHookASM(10) = &H74
SCMHookASM(11) = &H1F
SCMHookASM(12) = &HB9
SCMHookASM(13) = &H55
SCMHookASM(14) = &H56
SCMHookASM(15) = &H55
SCMHookASM(16) = &H1
SCMHookASM(17) = &H89
SCMHookASM(18) = &HD
SCMHookASM(19) = &H69
SCMHookASM(20) = &H54
SCMHookASM(21) = &H55
SCMHookASM(22) = &H1
SCMHookASM(23) = &HB9
SCMHookASM(24) = &H55
SCMHookASM(25) = &H54
SCMHookASM(26) = &H55
SCMHookASM(27) = &H1
SCMHookASM(28) = &HE8
SCMHookASM(29) = &H8A
SCMHookASM(30) = &H49
SCMHookASM(31) = &HF1
SCMHookASM(32) = &HFE
SCMHookASM(33) = &H66
SCMHookASM(34) = &HB8
SCMHookASM(35) = &H0
SCMHookASM(36) = &H0
SCMHookASM(37) = &H66
SCMHookASM(38) = &HA3
SCMHookASM(39) = &H55
SCMHookASM(40) = &H56
SCMHookASM(41) = &H55
SCMHookASM(42) = &H1
SCMHookASM(43) = &HC7
SCMHookASM(44) = &H5
SCMHookASM(45) = &H5C
SCMHookASM(46) = &HCB
SCMHookASM(47) = &HB7
SCMHookASM(48) = &H0
SCMHookASM(49) = &HAC
SCMHookASM(50) = &HC5
SCMHookASM(51) = &H27
SCMHookASM(52) = &H37
SCMHookASM(53) = &HE9
SCMHookASM(54) = &H25
SCMHookASM(55) = &HC4
SCMHookASM(56) = &H0
SCMHookASM(57) = &HFF
SCMHookASM(58) = &H0
SCMHookASMJump(0) = &HE9
SCMHookASMJump(1) = &HB4
SCMHookASMJump(2) = &H95
SCMHookASMJump(3) = &H1
SCMHookASMJump(4) = &H1
'Write the ASM in for the hook
For i = 0 To 58
WriteMemoryByte SCMInjectAddr + i, SCMHookASM(i)
Next
'Nop it now
FrmMain.GTAHOOK.NOP SCMInjectJumpAddr, 5, Orig()
'Now write the new jumping
For i = 0 To 4
WriteMemoryByte SCMInjectJumpAddr + i, SCMHookASMJump(i)
Next
End Sub