... 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 :) :)
Printable View
... 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
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
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
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, 0x1f
but 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;
}
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
hehe well thanks
finally i finish the code and work good ^^
now i try convert in c# or vb.net hehe
jajaja yeah i know, i only found that and try do that xDCode:#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
LONG address = 0x004972A7;
BYTE newvalue[] = {0xb8, 0xff, 0xff, 0x00, 0x00};
HANDLE phandle;
HWND hwnd = FindWindow(0, "GunZ");
DWORD pid;
if(!hwnd) {
cout << "Error: Cannot find window!" << endl;
cin.get();
} else {
GetWindowThreadProcessId(hwnd, &pid);
phandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
if (phandle != 0) {
WriteProcessMemory(phandle, (LPVOID)address, (LPVOID) &newvalue, sizeof(newvalue), 0);
cout << "Memory wrote successfully.";
cin.get();
} else {
cout << "Couldn't get a handle";
cin.get();
}
}}
Add:
Code for VB.NET ^^
Sometimes get error i dont know =/ if someone can help with this thanks hehehe
P.D. I Try with this and change the the bytes good but yet i cant start the runnable =/Code:Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("kernel32.dll")> _
Public Shared Function WriteProcessMemory( _
ByVal hProcess As IntPtr, _
ByVal lpBaseAddress As IntPtr, _
ByVal lpBuffer As Byte(), _
ByVal nSize As UInt*** _
ByRef lpNumberOfBytesWritten As UInt32 _
) As Boolean
End Function
Dim p As Process() = Process.GetProcessesByName("Gunz")
Dim en1 As Byte() = {&HB8, &HFF, &HFF, &H0, &H0} 'Bytes of MOV EAX,0FFFF
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
WriteProcessMemory(p(0).Handle, &H4972A7, en1, en1.Length, 0) '4972A7 is the Adress
MsgBox("Nice")
End Sub
End Class
just make a little injector on you launcher, inject a dll on your gunz that patch all you want , including the antihack if you want
I don't get the question. Do you want to know how the gunz serial key works? Do you want ideas for something similar? What..