hello, In honor of the chm exploit that I got hit by last week, I trying to code some ActivePython to list the directory inside a CHM.
CHM is supposed to be structured storage (ITSF). If a given CHM file is infected it most likely has an embedded EXE file -- mine had one called [Open.exe]. The following code works for Excell sheets, XLS, but fails for CHM files. # begin python from win32com import storagecon as sc import os, win32api import pythoncom as pyc from pywintypes import IID its_clsid = IID('{5d02926a-212e-11d0-9df9-00a0c922e6ec}') its_iid= IID('{88cc31de-27ab-11d0-9df9-00a0c922e6ec}') # pyc.CoInitialize() # commented out after failing on my Win2k box #pyc.CoCreateInstance( its_clsid,None,pyc.CLSCTX_INPROC_SERVER, its_iid) m = sc.STGM_READ | sc.STGM_SHARE_EXCLUSIVE # quarantined CHM virus fname = "e:/batch/junkx.chm" #fname = "C:/Documents and Settings/Administrator/My Documents/02_taxes.xls" pss = pyc.StgOpenStorageEx( fname, m, sc.STGFMT_STORAGE,0, pyc.IID_IStorage) ele = pss.EnumElements( 0, None,0) obj = ele.next() print obj[0] obj = ele.next() print obj[0] # end python with the XLS file, I get the names of the two sheets. Is there another way to parse the central directory out of a CHM file? tia, tlviewer -- http://mail.python.org/mailman/listinfo/python-list