lua_re
lua_re copied to clipboard
关于Lua程序逆向之Luac文件格式分析的一些疑问
您好,我拜读了您的大作,有一些疑问想跟您沟通一下。 我看到文中提到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中被遗漏了?
我分析的版本是5.2,这里我建议你动态调试一下,就一目了然了