Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2004, 17:34   #1
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
Come viene utilizzata la memoria?

Ciao, volevo sapere una cosa particolare.

Le memorie di un processo sono suddivise in locazioni con un loro indirizzo.

Ma questi indirizzi sono globali oppure ogni processo ha una memoria destinata?

Se devo cambiare la locazione 00441D1E del processo pippo.exe che ha id 14B basta usare un comando che cambi la locazione 00441D1E o devo specificare il processo?


Grazie.
beog è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2004, 19:56   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non è un problema di facile risoluzione... Ogni applicazione ha un indirizzamento virtuale completo a 32 bit...che poi viene rimappato in memoria fisica...

Il problema è che accedere alla memoria di una ltro processo non è consentito...o meglio si può fare, non so come, ma è sicuramente molto complesso...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2004, 21:42   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Cosa devi fare esattamente? Devi accedere a un particolare indirizzo fisico?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2004, 09:37   #4
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
Devo fare un trainer quindi devo accedere alla particolare locazione "00441B4c" (esempio) di un particolare processo:

pippo.exe con Id 14B...

ma non so come specificare indirizzo e processo in VBasic.

Ciao
beog è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2004, 09:58   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Te l'ho detto non è facile... Sotto DOS era facilissimo...ma sotto Windows diventa difficilissimo farlo...ancor più in Visual Basic...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2004, 10:02   #6
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
e dal prompt di dos si può fare?
beog è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2004, 10:08   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Da un file per DOS è ancora più improbabile accedere alal memoria di un processo a 32 bit...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2004, 10:12   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Forse ho trovato come fare....in assembly, ma a questo punto mi dovrei tradurre tutto in chiamate in C++ e poi in Vb...

http://win32assembly.online.fr/w32_02.txt
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2004, 10:20   #9
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
Non ti chiedo così tanto!!!

Proverò a dare un occhio su Planetsourcecode.

Eventualmente vi saprò dire.
ciao
beog è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 01:51   #10
ariagiovannifanboy
Member
 
Iscritto dal: Dec 2002
Messaggi: 40
Usa WriteProcessMemory:

http://msdn.microsoft.com/library/de...cessmemory.asp

ora, non ricordo se sotto W2K/XP è necessario abilitarsi qualche privilegio, cmq in caso puoi lanciare prima il processo con CreateProcess e a quel punto dovresti essere in grado di farci un po' cosa ti pare.

Ciaus
__________________
www.arialinks.com
ariagiovannifanboy è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 12:14   #11
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
Ma sei un DIO!
Anche perchè sei fan di quella gran !!



Ma è una funzione che c'è già dentro VBasico o devo richiamarla da Kernel?

Se si come?

E poi devo definire la sub tipo
Define Sub..
BOOL WriteProcessMemory(
HANDLE hProcess,
LPVOID lpBaseAddress,
LPCVOID lpBuffer,
SIZE_T nSize,
SIZE_T* lpNumberOfBytesWritten
);

Qualcosa del genere?

Hai capito cosa devo mettere su
LPVOID lpBaseAddress,
LPCVOID lpBuffer

??


Grazie infinite!
beog è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 12:58   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì...è la strada giusta... Viene usata anche nel link che ti ho postato sopra...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 14:16   #13
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
Si ho trovato qualcosa, però la strada sempre molto in salita!

Visto che il process ID è dinamico, mi devo basare sul nome del processo o il file EXE per determinare il process ID.

Ma è possibile che il nome del processo su API Guide sia chiamato Class name? Oppure è un'altra cosa?

Grazie,ciao
beog è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 15:51   #14
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
Sono riuscito ad entrare nel processo, ora però ho un'altro problema:


WriteProcessMemory
mi chiede l'indirizzo di memoria come "pointer base address", ma cosa vuol dire?

Io devo scriver sull'indirizzo 0046AFBF (Hex) come converto questo valore esadecimale dell'indirizzo in una stringa Unicode in modo che la funzione mi scriva proprio in quell'indirizzo?

