Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
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


Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Ray-Ban Meta Audio: arrivano gli occhial...
Apple TV 4K: chip A19, CPU più veloce de...
Il mercato console sprofonda: i rincari ...
Apple Home Collection: videocamere 2,5K,...
Apple presenta HomeView, il nuovo hub do...
Apple HomePod mini 2 arriva in Italia: a...
SFSCON 2026: la sovranità digital...
Cooler Master GPU Shield arriva in Europ...
Wolters Kluwer Tax & Accounting pote...
NVIDIA accelera il DLSS 5: il nuovo mode...
Character.ai in bancarotta, Disney pront...
realme passa a ColorOS 17 con Android 17...
OPPO presenta ColorOS 17: più flu...
Giochi PS2 su smartphone Android: ARMSX2...
Ecco il nuovo tool semplificato per alle...
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: 19:41.


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