All pastes #347960 Raw Edit

Someone

public text v1 · immutable
·published 2007-02-09 20:40 UTC
rendered paste body
SCM 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