Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-05-2009, 10:24   #1
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
[PYTHON] Disassemblare

Per varie ragioni sono interessato ad effettuare analisi statica su alcuni moduli in python. Avendo già esperienza con il CIL penso che il bytecode di python non possa crearmi troppi problemi, ma al momento non so come ottenere un dump del bytecode di un modulo (.pyo)
Dunque la domanda è se è possibile farlo, quanto agevolmente e se eventualmente insieme al listato è possibile avere anche informazioni riguardo al file offset a cui si trova l'istruzione. Infine gradirei sapere se (a fini di instrumentation) esiste la possibilità di modificare il bytecode e salvare un nuovo modulo contenente le modifiche apportate e in caso come fare

Grazie anticipatamente
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2009, 10:01   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
Per varie ragioni sono interessato ad effettuare analisi statica su alcuni moduli in python. Avendo già esperienza con il CIL penso che il bytecode di python non possa crearmi troppi problemi,
No, perché è molto più leggibile.
Quote:
ma al momento non so come ottenere un dump del bytecode di un modulo (.pyo)
Se hai il sorgente, puoi usare il modulo dis della libreria standard per vedere qual è il codice generato.

In alternativa potresti usare il programma che ho scritto per wpython e che è in grado di generare anche qualche statistica. Lo trovi qui.

Senza parametri esegue la compilazione di tutti i file .py che trova nella libreria standard (nelle cartelle Lib e Tools, per la precisione). Se ci sono dei parametri, invece, è in grado di compilare sia i singoli file che le intere cartelle specificate.
Se, oltre alle statistiche, ti serve visualizzare anche il bytecode di tutti gli oggetti che ne hanno, basta mettere come primo parametro -print. A differenza del modulo dis, è in grado di visualizzare ricorsivamente tutti gli oggetti dotati di codice che riesce a trovare all'interno di altri oggetti.
Quindi l'output può essere anche molto lungo.
Quote:
Dunque la domanda è se è possibile farlo, quanto agevolmente e se eventualmente insieme al listato è possibile avere anche informazioni riguardo al file offset a cui si trova l'istruzione.
Se vuoi / puoi operare soltanto sul compilato (file .pyc o .pyo) l'unica strada è affidarsi a programmi che esaminano questo tipo di file.

Tipo questo che carica un file .pyc (ma penso vada bene anche per i .pyo), eseguendo l'unmarshalling dei dati (tramite un'apposita libreria).
Quote:
Infine gradirei sapere se (a fini di instrumentation) esiste la possibilità di modificare il bytecode e salvare un nuovo modulo contenente le modifiche apportate e in caso come fare

Grazie anticipatamente
Puoi utilizzare byteplay per "giocare" ad assemblare bytecode.

Comunque modificare direttamente i file .pyc è abbastanza complicato, e non ho trovato in giro programmi in grado di farlo. Quindi dovresti fartelo tu.

Se invece hai il file .py, puoi, ad esempio, rimpiazzare il bytecode prodotto normalmente dal compilatore con uno che hai assemblato tu con byteplay.

Personalmente seguirei questa strada, che è la più semplice.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Castlevania: Belmont's Curse avrà una de...
L'attrice AI Tilly Norwood va in tilt du...
MediaTek Dimensity 9600M: come il 9500 m...
25 mila taxi a guida autonoma per l'Euro...
La Space Force statunitense annuncia il ...
Acer: prezzi dei PC ancora in salita, il...
HONOR come Xiaomi: smartphone con displa...
Recensione Turtle Beach Stealth Pro II: ...
Semiconduttori organici, un nuovo metodo...
Il mercato smartwatch rallenta ma Huawei...
Amazon Haul, sconto del 15% su almeno 2 ...
Quasi il 90% degli sviluppatori di video...
Future Studies di Luca Locatelli in most...
ASUS ha lanciato il suo primo Mini PC co...
HillMiles MileCity1 torna disponibile a ...
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: 11:19.


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