Fishing bot POC without offsets, works in all liquids
Truly, reppin did amazing job on his fishbot(almost 2000 lines of code on autohotkey,wtf), yet after each minor update pointers become useless and you need to rescan them.
What i've found was some sort of internal event listener and i decided that i can abuse it to make myself a fishing bot without any pointers or stuff that i need to fix after each update.
Basically you need to hook this function:

1)mov eax, [ebp + 0x8] (mov eax, [ebp + arg_0] on screenshot)
2)check if eax isn't empty, if it does - return to original code
3)check if eax contains pointer to string "fishing_hooked", if it doesn't - return to original code
4)if it has it - you caught the fish and can change your predefined variables/, if it doesn't - return to original code
Cheat engine's auto assembler POC code below:
Atm developing internal version of fish bot based on the above concept.
Thus far it successfully fishes in all liquids, can also check if it doesn't have any bait or it's inventory full and notify user about it.
What i've found was some sort of internal event listener and i decided that i can abuse it to make myself a fishing bot without any pointers or stuff that i need to fix after each update.
Basically you need to hook this function:
Code:
8B 45 08 85 C0 74 11 8D

1)mov eax, [ebp + 0x8] (mov eax, [ebp + arg_0] on screenshot)
2)check if eax isn't empty, if it does - return to original code
3)check if eax contains pointer to string "fishing_hooked", if it doesn't - return to original code
4)if it has it - you caught the fish and can change your predefined variables/, if it doesn't - return to original code
Cheat engine's auto assembler POC code below:
Code:
[ENABLE] aobscanmodule(INJECT,trove.exe,8B 45 08 85 C0 74 11 8D) alloc(newmem,$1000) label(code) label(return) newmem: mov eax,[ebp+08] test eax,eax je code cmp [eax],'fish' jne code cmp [eax+04],'ing_' jne code cmp [eax+08],'hook' jne code //this code will execute if fish has been caught, implement your own logic push 0 push eax push eax push 0 call MessageBoxA jmp code code: mov eax,[ebp+08] test eax,eax jmp return INJECT: jmp newmem return: registersymbol(INJECT) [DISABLE] INJECT: db 8B 45 08 85 C0 unregistersymbol(INJECT) dealloc(newmem)
Thus far it successfully fishes in all liquids, can also check if it doesn't have any bait or it's inventory full and notify user about it.
