|
|
本帖最后由 蔚有星合宇. 于 2023-1-19 02:58 编辑
1.19更新内容
解决
类似
bv = {
0x1,
0x0,
0x3
}
这种结构无法进行正则的问题
整个事情的来龙去脉:
这个最开始的源码是由@溆旧 开源的,然后@团子君 接着修改,然后我再给他刷了次版本号成了48,然后最开始的作者刷成了49,我觉得这样太慢了,所以我们直接刷到20230118,
注:包名也改了,用的MT的共存,主要是方便后期与原版生成的代码对比(分成两个软件,方便一点免得我装来装去),方便修改,以及总结下面的修改内容,如果不喜欢,也可以改回去,或者改一个自己喜欢的名字,用MT共存改即可,并且在此再次感谢一下@溆旧 提供的进制时间戳正则转换4.6的开源代码
客观来讲,这不是刷不刷版本号的问题了,
目前,测试完全可以投入正常使用了,我才改成这个版本号
部分代码不管在
①1.3的转码工具箱(@逗比_滑稽 开发的)还是
②4.9版本的原作者提供的(@溆旧 )
都存在一些问题,导致无法正常使用
其中
①是正则了,但无法匹配正确的代码
②是无法进行正则
本来只是想改进一下某些正经代码的匹配问题,然后由于我的强迫症犯了,就干脆把那些奇葩的代码也都加了进来,
这个是基于开源版的4.6源码(以下简称源版本)进行二次开发和完善的,(我不太会搞布局,所以没改布局了)
所以主要讲一下改进的点:
1,- 源版本,在一行和另一行代码之间的换行存在瑕疵,导致生成的结果无法匹配正确的代码\s改成\s+就能匹配了
复制代码
2,- 比如某些特定的代码nop,.method,等等,奇葩代码无法正则(其实也用不到一般情况下)
复制代码
3,- 例如const-string v7,"0()<>{}\[]{}",const-string这类代码后面的引号内的内容特殊需要转义的字符无法被转义,导致正则表达式异常,不符合语法规范
复制代码
4,- :cond,:goto,像这种以这两个词开头的,(其实就是以冒号开头的)只要有它们就会干扰正则的执行
- 这里随便拿段代码,可以自己去试一下
- :cond_22
- move v3, v0
- move v1, v0
复制代码
5,- return-void,无法正则,其实就是条件漏了这一条
复制代码
6,- #xxxx像这一种含有有注释符的代码(不管是在行首还是在行中,无法被正则,同样会干扰正则的执行
复制代码
7,- 也是4.8版本,我之前改的点(当然,这个跟4.9版本没什么关系,因为我和原作者都是各拿各的代码写的,并不是逆向写的所以4.9版本的调整只是采取了我的建议,并不是一定用了我的方法),调整了一下对于所需正则的代码判断的优先级,如果编辑框为空,则读取剪切板,如果不为空,则优先读取编辑框的内容,[解决了需要多次正则代码时,还要全部重新复制一遍,一条一条的正则的问题]
复制代码
8,- 开头为.的代码无法被正则,例如,那些调试信息,".line"等等
复制代码
9,- 以及类似于
- xxxxx vxx xx, 【Lmt/Log78CC3B^】;
- 【】这里面的代码,若有需要转义的,源版本所生成的正则代码无法正确匹配原代码
- 测试代码: sput-object v0, Lmt/Log78CC3B^;->PARAMETER_BUFFER:Ljava/lang/ThreadLocal;
- new-instance v0, Lmt/Log78CC3B^;
- 这里不是我挑错,我认为这是有实际意义的,因为在实际的应用场景中,许多应用会加许多特殊字符进行类名方法名的混淆,如果特殊字符里包括了需要转义的字符,那么这个生成的代码就无法使用
- 所以改进了一下
复制代码
10,- 基于4.6的源码到4.7版本所更改的问题为
- 解决编辑框布局高度问题,原来的高度没有最大高度限制,仅仅是匹配内容高度,这会导致下面的按钮被顶出屏幕之外,所以加了一个高度限制,及改进为内容自适应家最大高度限制
- (上述所说的正则的执行,就是点了正则按钮以后没效果的意思,源版本只会返还原来的代码,不会做任何处理)
复制代码
等等,还有个最大的区别,原作者是if等等,语句里面的v或p这种寄存器信息生成的正则就没有改成.*了,但是我这个版本是全部改成了.*,还有比如iput vx,vy,,这种类型的话,作者把寄存器改成了(.*),我这里就没有再加括号了,自己需要匹配哪个就自己加哪个括号,用正则的,这个应该是基本常识了吧?加上括号,反而还懒得删.以上基本就是完善的点
下面是效果图:
https://www.123pan.com/s/nQyRVv-hJc0h
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|