fix debug printf

This commit is contained in:
aCaB 2010-01-05 02:04:14 +01:00
parent 853101585e
commit 1e7afd202b
2 changed files with 11 additions and 7 deletions

View file

@ -1077,11 +1077,11 @@ int cli_ac_scanbuff(const unsigned char *buffer, uint32_t length, const char **v
} }
realoff = offset + bp - pt->prefix_length; realoff = offset + bp - pt->prefix_length;
if(patt->offdata[0] == CLI_OFF_VERSION) { if(patt->offdata[0] == CLI_OFF_VERSION) {
cli_errmsg("CHECK: %x\n", realoff);
if(!cli_hashset_contains_maybe_noalloc(&mdata->vinfo, realoff)) { if(!cli_hashset_contains_maybe_noalloc(&mdata->vinfo, realoff)) {
pt = pt->next_same; pt = pt->next_same;
continue; continue;
} }
cli_dbgmsg("cli_ac_scanbuff: VI match for offset %x\n", realoff);
} else if(pt->offset_min != CLI_OFF_ANY && (!pt->sigid || pt->partno == 1)) { } else if(pt->offset_min != CLI_OFF_ANY && (!pt->sigid || pt->partno == 1)) {
if(pt->offset_min == CLI_OFF_NONE) { if(pt->offset_min == CLI_OFF_NONE) {
pt = pt->next_same; pt = pt->next_same;

View file

@ -201,7 +201,7 @@ struct vinfo_list {
int versioninfo_cb(void *opaque, uint32_t type, uint32_t name, uint32_t lang, uint32_t rva) { int versioninfo_cb(void *opaque, uint32_t type, uint32_t name, uint32_t lang, uint32_t rva) {
struct vinfo_list *vlist = (struct vinfo_list *)opaque; struct vinfo_list *vlist = (struct vinfo_list *)opaque;
cli_errmsg("versioninfo_cb: type: %x, name: %x, lang: %x, rva: %x\n", type, name, lang, rva); cli_dbgmsg("versioninfo_cb: type: %x, name: %x, lang: %x, rva: %x\n", type, name, lang, rva);
vlist->rvas[vlist->count] = rva; vlist->rvas[vlist->count] = rva;
if(++vlist->count == sizeof(vlist->rvas) / sizeof(vlist->rvas[0])) if(++vlist->count == sizeof(vlist->rvas) / sizeof(vlist->rvas[0]))
return 1; return 1;
@ -2432,7 +2432,7 @@ int cli_peheader(fmap_t *map, struct cli_exe_info *peinfo)
err = 0; err = 0;
for(i=0; i<vlist.count; i++) { /* enum all version_information res - RESUMABLE */ for(i=0; i<vlist.count; i++) { /* enum all version_information res - RESUMABLE */
cli_dbgmsg("cli_peheader: parsing version info @ rva %x\n", vlist.rvas[i]); cli_dbgmsg("cli_peheader: parsing version info @ rva %x (%u/%u)\n", vlist.rvas[i], i+1, vlist.count);
rva = cli_rawaddr(vlist.rvas[i], peinfo->section, peinfo->nsections, &err, fsize, hdr_size); rva = cli_rawaddr(vlist.rvas[i], peinfo->section, peinfo->nsections, &err, fsize, hdr_size);
if(err) if(err)
continue; continue;
@ -2506,7 +2506,6 @@ int cli_peheader(fmap_t *map, struct cli_exe_info *peinfo)
while(st_sz > 6) { /* enum all strings - RESUMABLE */ while(st_sz > 6) { /* enum all strings - RESUMABLE */
uint32_t s_sz, s_key_sz, s_val_sz; uint32_t s_sz, s_key_sz, s_val_sz;
char *k, *v;
s_sz = s_val_sz = cli_readint32(vptr); s_sz = s_val_sz = cli_readint32(vptr);
s_sz &= 0xffff; s_sz &= 0xffff;
@ -2549,16 +2548,21 @@ int cli_peheader(fmap_t *map, struct cli_exe_info *peinfo)
return -1; return -1;
} }
cli_errmsg("ADD %x\n", (uint32_t)(vptr - baseptr + 6));
if(cli_debug_flag) { if(cli_debug_flag) {
/* FIXME: pretty print an usable VI-sig */ char *k, *v, *s;
/* FIXME: skip too long strings */
k = cli_utf16toascii(vptr + 6, s_key_sz); k = cli_utf16toascii(vptr + 6, s_key_sz);
if(k) { if(k) {
s_key_sz += 6 + 3; s_key_sz += 6 + 3;
s_key_sz &= ~3; s_key_sz &= ~3;
v = cli_utf16toascii(vptr + s_key_sz, s_val_sz); v = cli_utf16toascii(vptr + s_key_sz, s_val_sz);
if(v) { if(v) {
cli_errmsg("VersionInfo: '%s' = '%s'\n", k, v); s = cli_str2hex(vptr + 6, s_key_sz + s_val_sz - 6);
if(s) {
cli_dbgmsg("VersionInfo (%x): '%s'='%s' - VI:%s\n", vptr - baseptr + 6, k, v, s);
free(s);
}
free(v); free(v);
} }
free(k); free(k);