2011-03-28 6 views
1

swf를 가져 와서 swfdump를 실행하면

swfdump.exe -abc file.swf > ABC.txt 

첫 번째 실행이

ObjectConfig.as$60 

와 같은 ABC.txt에서 일부 출력을 얻을 수 있습니다. 그리고 같은 SWF 다른 출력을 얻으십시오.

ObjectConfig.as$61 

$ 뒤에 숫자의 의미는 무엇입니까?

답변

2

디버그 컴파일시 바이트 코드에 추가하는 디버그 메타 데이터의 일부입니다 (debug=true). 정상 릴리스 컴파일을 수행하면이 정보가 생략됩니다.

이 메타 데이터는 파일 이름과 줄 번호를 저장하므로 디버깅 중에 원본 위치를 볼 수 있습니다. 이 특정 숫자의 정확한 의미에 대해서는 잘 모르겠지만 동일한 이름을 가진 두 개의 클래스가있는 경우 디버거에 대한 해당 파일의 고유 식별자 또는 인덱스 인 것 같습니다.

1

가장 좋은 것은 swfdump의 소스 코드입니다. swf_GetString을 호출합니다.

char* swf_GetString(TAG*t) 
{ 
    int pos = t->pos; 
    while(t->pos < t->len && swf_GetU8(t)); 
    /* make sure we always have a trailing zero byte */ 
    if(t->pos == t->len) { 
     if(t->len == t->memsize) { 
    swf_ResetWriteBits(t); 
    swf_SetU8(t, 0); 
    t->len = t->pos; 
     } 
     t->data[t->len] = 0; 
    } 
    return (char*)&(t->data[pos]); 
} 
: 어딘가에이 체인 그것은 debugLine 또는 클래스 이름의 끝에 scopeDepth 모양을 추가
관련 문제