Well, It's a nice background picture.
From error that you show is about wrong symbol replacement due to some PC value may restore in symbol X that i using for variable.
So that you can reduce code to below.
Code:
[ENABLE]
alloc(newmem,2048) //2kb should be enough
label(exit)
label(returnhere)
4230AA:
jmp newmem
returnhere:
newmem:
cmp [10044004],ff
je exit
mov [10044000],00
pushad
pushfd
push 00000000
push 10000000
push 10003FD0
push 02
call SetWindowsHookExA
mov [10044004],ff
popfd
popad
exit:
mov ecx,[ebp-0c]
pop edi
pop esi
jmp returnhere
UnhookWindowsHookEx:
ret 0004
[DISABLE]
4230AA:
mov ecx,[ebp-0c]
pop edi
pop esi
10044000:
nop
UnhookWindowsHookEx:
ret 0004
For about "how to reopen SV without recracking it", Now I still can't find tool to expand it. Other post is not work.
Anyway this method (2 code) is so confusion and annoy and mislead you forget to activate code 2 and take your item gone away. Please using it carefully and with your own risk.