Hi guys i will you how to search for Zoom Hack values and how to get the address everytime you start the game (since is dinamically now).
You need:
Cheat engine =

PE Explorer =

Microsoft Visual c++ 2010 =
Lets Start
1- Create a custom match in league of legends and wait until finish loading...
2- Open Cheat Engine and select the process League of Legends.exe
3- Search for a value of 2250 type float, the game must finish loading if you want to find the correct address.
4- Select the second green adress
5- Right click on it -> find out what writes to this address
6- Change zoom in game with mid mouse wheel, something like this will appear
Press show disasembler
7- Press the menu view and check "Show comments row" item.
Look 2250 value is being storaged in League of Legends.AK::StreamMgr::SetFileLocationResolver+91F 07C, but what are those strange words.
(SetFileLocationResolver) is a function exported by League of Legends.exe, everytime the process runs it will call that function in a certain memory location, what we want to know is that address.
Save 91F07C in a notepad or something...
Note: 2250 is max zoom and 1000 min zoom.
8- Now close cheat engine and league of legends, then run pe explorer and open the League of Legends.exe file.
Press the button in red and search "SetFileLocationResolver" in the listview
Double click on it
Copy that text to clipboard
Time to Code your Address Searcher DLL.
Run Visual C++ make a win32 proyect-> dinamic link library empty proyect
CODE:
Code:
#include <windows.h>
#include <stdio.h>
#include <fstream>
#include <string.h>
#include <ShlObj.h>
using namespace std;
void Log(char* fmt, ...)
{
wchar_t szPath[MAX_PATH] = {0};
SHGetSpecialFolderPath(NULL,szPath,CSIDL_DESKTOPDIRECTORY,FALSE); // Get Desktop directory
wcscat(szPath,L"\\Address.txt"); //complete path of new file
char buf[1024] = {0};
va_list va_alist;
ofstream output;
va_start(va_alist, fmt);
vsnprintf(buf, sizeof(buf), fmt, va_alist);
va_end(va_alist);
output.open(szPath, NULL);
if(output.fail()) return;
output << buf << endl;
output.close();
}
void Addr()
{
char buffer[255];
HMODULE h =GetModuleHandle(NULL); // we get the executable handle
FARPROC a = GetProcAddress(h,"?SetFileLocationResolver@StreamMgr@AK@@YAXPAVIAkFileLocationResolver@12@@Z"); // rememember with PE explorer (is the same as CE "League of Legends.AK::StreamMgr::SetFileLocationResolver")
DWORD addr = (int)a+9564284; // we add the base address 91F07C (int 9564284) using windows calculator.
Log("0x%x",addr); // we return the address of zoom max
}
void WINAPI MainThread( )
{
Addr();
}
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpvReserved )
{
switch ( dwReason ) {
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hModule);
if ( CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MainThread, NULL, 0, NULL) == NULL ) {
return FALSE;
}
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}