Middle Earth Shadow of Mordor

Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

HalfWayToHell333

Jr.Coder
Silenced
Full Member
Nobleman
Jun 23, 2014
80
783
3
Hey,
here is the Source for unlimited Arrows and unlimited Focus for the German Version of Shadow of Mordor.
Happy hunting
C++:
#include <Windows.h>
#include <iostream>
#include <TlHelp32.h>
#include <string>

using namespace std;

//compile as 64 Bit!
BYTE* dwGetModuleBaseAddress(const DWORD, const char *);//!!!!! dont cast BYTE* do DWORD in 64Bit !!!!!!!
void NopeBytes(const HANDLE hProc,BYTE* start, const int bytesToWrite,const string what){

	BOOL done = 0;
	BYTE nopeEm = 0x90;

	for (int i = 0; i < bytesToWrite; i++){
		done = WriteProcessMemory(hProc, (LPVOID)(start + i), (LPVOID)&nopeEm, 1, NULL);
		if (done == 0){
			cout << what << "-> WPM error at Byte : " << i << endl;
			break;
		}
	}

	cout << what << " -> done" << endl;
}
void main(){

	
	HWND hwnd = FindWindowA(0, "Middle-earth: Shadow Of Mordor");
	if (hwnd){
		DWORD id;
		GetWindowThreadProcessId(hwnd, &id);

		HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, false, id);
		if (hProc){

			const std::string ImageName = "ShadowOfMordor.exe";

			BYTE* baseAddy = dwGetModuleBaseAddress(id, ImageName.c_str());

			if (baseAddy != nullptr){

				//cout << "base        at : " << hex << (DWORD) baseAddy << endl;

				BYTE* Arrows = baseAddy + 0xCEBB53; //unlimited Arrows
				BYTE* Fokus = baseAddy + 0xC14200;//unlimited Focus


				NopeBytes(hProc, Arrows, 3,"unlimited Arrows");
				NopeBytes(hProc, Fokus, 5,"unlimited Fokus");

			}
			
			else cout << "nope : "<<ImageName.c_str() <<" not found! ->"<< hex << baseAddy << endl;
			CloseHandle(hProc);
		}
	}
	else cout << "nope Window not found" << endl;
	cout << "enter to quit" << endl;
	cin.get();
}

BYTE* dwGetModuleBaseAddress(const DWORD dwProcessIdentifier, const char *lpszModuleName){
	const HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessIdentifier);

	BYTE* dwModuleBaseAddress = nullptr;

	if (hSnapshot != INVALID_HANDLE_VALUE)
	{
		MODULEENTRY32 ModuleEntry32 = { 0 };

		ModuleEntry32.dwSize = sizeof(ModuleEntry32);
		if (Module32First(hSnapshot, &ModuleEntry32))

		{
			do
			{
				if (strcmp(ModuleEntry32.szModule, lpszModuleName) == 0)
				{
					dwModuleBaseAddress = ModuleEntry32.modBaseAddr;
					break;
				}

			} while (Module32Next(hSnapshot, &ModuleEntry32));
		}
		CloseHandle(hSnapshot);
	}
	return dwModuleBaseAddress;
}
 

mPulse

Coder
Full Member
Nobleman
Jun 19, 2013
106
733
0
Thank you,for your nice source... need to test later :)
 

TheGreatUnknown

Jr.Coder
Full Member
Nobleman
Dec 20, 2012
58
417
1
Be interesting to see this in a GUI menu or with hotkeys. Like CE trainers as you can do more in C++.
 

TheGreatUnknown

Jr.Coder
Full Member
Nobleman
Dec 20, 2012
58
417
1
Nice one, I'd be curious to see the source code for that. Been wanting to code a togglable trainer in C++.
 

HalfWayToHell333

Jr.Coder
Silenced
Full Member
Nobleman
Jun 23, 2014
80
783
3
Last edited by a moderator:
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods