-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 16/11/2010 14:41, Marco Giusti ha scritto: > On Tue, Nov 16, 2010 at 01:45:16PM +0100, Manlio Perillo wrote: > [...] >>> prima di tutto il modulo stesso deve essere importato e prima di essere >>> importato non c'? nessun controllo sul modulo stesso, ergo basta >>> modificare il modulo `secimport`. >> >> Infatti per maggiore sicurezza l'hook pu� essere implementato in C. >> Si parlava infatti del caso in cui una applicazione vuole embedare >> l'interprete Python. > > avevo capito ma comunque il modulo � stato scritto in python, non in C. >
Da valutare comunque se si può fare qualcosa anche con il modulo scritto in Python. >>> quando fai il controllo del file `__init__.py` si deve controllare anche >>> i relativi `.pyc` e `.pyo`, infatti basta modificare a piacere il file >>> `__init__.py`, copiare il bytecode nella giusta posizione, il file >>> `__init__.py` rimane quello originale ma viene modificato l'mtime. >>> `secimport` controlla il file `__init__.py` ma l'importer python >>> caricher? il bytecode modificato. >> >> Questo � un punto su cui non sono sicuro. >> Innanzitutto, comunque, secimport *non* controlla __init__.py ma il >> modulo __init__. >> fp, pathname, descr = imp.find_module('__init__', [self.pathname]) > > linea 78 in load_module, viene verificato il checksum del file > `__init__.py`. > Hai ragione. Mi sono letto l'implementazione di find_module e load_module, e: * find_module cerca *prima* se esiste il corrispondente source module * load_module -> load_source_module controlla se esiste il modulo precompilato Invece io stavo incorrettamente assumendo che find_module mi restituisse direttamente il tipo di modulo corretto. Quindi si, il codice va corretto; grazie. > [...] Ciao Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkzimf4ACgkQscQJ24LbaUTzdQCfXWeLjWe6e+tqn9Lah09+dazn RbwAn0JFaTcR3iVqZuNyNaQiWxdn+RN/ =Ul/9 -----END PGP SIGNATURE----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python