吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8185|回复: 46
收起左侧

[Android 分享] 〖补充〗关于 Java转smali 白嫖加速器的食用方法 Java2smali教程

  [复制链接]
芽衣 发表于 2020-12-13 19:29
本帖最后由 芽衣 于 2020-12-13 21:12 编辑



我看到有不少人问https://www.52pojie.cn/thread-1326715-1-1.html这个代码怎么用,大部分刚接触安卓逆向的小伙伴应该是没有见过的。实际上需要新建一个类,然后再调用,不建议直接修改原代码。
Java转换成smali代码,之前我也见到有人问了。我一般推荐一些小巧的工具,不推荐专业工具,所以遇到复杂的写法就转换失败了。如果你百度Java转smali的方法,我也不知道怎么评价那些答案,也不能说是错的,但是执行起来也是问题多多……


准备工具:
1、Android studio、IDEA等
2、反编译工具



还是那句话,小白劝退。因为专业工具我感觉小白根本扛不住,像IDA、Android studio、IntelliJ IDEA、dnSpy、x64dbg等,光看名字你都不知道是什么,这让只会MT管理器的小白直呼受不了 33.jpg


当然我的方法不一定好,我只是以我的角度去处理这个问题,做个示范,并不代表唯一方法。总体思路是利用完整的apk源码,反编译后获得smali。



一、编译1个简单的apk

1.png


编译器的功能就不介绍了,弄个简单的HelloWorld。然后编译成apk测试一下能否运行。

1.png


能生成就行了,因为我们主要是为了要dex文件,所以怎么设计app都不要紧。接下来写java代码,前提是必须要保证Java是对的,逻辑也不能出错,要不然最后Patch进去肯定用不了。

[Java] 纯文本查看 复制代码
import android.content.Context;
import android.content.SharedPreferences;
 
import java.util.Date;
 
import static android.content.Context.MODE_PRIVATE;
 
public class Utils {
    public static SharedPreferences sp;
 
    public static String getRandom(Context context) {
 
        sp = context.getSharedPreferences("Config", MODE_PRIVATE);
        String id;
        int a = 16;
        String KeyString = "123456789abcdef";
        int len = KeyString.length();
        StringBuffer sb = new StringBuffer();
        for(int i=0;i<a;i++){
            sb.append(KeyString.charAt((int) Math.round(Math.random()*(len-1))));
        }
        id =sp.getString("id",KeyString);
        if(needupdate()){
 
            id = sb.toString();
 
            sp.edit().putString("id",id).commit();
        }
        return id;
    }
 
    public static boolean needupdate(){
 
        Date date = new Date(System.currentTimeMillis());
 
        if(sp.contains("temp")&&date.getTime()-sp.getLong("temp",date.getTime())<43200000)return false;
 
        sp.edit().putLong("temp", date.getTime()).commit();
 
        return true;
 
 
    }
 
}




二、加入apk源码


原文代码如上,那么如何塞进apk呢??
回到开发项目,右键Java文件夹新建1个类。从代码上面写的代码public class Utils可以知道,类名就是Utils。

1.png


1.png


然后就简单了,直接把代码复制进去。然后检查一下Java,没有出现警告,说明所有代码都已经正常识别。
最后再重建apk就差不多完成了。

1.png


三、抽取smali


1.png


如上图,直接反编译apk,就可以看到目录下有个Utils.smali。里面的代码就是我们想要的了。
嫌麻烦可以用mt管理器操作,mt管理器打开“app-debug.apk”,把其它的类全部删掉即可,留下单独的类备用,等下要调用这个类。


1.png



四、放进绿叶加速器


1.png


你也可以根据现有代码,用mt管理器新建一个类,然后拷贝进去,都一样,但是要注意代码内的路径。

回到绿叶生成设备id的方法内,先把方法代码全删,然后改成调用getRandom


释义:
invoke-static:调用
move-result-object x:把上面方法的返回值移动到寄存器x


所以这里Patch的代码是:
.method public static j(Landroid/content/Context;)Ljava/lang/String;
    .locals 4

    invoke-static {p0}, LUtils;->getRandom(Landroid/content/Context;)Ljava/lang/String;

    move-result-object v3

    return-object v3
.end method



其中LUtils是文件路径,不建议写太长,容易记不住,getRandom就是方法名。这样就大功告成了!
wwww.jpg



实际上我没有试过,到底能不能自动注册新用户我也不知道,因为之前我测试写死dex的时候,如果变动id需要清空数据才能重新注册,然后我就扔垃圾箱了。


备注:我知道编译器有插件一键转换smali,但是我用最新版的好像不兼容,遂卸之。

免费评分

参与人数 19吾爱币 +13 热心值 +18 收起 理由
littleWhiteDuck + 1 + 1 用心讨论,共获提升!
Titanic + 1 用心讨论,共获提升!
WAlitudealiy + 1 谢谢@Thanks!
bosscqh + 1 我很赞同!
dadao815 + 1 + 1 用心讨论,共获提升!
s1158627362 + 1 + 1 算了 看看有没有好心人来个成品 嘤嘤嘤
是随风啊 + 1 谢谢@Thanks!
轩可雅 + 1 谢谢@Thanks!
zhangdale + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
oxyroy + 1 我很赞同!
HarrisonDios + 1 用心讨论,共获提升!
longling + 1 + 1 我很赞同!
十五先生 + 1 + 1 谢谢@Thanks!
正己 + 1 + 1 芽衣哥哥牛逼!
man2924981 + 1 + 1 热心回复!
yan182 + 1 + 1 我很赞同!
小鹿乱撞过 + 1 + 1 我很赞同!
liuxiaoxin + 1 + 1 用心讨论,共获提升!
wanfon + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 芽衣 发表于 2020-12-14 09:31
龙神邪少 发表于 2020-12-14 09:21
。。。我都试了好几个反编译的教程了,,啥都没弄出来,,,靠了,MT签名那块是需要付费,不付费用不了,, ...

我丢……用np管理器啊,kstool也行。又不是只有mt一家
龙神邪少 发表于 2020-12-14 12:03
芽衣 发表于 2020-12-14 09:31
我丢……用np管理器啊,kstool也行。又不是只有mt一家

俺是新手啊,俺不晓得还有其他滴。。我看着大佬用的最多的就是MT了,,,
 楼主| 芽衣 发表于 2020-12-13 19:36
DL_君逸寒 发表于 2020-12-13 19:40
大佬太强了,等我考完试动手试试
战网无极限 发表于 2020-12-13 19:43
get到了,感谢分享
wanfon 发表于 2020-12-13 19:49
涨知识了,谢谢详解
liuxiaoxin 发表于 2020-12-13 19:52
大佬,牛批 感谢分享,给力支持!
小骚 发表于 2020-12-13 20:45
其实Android studio 是有java转smali插件的...........


免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
正己 + 1 + 1 希涵哥哥牛逼!

查看全部评分

man2924981 发表于 2020-12-13 21:00
大佬,牛批 感谢分享,给力支持!
 楼主| 芽衣 发表于 2020-12-13 21:05
小骚 发表于 2020-12-13 20:45
其实Android studio 是有java转smali插件的...........

我转了它弹不出来,我都卸载了。
37377178849 发表于 2020-12-13 21:13
感谢分享,给力支持,从来不白嫖
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 11:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表