Grazie!
Ciao
beog è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 16:04   #15
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
L'indirizzo fisico viene mappato a partire da un indirizzo logico. Lo spazio logico di un processo è consecutivo (vedilo come un array) , ma quello fisico non lo è!!
Di solito esiste un registro base che indica il punto di partenza dello spazio logico , e un offset per muoversi al suo interno (che non può superare il limite). O ancora con un sistema di paginazione (che è quello che usa WinXP), esistono delle tabelle di pagina con relativo algoritmo di traduzione in indirizzo fisico.

Io non ho ancora capito come tu possa accedere ad un indirizzo fisico. E' il kernel che sceglie il tipo di mappatura, come si può conoscere tale indirizzo fisico a priori?? IlSensine che dici?
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 16:17   #16
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
No, ma io non cerco l'IND fisico, quello sono cavoli del sig. Kernel.
Io voglio cambiare l'indirizzo specifico di un processo particolare, esempio "pippo.exe". Ho ricavato l'handle a questo processo, ora però devo scrivergli in memoria.

Avevi capito male (o mi sono spieg male) o la tua perplessità rimane(e quindi non si può..)?
beog è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 16:45   #17
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Fammi capire: tu vuoi assegnare a un processo un dato spazio di indirizzi fisici, un po' come i .com del DOS? Ovvero con binding degli indirizzi in fase di compilazione?
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 17:17   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da beog
Sono riuscito ad entrare nel processo, ora però ho un'altro problema:


WriteProcessMemory
mi chiede l'indirizzo di memoria come "pointer base address", ma cosa vuol dire?

Io devo scriver sull'indirizzo 0046AFBF (Hex) come converto questo valore esadecimale dell'indirizzo in una stringa Unicode in modo che la funzione mi scriva proprio in quell'indirizzo?
WriteProcessMemory scrive una sequenza di BYTE...quindi il base address dovrebbe essere l'indirizzo di partenza da cui cominciare a scrivere...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 17:45   #19
beog
Senior Member
 
Iscritto dal: Apr 2001
Messaggi: 850
No, devo fare un trainer. Quindi devo modificare una variabile di un programma. L'allocazione non è fisica, è riferita al processo.

Se il processo ha l'allocaz da 000000 a FFFFFFF (che fisicamente sarà dove sarà...) io voglio cambiare il valore di alcuni byte di questa memoria.
Precisamente la locaz 0046AFBF ma non è la posizione assoluta in memoria, ma è quella assegnata al processo che voglio io.
Capisci?

Quello che volevo sapere in soldoni è se quando uso:
WirteProcessMemory (handle,address,bufferDaMandare,Flase,Null)
quel Address che è definito come Long può essere ricollegato all'indirizzo di memoria relativo al processo.

Esempio se il long è:

0000000000000000 (Long Dex) è assegnato all'indirizzo 000000 (Hex)

Se il long è 0000000000000015 è assegnato all'indirizzo 00000F.

O comunque se c'è un modo per capire questo paramento decide l'indirizzo.

Grazie ancora per la pazienza.Ciao
beog è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2004, 17:54   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ricordati che la scrittura funziona solamente se l'area di memoria è accessibile in scrittura...

Comunque dai un'occhiata qui, c'è scritto http://msdn.microsoft.com/library/de...cessmemory.asp
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Flight Simulator su PlayStation per la p...
Bosch taglierà 13.000 posti di la...
Nothing e CMF si separano: il brand low ...
Logitech MX Master 3S a 69€ su Amazon: i...
Colpo di scena su Windows 10: gli aggior...
HONOR, il futuro è foldable, ma n...
Motorola Solutions al servizio della sic...
Dell Pro Plus Earbuds: IA e controllo da...
Eni e Seri avviano i lavori per il nuovo...
Xiaomi 15T e 15T Pro: gli smartphone top...
Huawei Watch GT 6 e GT 6 Pro già in scon...
Prestazioni da 10 a 100 volte migliori p...
Pure Storage: dal sistema di storage all...
Germania, scoperto uno dei più grandi gi...
La missione Artemis II potrebbe partire ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v