某移动水务抄表终端部分代码移除的问题
本帖最后由 guoguoyuyu 于 2019-11-3 09:09 编辑纯纯小白接触了一款无壳某移动水务抄表终端APP,其中一项功能是可以通过蓝牙打印机打印出有关用户信息。此次反编译的目的是想取消图片中红色部分(账务月份)的打印,
由于从未接触APP反编译,只能硬着头皮尝试着用Android Killer来操作,于是就把“账务月份”编码转换为 “\u8D26\u52A1\u6708\u4EFD”,然后工程搜索,显示出如下图
找到了很多“账务月份”字样相关的代码,也不知道哪个才是真正体现在打印单据上那条,索性把所有的相关代码全部删除
把所有红色部分全部删除,直至工程搜索中已经搜不到 “\u8D26\u52A1\u6708\u4EFD” 之后重新打包APK签名,但是结果是程序可以正常安装,也可进入,但是无法点击进入打印页面,一点击就程序报错退出。
我感觉我肯定哪里操作有误,希望大佬帮帮忙,如果需要可以提供APK文件。 ColoThor 发表于 2019-11-3 09:19
如果账务月份和打印日期有关联,删除账务月份,打印日期也会出问题
其实打印日期就是手机上面的日期,但是账务月份是下载用户数据的月份,也就是说如果2019年11月下载的数据,手机调整到2019年10月1日,打印出来的单据上边就会显示:账务月份2019年11月 打印日期2019年10月1日
此次目的就是想把账务月份和打印日期时间同步,同步为手机当前时间,而不是下载数据的具体月份。我试着尝试 搜索 “打印日期” \u6253\u5370\u65e5\u671f ,看到其中好像是对于日期判定的命令 如图
我看所有有关打印日期的命令 调用的是 getPrintDate,于是我又搜索 “账务月份” \u8D26\u52A1\u6708\u4EFD 找到它们的命令
发现有两个是getNowReadDate,其他都是getRlmonth,于是我把getRlmonth 替换为 getPrintDate ,结果也是到打印界面报错退出~~ 本帖最后由 zixijian 于 2019-11-11 20:21 编辑
根据我的经验来讲,
你直接搜这代码串最多也就把账务月份这几个字给改了,
这种方法常用于汉化。
由于我没用过,我大体上提提我的想法,
别管怎么获取的,这具体日期会存到相关的地方,我们直接把这里写成你想要的结果,存的行为给一个错误的地址,这适用于每项都单独存放。
如果能有查询之后就能多次打印,这多半是有数据库,sqlite说不定有帮助。
所有数据都放在一起,就麻烦了。
原有功能打印的,从哪里获取的数据,这种数据格式是什么样子的,能不能指定路径,我们手动写一份,写成什么样,打出来就是什么样。
全部删除。。别处要用到程序就gg了 最简单的办法
财务月1
财务月2
财务月3
财务月4
财务月5
财务月6
财务月7
这样去改 再重新打印 就能知道要改啥 可以帮俺改下水费单 电费也行{:1_892:} 。。。 顶一下吧 ColoThor 发表于 2019-11-2 22:47
全部删除。。别处要用到程序就gg了
确实啊 但是就不知道哪条才是应该删除的 wxb519774317 发表于 2019-11-2 22:51
最简单的办法
财务月1
财务月2
我明白了你的意思 但是里面的其他代码我确实不懂,如果找到相关那条或者多条,我那样的删除操作对不对啊? ms8557 发表于 2019-11-2 23:07
可以帮俺改下水费单 电费也行
这没啥意义啊 都联网的行不通的 guoguoyuyu 发表于 2019-11-2 23:36
我明白了你的意思 但是里面的其他代码我确实不懂,如果找到相关那条或者多条,我那样的删除操作对不对啊 ...
不能直接删除。就像函数中没对参数进行 null 判断就使用一样,会报错 ColoThor 发表于 2019-11-2 23:40
不能直接删除。就像函数中没对参数进行 null 判断就使用一样,会报错
大佬,我感觉也是这么回事,只是我一点也不懂此类语言应该怎么编译,可否指点一二,或者告诉我加入如什么空白指令什么的能否行得通?