BorderGame

Versione completa: Il vostro 1° addys logger [GUIDA]
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Pagine: 1 2
Premetto che :
Voglio essere generoso e vi sto aiutando con questa guida.
Quindi siete pregati di non dire è poco dettagliata ecc.

Premessa:
Questa guida non contiene nessun tipo di hack: un Addys Logger è una semplice Log, ovvero un file .txt del blocco note creato attraverso linguaggio macchina C++ che serve per trovare gli address. Cos'è un address? In due parole una qualsiasi cosa che effettuate su nostale è un address corrispondente di un suo value (valore). Esemplificamente il movimento è un address: muovendovi si modificherà il suo value, stando fermi rimarrà statico e così via; un oggetto in inventario è un address e il suo value è caratterizzato dalla quantità di questi oggetti che avete, ecc. ecc.
Se non capite questo, evitate di seguire questa guida e di fare domande monotone.


OCCORRENTE :
C++ 2010
SDK SUMMER 2004

///////////////////////
COSE UN ADDYS LOGGER?
///////////////////////
Un addys logger vi permette di cercare address ogni aggiornamento lo avviate e vi usciranno nel file .txt tutti gli address e non vi resterà altro che creare il vostro HACK
///////////////////////////
PROCEDIAMO
///////////////////////////
Create un nuovo progetto con destinazione in una cartella sul desktop :
Bene cancellate tutti i file che ci sono nella cartella del progetto da voi creato che si trova a sinistra Dipendenze esterne e intestazioni
Poi fate un po di ordine in intestazione Fate due cartelle E le rinominate : INCLUDE e l'altra MAIN.
In include (cartella) fate tasto destro Aggiungi -> Nuovo elemento
si aprirà una finesta e selezionate file di intestazione (.h) che chiameremo Log.h e un altro file [RIPETE PROCEDIMENTO] solo che quest'altro lo chiamerete Pattern.h
________________
Bene quindi ricapitolando dentro i file di intestazione avete due cartelle Include e main in include ci sono due file di intestazione uno di nome Log.h e un altro di nome Pattern.h bene in Log.h inserite il seguente codice :
Codice:
char *GetDirectoryFile(char *filename);
void __cdecl Writelog (const char * fmt, ...);
void logging(HMODULE hDll);
e in Pattern.h
Codice:
DWORD dwSize;
DWORD dwStartAddress;

BOOL bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
for(;*szMask;++szMask,++pData,++bMask)
{
if(*szMask == 'x' && *pData != *bMask)
return 0;
}
return (*szMask)==NULL;
}
DWORD FindPattern(BYTE *bMask, char * szMask, int codeOffset, BOOL extract)
{
for(DWORD i = 0; i < dwSize; i++)
{
if(bCompare((BYTE*)(dwStartAddress + i),bMask,szMask))
{
if(extract)
{
return *(DWORD*)(dwStartAddress + i + codeOffset);
}
else
{
return (DWORD)(dwStartAddress + i + codeOffset);
}
}
}
return NULL;
}
Non vi spiego a significare a cosa servono senò ci mettereste troppo tempo per capire e lo capireste in modo sbagliato bene.
Bene adesso rifacciamo lo stesso procedimento solo nella cartella main e creiamo sta volta al posto di file di intestazione (.h) dobbiamo creare file di C++ (.cpp) ne creiamo due chiamati uno Log.cpp e l'altro Main.cpp in log.cpp ci inseriamo questo codice :
Codice:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>

using namespace std;

ofstream ofile;
char dlldirectory[320];

char *GetDirectoryFile(char *filename)
{
static char path[320];
strcpy(path, dlldirectory);
strcat(path, filename);
return path;
}

void __cdecl Writelog(const char *fmt, ...)
{
if(ofile != NULL)
{
if(!fmt) { return; }
va_list va_alist;
char logbuf[256] = {0};
va_start (va_alist, fmt);
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
va_end (va_alist);
ofile << logbuf << endl;
}}

void logging(HMODULE hDll){
DisableThreadLibraryCalls(hDll);
GetModuleFileName(hDll, dlldirectory, 512);
for(int i = strlen(dlldirectory); i > 0; i--) { if(dlldirectory[i] == '\\') { dlldirectory[i+1] = 0; break; } }
ofile.open(GetDirectoryFile("Address Nostale.txt"), ios::app);
}
e in Main.cpp
Codice:
#include <windows.h>
#include <stdio.h>
#include "Log.h"
#include "Pattern.h"

