一半君的总结纸

听话只听一半君

脑残法提取“加过密”的MEL Script

有些MEL保护插件,通过加密原mel文件,然后load的时候动态的source一下,以此来保护MEL Script代码

可是其实应该Maya是没加密的把,source过的 MEL 应该在内存里的某个位置.. 以下纯属乱搞

脑残法:

  1. 打开maya,随便source一个proc试试先 比如
    global proc helloWorld(){
    
        print "Yeah hello world!";
    
    };
    
  2. 看下maya的 pid, 用这个 pd 小工具 dump maya的 memroy
    ./pd_v1.1_lnx -p <pid> > pid.dump
    
  3. 因为没加密,所以直接在文件里搜搜看
    dump = open("pid.dump").read()
    all_procs = re.findall('([global |]proc [^\(]*\([^}]*\})',data)
    all_procs = filter(lambda x: '\x00' not in x , all_procs)
    for p in all_procs:
        print p
    

    呃,直接就显示出来了,所以这种”加密”是不是还需要再改进下 …
    mel_extract

    或者你随便拿个editor比如jedit在dump文件里搜下也能搜到,如图
    mel_extract1

正规法应该是 用 haystack 类似这样的工具把memory dump出来,然后通过 c structure来找到 source过的 MEL 在哪个位置我猜 …

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: