MAWalker首页:github
如果你无意接触更深层次的东西,请点击这里查看基础使用教程
先说点废话: 我本来是一点都不会java的,也没接触过安卓编程。自从玩了MA之后,学了java,学了逆向apk。话说之前有人QQ上和我说要源代码学习一下,但是不会java,我给拒绝了。不过当时确实没有公开源代码的想法,但同时更重要的一点是:如果一点java也不会,直接从别人的源代码学习是非常不恰当的,因为作者(比如我)也未必熟练使用这门语言,所以会学不扎实,同时也有可能学到许多不好的编程习惯。其实我一点都不喜欢java,现在也是。之所以使用java,主要还是想到GP版(没有肾机的屌丝)是java写的,可能挂写起来比较容易。嘛,废话少说,进入正题。
##本文包含如下内容:
1. MAWalker的高阶使用
2. 源代码的大致结构
3. 编写自己的代码
MAWalker的高阶使用
MAWalker支持直接进行网络数据包的解密(iOS的由于加密方式不同请自觉绕过,SEQ的不知道行不行),这是想要研究数据包的重要工具,你可以把使用fiddler截下来的包,把相应的body保存下来(假设保存为x
),然后使用下面命令:
|
|
其中由于MA传输共有两种加密方式,一种是使用基础密钥加密,另一种是使用用户名加密,分别对应参数-f1
和-f2
。
同样也可以使用-d1
和-d2
对request的参数进行解密。
源代码的大致结构
正如刚才的瞎扯所说,我对刚学java,所以没有代码什么巧妙之处,但是我自认为我编程习惯良好,就是不爱写注释(本来就是一小程序),所以稍微介绍一下,总体来说阅读代码不会有太大的困难的。 可以看出这个程序共有4个package,其中net包是网络通信相关,一般不用改。action包是某个具体操作,info包是相关信息,walker是外壳。
程序的执行流程非常简单,就是下列流程的循环:
1. 检查相关信息,处理错误与事件,添加可行操作
2. 使用Think权衡各种操作,选择最佳操作
3. 执行操作,处理结果,或者引发错误,或者触发事件
具体就请查看源码吧。
编写自己的代码
我知道,应该有些人会写代码,只是不知道MA是怎么加密的,所以看到我这个源代码之后,便会自己去写自己的程序,我很赞成,不然我也不会开放源代码。 但是如果你比较懒,只是想在我的代码基础上进行改进,那么下面的文字应该对你有用。 想要增加功能,需要这么几步:
- 在
ActionRegistry
类中添加你的新功能名字
- 在
Info
类中添加你想使用的相关信息
- 在
Process
中的getPossibleAction()
中添加新功能激发条件,在execute(Action)
中添加执行后的处理工作
- 在
Think
类中添加新功能的执行条件以及如何与其他操作进行权衡
- 编写新功能的主体代码
如果你愿意,欢迎给我来个pull request,前提是你之前fork了我的项目,而不是只是下载了我的源代码。 如果你只下载了源代码,而又想与我分享的话,欢迎发送邮件,我看情况将代码加入,请放心,加入时一定会标明作者的(除非你不愿意)。 以上均建立在我有空且有心情的情况下,特此注明。
声明
本程序遵循MIT协议发布,如果使用或修改了本程序中的代码,请按协议要求包含版权声明和许可声明。