py征途4之无效思路( 二 )


即便如此我还是不甘心,这并没有在实际上解决问题,因为图片分割是不稳定的,他会因为图片的不同而出现意外情况 。
三,初识逆向
偶然间我看到了这样两篇文章
实用的微信小程序逆向教程!
记一次小程序逆向和数据包解密
因为国内工具被删了,只好用国外的了 。
刚好近期学了,kali里面有node环境,然后,我“逆向”出了该微信小程序的源码 。当然了期间总会遇到些小问题,都还算顺利的解决了 。
1源码审计
因为方法较为特殊就不放代码的截图了,主要讲一讲大致的历程吧 。兜兜转转了很久,找到了主要显示“每日跑量”的index.js和index.wxml,但是没有发现调库的痕迹 。还是代码知识太浅薄了,可能是第一次接触微信小程序吧,没有真正做过小程序 。
2来自PMR的支援
马上就要体能了,刚好P佬不是很擅长锻炼,于是我就拉着它去跑步,顺道提到了这个事情,一来二去,就讨论了起来 。Ta指出“微信小程序逆向之后得到的并不是真实源码,它们是经过了微信的处理后生成的,分析起来比较难” 。然后Ta给我提供了一个思路——抓取的控件 。
四,1控件!!!!!
在使用查看布局后可以发现,这里面有个一text标签详细记录了昵称,那么我只要获取到这个控件的text就行或者直接获取该控件的全部信息也可以 。
通过默认的选项生成代码,然后修改为获取全部变量即可 。
(".view.View").text("这周末在做梦13").()

py征途4之无效思路

文章插图
将他修改为
(".view.View").find()
然后写入日志文件 。
files.remove("/sdcard/Pictures/运行日志2.txt");//app.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, android.net.Uri.fromFile(java.io.File("/sdcard/Pictures/运行日志1.txt"))));var name = className("android.view.View").find();console.setGlobalLogConfig({ "file": "/sdcard/Pictures/运行日志2.txt" });console.log(name);
这样就可以获取到当前页面所有控件的信息了 。
2配置环境
参考这篇文章配置 。
Auto.js的初次使用——在中使用
其中还是有部分步骤不一样的,需要学习的小伙伴可以参考下面这张我总结的图片
3用最傻的方式做最聪明的事情
(1)将日志文件输出到PC,调用进行字符串处理 。
当时是因为懒得去学习的相关语法,感觉没有用的顺手于是就直接写了 。
log_path="C://Users//qte//Nox_share//ImageShare//运行日志1.txt"f = open(log_path, 'r',encoding='utf-8')#print(f.read())str_log=f.read()f.close()str_last=[]#记录最终日志分割后的列表#根据'text: '和'; content'分割日志str_log_list=str_log.split('text: ')for i in str_log_list:i=i.split('; content')#print(i[0])str_last.append(i[0])#经过两次分割,掐头去尾,个i列表的第一个就是昵称 。当然了,不排除可能出现其他非昵称字符的情况,但这种情况会在接下来的代码中解决 。print(str_last)"""以下这一段就是后续识别和分类的代码,和之前介绍的一样,只是去掉了like_standard 。"""list_paole = []for i in str_last:for k in class_name.keys():if i == k:#匹配相等就输出#print(like_standard(i,k))print(k)# 输出匹配上的识别结果if class_name[k] == "1":print(i)list_paole.append(i)else:print(class_name[k])list_paole.append(class_name[k])print(list_paole,len(list_paole))re_class = [x for x in class_all if x not in list_paole]print(re_class)
(2)P佬指出你为啥不直接用一个脚本跑完呢?