Hiero_FnNukeShotExporter的解析与修改

研究对象:Hiero中的FnNukeShotExporter脚本

研究目的:修改FnNukeShotExporter使得可以将多个TrackItem导入到一个.nk中

FnNukeShotExporter这个script控制了Exporter中的Nuke Project File输出选项,关于TrackItem输出到.nk工程中的方法都存放在这个script里。

NukeShotExporter类继承自FnShotExporter中的ShotTask类,输出.nk工程的核心代码都在self.step()方法中。

仔细阅读这段代码又会发现该方法调用了来源于hiero.core.nuke.Script.py中的ScriptWriter类,该对象调用了hiero.core.nuke.Node.py中的多个Node类。

了解了内部逻辑关系后对该功能的修改就变得很容易了。

我们发现,self.step()方法的最后一部分有这样一行:

script.writeToDisk_vhq(scriptFilename)

显然这是将script对象写入具体.nk文件的一个方法。

找到该方法代码块如下:

def writeToDisk(self, scriptFilename):

dstdir = os.path.dirname(scriptFilename)

if not os.path.exists(dstdir):

os.makedirs(dstdir)

if os.path.lexists(scriptFilename):

os.remove(scriptFilename)

fileContents = str(self)

f = open(scriptFilename, ‘w‘)

f.write (fileContents)

f.close()

我们发现第五六行代码会判断同名.nk工程是否存在,如果存在就会删掉,然后创建新的.nk工程进行写入,这与我们将好几个TrackItem
写入同一个.nk工程的想法是背道而驰的,所以只要对这个方法进行修改,使其能对同一个工程重复追加写入即可。具体修改方法很简单,就不说了。

时间: 2024-07-28 23:52:43

Hiero_FnNukeShotExporter的解析与修改的相关文章

XML系列:(5)XML解析-JAXP的DOM解析方式修改XML

DOM.SAX和StAX只是解析方式,没有API. JAXP是SUN提供的一套XML解析API.JAXP(Java API for XMLProcessing,意为XML处理的Java API) JAXP很好的支持DOM和SAX解析. JAXP开发包是JAVASE的一部分,它由java.xml.org.w3c.dom.org.xml.sax包及其子包组成 1.以DOM解析方式修改XML 1.1.将Document树保存到文件中 package com.rk.xml.e_jaxp_dom_writ

Android逆向之旅---应用的"反调试"方案解析(附加修改IDA调试端口和修改内核信息)

一.前言 在前一篇文章中详细介绍了Android现阶段可以采用的几种反调试方案策略,我们在破解逆向应用的时候,一般现在第一步都回去解决反调试,不然后续步骤无法进行,当然如果你是静态分析的话获取就没必要了.但是有时候必须要借助动态调试方可破解,就需要进行操作了.现阶段反调试策略主要包括以下几种方式: 第一.自己附加进程,先占坑,ptrace(PTRACE_TRACEME, 0, 0, 0)!第二.签名校验不可或缺的一个选择,本地校验和服务端校验双管齐下!第三.借助系统api判断应用调试状态和调试属

DOM4j解析、修改、删除、增加、保存XML的方法

//XML文件 <?xml version="1.0" encoding="gb2312"?> <PhoneInfo> <Brand name="华为" ID="1"> <Type name="P9"> <title>标题信息</title> </Type> </Brand> <Brand name=&qu

xml解析-jaxp修改结点

jaxp修改结点 / 修改第一个p1下面的sex内容是nan * 1.创建解析器工厂 * 2.根据解析器工厂创建解析器 * 3.解析xml返回document * 4.得到sex item方法 * 5.修改sex里面的值 setTextContent方法 * * 6.回写xml * */ private static void changeNode() throws ParserConfigurationException, SAXException, IOException, Transfor

iOS开发:xmpp下的xml数据解析及修改上传

一.利用xmpp里的扩展文件进行xml数据解析,xml数据解析的框架需要自己手动写出. 包含这个头文件NSXMLElement+XMPP.m.主要使用了这个文件中的如下方法: - (NSXMLElement *)elementForName:(NSString *)name { NSArray *elements = [self elementsForName:name]; if ([elements count] > 0) { return [elements objectAtIndex:0]

JDK7与8内存参数解析与修改

JDK内存 jdk内存实际是jvm内存,jvm有一个运行时数据区,其实就是对这一部分的大小分配. 运行时数据区通常包括这几个部分:程序计数器(Program Counter Register).Java栈(VM Stack).本地方法栈(Native Method Stack).方法区(Method Area).堆(Heap) Xss:每个线程的stack大小(栈) Xmx:JAVA HEAP的最大值.默认为物理内存的1/4 Xms:JAVA HEAP的初始值,server端最好Xms与Xmx一

node-http-proxy修改响应结果

最近在项目中使用node-http-proxy遇到需要修改代理服务器响应结果需求,该库已提供修改响应格式为html的方案:Harmon,而项目中返回格式统一为json,使用它感觉太笨重了,所以自己写了个可解析和修改json格式的库, 期间也遇到了之前未关注的问题:http传输编码.node流的相关处理.下面是实现代码: var zlib = require('zlib'); var concatStream = require('concat-stream'); /** * Modify the

xml文档解析

XML文档解主要分为四种解析方式,官方提供的两种分别是:DOM 和 SAX,第三方分别是:JDOM 和 DOM4j 测试用的xml文档: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <user> 3 <uname type="3">zhangsan</uname> 4 <uname type="2">王麻子</uname

[Java开发之路](11)SAX解析XML文档

1. 简介 Dom解析功能强大,可增删改查,操作时会将XML文档读到内存,因此适用于小文档: SAX解析是从头到尾逐行逐个元素解析,修改较为不便,但适用于只读的大文档: SAX采用事件驱动的方式解析XML.套用网友的解释:如同在电影院看电影一样,从头到尾看一遍,不能回退(Dom可来来回回读取),在看电影的过程中,每遇到一个情节,都会调用大脑去接收处理这些信息.SAX也是相同的原理,每遇到一个元素节点,都会调用相应的方法来处理.在SAX的解析过程中,读取到文档开头.文档结尾,元素的开头和元素结尾都