... as the tile says :D
I don't know really how this works, and if its possible to code something like that in vb.net or C#...
If somebody knows how this works, i would be thankful :) :)
... as the tile says :D
I don't know really how this works, and if its possible to code something like that in vb.net or C#...
If somebody knows how this works, i would be thankful :) :)
Hey Demantor sup my friend !
Go to www.google.com
Search
how to create serial key
and find out how :P
if you want make own Serial key it's in C# // C
All you will get is a load of "Serial Number" generators and stuff lmao XD
Last edited by ProGunzsoul; 21-01-10 at 04:35 AM.
Get the address where gunz checks serial key, and either JMP to the next address or NOP it using your gunz launcher.
Correct me if im wrong, but it can be done using WriteProcessMemory(); API?
Maiet uses a string encrypted with SEED, basically find a SEED implementation for .NET and the rest should be easy.
PS: They also use a custom clipboard format.
If i can't find this SEED for vb.net, could i import a dll which has it which will launch the runnable then? :)
Wrote it in Delphi, how to NOP the serial key temporarily so your launcher starts it xD
Code:unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; const Address = $004972A7; type TForm4 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form4: TForm4; ProcessID : Integer; ThreadID : Integer; WindowName : Integer; HandleWindow : Integer; Data : Byte; Written : Cardinal; implementation {$R *.dfm} procedure ByPassSerial(); begin Data := $90; // byte for NOP WindowName := FindWindow(nil,'GunZ'); // Find our GunZClient ThreadId := GetWindowThreadProcessId(WindowName, @ProcessId); HandleWindow := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId); WriteProcessMemory(HandleWindow, ptr(Address), @Data, SizeOf(Data), Written); // Nop the serial Key end; procedure TForm4.FormCreate(Sender: TObject); begin ByPassSerial(); end; end.
Great idea!
sorry to revive the issue but did not want to create another with the same hehe, well seen the code of "bounty hunter" is fine, but there is a small problem and if the runnable is encrypted?
is preferable to know how to handle the Serial Key, well that's what I deceo know how to handle or fathom, Demantor if you know do this you can tell us? or other someone?
Mod: please delete
Last edited by iceman4154; 20-01-10 at 09:59 PM.
Can you post the source code ^_^?
I mean I could but the whole point to it being in a dll is for ease-of-use...
I will just write the simple function and release it.
Here is the code(a lot like Bounty Hunter's just in C++, for you C++ junkies).
::Edit::
This code is not tested!
This code has been changed due to the fact that if the address is NOPed it will not allow the launcher to start GunZ.
You need to MOV EAX,0FFFF instead.
Test.h - Holds the exports and definitions.
Code:#ifndef EXPORT #define API __declspec(dllexport) #else #define API __declspec(dllimport) #endif #include <Windows.h> #include <iostream> using namespace std; #include <string> using namespace std; extern "C" class API MemoryAddress { public: MemoryAddress(); ~MemoryAddress(); bool Edit(LONG address); };
Test.cpp - contains the member function to Edit addresses.
Hope this helps,Code:#define EXPORT #include "Test.h" bool MemoryAddress::Edit(LONG address) { __asm { JMP address MOV EAX,0FFFF } }
Ryan M. Coble
Last edited by iceman4154; 20-01-10 at 10:00 PM.
i can try this?
Code:{ HWND hWnd = FindWindow(0, "Gunz"); { MessageBox(0, "Error cannot find window!", "Error!", MB_OK + MB_ICONERROR); } else { DWORD proc_id; GetWindowThreadProcessId(hWnd, &proc_id); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id); if(!hProcess) { MessageBox(NULL, "Cannot open process!", "Error!", MB_OK + MB_ICONERROR); } else { BYTE newdata[]={0x4a, 0x4d, 0x50, 0x20, 0x4d, 0x4f, 0x56, 0x20, 0x45, 0x41, 0x58, 0x1f, 0x30, 0x46, 0x46, 0x46, 0x46, 0x1f}; DWORD newdatasize = sizeof(newdata); if(WriteProcessMemory(hProcess, (LPVOID)0x4972A7, &newdata, newdatasize, NULL)) { MessageBox(NULL, "WriteProcessMemory is a success!", "Success!", MB_OK + MB_ICONINFORMATION); } else { MessageBox(NULL, "Error cannot WriteProcessMemory!", "Error!", MB_OK + MB_ICONERROR); } CloseHandle(hProcess); } }=Code:0x4a, 0x4d, 0x50, 0x20, 0x4d, 0x4f, 0x56, 0x20, 0x45, 0x41, 0x58, 0x1f, 0x30, 0x46, 0x46, 0x46, 0x46, 0x1fbut i dont know if this work hehe ups!Code:JMP MOV EAX,0FFFF
or
xDCode:#include <windows.h> #include <iostream> using namespace std; int main() { BYTE newvalue[] = {0x0}; HWND hwnd = FindWindow(0, "GunZ"); DWORD pid; if(!hwnd) { cout << "Error: Cannot find window!" << endl; } else { GetWindowThreadProcessId(hwnd, &pid); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); if(!hProcess) { cout << "Error: Can not open process" << endl; } else { do { Sleep(50); WriteProcessMemory(hProcess, (LPVOID)0x004972A7, "JMP MOV EAX,0FFFF", sizeof("JMP MOV EAX,0FFFF"), NULL); } while(1); cout << "Fin!" << endl; } } system("PAUSE"); return 0; }
Last edited by diosz; 20-01-10 at 10:54 PM.
Diosz good job, I chose to use native ASM to accomplish the same thing.
i dont know C++ so i dont know if that would work lol