void SearchPatterns(void)
{
Sleep(1000);
dwStartAddress = 0x400000;
do {
dwStartAddress = (DWORD)GetModuleHandle("NostaleX.dat");
Sleep(10);
}while(!dwStartAddress);

dwSize = 0x500000;

DWORD dwlevel20 = FindPattern((PBYTE)"\x3B\x48\x18\x75\x08};", "xx?x?", 1, true);
Writelog("/=============================================================/");
Writelog("/SanMarinus Addys logger a.k.a Because or Quadcore for nostale/");
Writelog("/=============================================================/");
Writelog("/                        ~ OFFSET ~/");
Writelog("#define OFS_LEVEL_20     0x%X",dwlevel20);
Writelog("/=============================================================/");
Writelog("/=============Finish Process Excute Addys======================/");
Writelog("/=============================================================/");
ExitProcess(0);
}

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if (dwReason==DLL_PROCESS_ATTACH)
{
logging(hDll);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)SearchPatterns, NULL, NULL, NULL);
}
return TRUE;
}
Benissimo adesso io vi ho fatto un piccolo esempio di byte ovvero :
DWORD dwlevel20 = FindPattern((PBYTE)"\x3B\x48\x18\x75\x08};", "xx?x?", 1, true);
voi dovrete cercarli tramite un decompiler
e cheatengine per gli address statici e attaccherete NostaleX.dat al decompiler sbau E andate con il rock and roll
in questo caso se abbiamo un codice come questo :

3B5D43 5V86
il codice finale sarà :
Codice:
DWORD dwMIOCODE = FindPattern((PBYTE)"\x3B\x5D\x43\x5V\x86};", "xxx??", 1, true);
mentre questi :xxx?? è molto semplice la x equivale a due cifre ovvero in questo caso x3B poi continui xx = x3B/x5D mentre quelli di destra si inserisce il punto interrogativo = ?
e poi sotto
Codice:
Writelog("#define OFS_MIOCODE     0x%X",dwMIOCODE);
Spero di essere stato chiaro alla prossima !
Molti avrebbero preferito un software cornetto a letto e pappa pronta. Uso lo stesso metodo da un bel po' di mesi, ma apprezzo la volontà e l'impegno. Ottima guida.
Naturalmente non so da dove iniziare,bravo comunque. Smile Sposto in Guide Smile
@Myros
Bravo se coddi Big Grin
quindi dato ke modificherebbe gli address è come creare un hack items ?
(27-03-2011 10:27 PM)CapitanoKidd Ha scritto: [ -> ]quindi dato ke modificherebbe gli address è come creare un hack items ?
No , questa guida serve solo per trovare gli address e con quei address servono per creare hack per il gioco tipo hack mini-game . Correggetemi se ho sbagliato >.<
si ma dico se si trovassero i drop degli items che cadono dai mostri (xk se notate quando killate 1 mostro se avete la connessione lenta vedete ke ci mette un po a cadere l'items) ricevete gli address dei pakketti li modificate e al posto di cadere 1 seme cade quello ke volete voi...
Meglio se te lo spiega san
si in parte sono pacchetti li puoi trovare anche con
WPE PRO solamente che se provi a inviarli diciamo per riceverli
e come si fa refuse connection ovvero si disconnette perchè è stata implementata questa nuova
sicurezza dentro nostale perciò sto trovando un metodo per bypassarlo
bellissimo ! + uno .... ma come a detto il nostro caro Myros sono uno dei molti che volevano la pappa pronta:3 .... solo per un motivo : non mi funziona bene c++ 2010 :3
Reinstallalo no.. Comunque ho fatto una piccola video guida che adesso posto !
Bhe dai ti meriti il +1
+1 meritato la guida sembra utile anche se non ci capisco una H
io nn ho capito bene ks fa questo hack o cosa sia se mi spiegate meglio perfavore
Non è un hack >.<
-------Edit-------
Cioè credo che non sia un hack D:
San, ti conviene mettere questa premessa, onde evitare altre risposte come questa sopra:
Questa guida non contiene nessun tipo di hack: un Addys Logger è una semplice Log, ovvero un file .txt del blocco note creato attraverso linguaggio macchina C++ che serve per trovare gli address. Cos'è un address? In due parole una qualsiasi cosa che effettuate su nostale è un address corrispondente di un suo value (valore). Esemplificamente il movimento è un address: muovendovi si modificherà il suo value, stando fermi rimarrà statico e così via; un oggetto in inventario è un address e il suo value è caratterizzato dalla quantità di questi oggetti che avete, ecc. ecc.
Se non capite questo, evitate di seguire questa guida e di fare domande monotone.
Wink
io ho solo kiesto perke nn ho capito bene tt qui
Aggiunta la premessa Tongue
Più 1 OTTIMA GUIDAAA
Non preoccuparti spatacus, in fondo anch'io ero come te, ma solo perché non c'era gente che specificava bene le cose Wink
@Because
Si coddo da 1 annetto e mezzo Big Grin
Pagine: 1 2
URL di riferimento