If you use SA, it can be done faster:
| CODE |
{$CLEO} 0A9F: 0@ = current_thread_pointer 0@ += 0x10 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0@ -= @DLL_Name
0AA7: call_function 0x81E406 num_params 1 pop 0 lpModuleName 0@ HMODULE_result 2@ // 1@ - address of CLEO.asi
// You can do: 1@ += 0x3D748
while true wait 0 0AD1: show_formatted_text_highpriority "DLL base address: %X" time 2000 2@ end
:DLL_Name hex "cleo.asi" 00 end
|
CLEO4 makes stuff EVEN easier:
| CODE |
{$CLEO} 0AA7: call_function 0x81E406 num_params 1 pop 0 lpModuleName "cleo.asi" HMODULE_result 2@ // 1@ - address of CLEO.asi
// You can do: 1@ += 0x3D748
while true wait 0 0AD1: show_formatted_text_highpriority "DLL base address: %X" time 2000 2@ end
|
Edit:
As you seem to mod VC more, address of this function in VC is
0x663550, so you can try the 2nd method using this address instead (and, of course, VC opcode IDs).