lua_re icon indicating copy to clipboard operation
lua_re copied to clipboard

关于Lua程序逆向之Luac文件格式分析的一些疑问

Open cc-crack opened this issue 6 years ago • 1 comments

您好,我拜读了您的大作,有一些疑问想跟您沟通一下。 我看到文中提到ProtoHeader的定义如下

typedef struct {
    uint32 linedefined;
    uint32 lastlinedefined;
    uchar numparams;
    uchar is_vararg;
    uchar maxstacksize;
} ProtoHeader;

但是我看到lua5.1.5的代码中这部分代码是这样的

static void DumpFunction(const Proto* f, const TString* p, DumpState* D)
{
 DumpString((f->source==p || D->strip) ? NULL : f->source,D);
 DumpInt(f->linedefined,D);
 DumpInt(f->lastlinedefined,D);
 **DumpChar(f->nups,D);**
 DumpChar(f->numparams,D);
 DumpChar(f->is_vararg,D);
 DumpChar(f->maxstacksize,D);
 DumpCode(f,D);
 DumpConstants(f,D);
 DumpDebug(f,D);
}

我的疑问是nups是否在ProtoHeader中被遗漏了?

cc-crack avatar Jul 27 '18 03:07 cc-crack

我分析的版本是5.2,这里我建议你动态调试一下,就一目了然了

feicong avatar Aug 01 '18 02:08 feicong