硕士生
 
- 金币
- 1050
- 好评
- 9
- 信誉
- 101
|
本帖最后由 缘遇 于 2026-4-25 02:24 编辑
e...好久没发啥可以点的帖子了,今天来水一帖 ---来自MT论坛官方版
违规/侵犯权益删
1.首先我们先打开安装包分析一下
e...看起来貌似好像一切正常捏,打开assets文件夹看看吧我们,打开assets文件夹后印入眼帘的是一连串的zip压缩包和一个key文件夹,这些都不用看,但是有一个压缩包特别突出“StubShell.jar”,看到这个我们就不用再看assets了因为看完了 2.看看lib同时打开lib文件夹又发现了一个文件"libStubShell.so",无需多言了现在,我们直接脱壳处理3.脱修这个壳应该是民间大佬手搓的,强度可能不是很强,因为greendex会失败,所以我们先用团团分身分身一个分身出来再在团团分身里面的模块作用域里勾选光芒大佬开发的工具给我们分身出来的分身勾选上,好了后大退重进,点击悬浮窗选择dumpdex....(省略100万个字),好了进入/storage/emulated/0/Android/data/应用包名/Android/data/com.mzbahkbb/Layout Inspect/Dump Dex/里面,有一个dex和dump.txt,我们重命名并修复dex,然后添加到这个apk里面,然后阿巴阿巴就好啦
4.会员
先从java分析- //
- // Decompiled by Jadx - 521ms
- //
- package com.mzbahkbb;
- import adrt.ADRTLogCatReader;
- import android.annotation.SuppressLint;
- import android.content.DialogInterface;
- import android.graphics.Color;
- import android.net.ConnectivityManager;
- import android.os.Bundle;
- import android.os.StrictMode;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AppCompatActivity;
- import android.telephony.TelephonyManager;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.LinearLayout;
- import android.widget.ListAdapter;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- import android.widget.TextView;
- import com.ly.cgh.pwb;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- @SuppressLint("NewApi")
- public class bahk extends AppCompatActivity {
- /* JADX WARN: Multi-variable type inference failed */
- public void onCreate(Bundle bundle) {
- ADRTLogCatReader.onContext(this, "com.aide.ui");
- StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build());
- super.onCreate(bundle);
- setContentView(0x7f030028);
- url();
- pwb pwbVar = new pwb(this);
- pwbVar.setId("85037fbee2494647976c834c55b9ee16");
- pwbVar.show();
- ListView listView = (ListView) findViewById(0x7f09007f);
- int[] iArr = {2130837573, 0x7f020045, 0x7f020045, 0x7f020045, 0x7f020045, 0x7f020045, 0x7f020045, 0x7f020045, 2130837573};
- String[] strArr = {"固定密码锁机", "序列号锁机", "网页锁机", "电话锁机", "隐藏输入框锁机", "百变序列号锁机", "摇一摇锁机", "序列号图案锁机", "远程修改解锁密码锁机"};
- ArrayList arrayList = new ArrayList();
- for (int i = 0; i < iArr.length; i++) {
- HashMap hashMap = new HashMap();
- hashMap.put("image", new Integer(iArr[i]));
- hashMap.put("title", strArr[i]);
- arrayList.add(hashMap);
- }
- listView.setAdapter((ListAdapter) new SimpleAdapter(this, arrayList, 0x7f030027, new String[]{"title", "image"}, new int[]{2131296325, 2131296321}));
- listView.setOnItemClickListener(new bahk$100000001(this));
- this.lb = (LinearLayout) findViewById(0x7f09007e);
- this.zc = (TextView) findViewById(0x7f090078);
- this.ts = (TextView) findViewById(0x7f09007a);
- this.dz = (TextView) findViewById(0x7f09007c);
- this.zcm = (EditText) findViewById(0x7f090079);
- this.mm = (EditText) findViewById(0x7f090075);
- this.yz = (Button) findViewById(0x7f09007b);
- this.fly1 = findViewById(0x7f09007d);
- ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService("connectivity");
- if (connectivityManager.getActiveNetworkInfo() == null || !connectivityManager.getBackgroundDataSetting()) {
- this.lb.setVisibility(4);
- new AlertDialog.Builder(this).setIcon(0x7f020045).setTitle("没有网络哦").setMessage("没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦没有网络哦").setPositiveButton("没有网络哦", (DialogInterface.OnClickListener) null).show();
- }
- this.fly1.setTextSize(13);
- this.fly1.setTextColor(Color.parseColor("#10ECCD"));
- this.fly1.setTexts("by:不透露 qq: 感谢好友:k");
- this.fly1.startAnimation();
- this.ts.setFocusable(true);
- this.ts.requestFocus();
- try {
- URLConnection openConnection = new URL("").openConnection();
- openConnection.connect();
- Date date = new Date(openConnection.getDate());
- int parseInt = Integer.parseInt(new StringBuffer().append(new StringBuffer().append(date.getHours()).append("").toString()).append(date.getMinutes()).toString());
- if (parseInt >= 1810 && parseInt <= 1830) {
- this.zc.setText("状态:免费使用时间段");
- this.彼岸花 = true;
- }
- } catch (IOException e) {
- }
- try {
- String str = 不透露.getsss(new StringBuffer().append(不透露.getString(getResources().openRawResource(0x7f050000)).replaceAll("\n", "")).append(":21:3SSSP:55SSSP:22SSSP:28SSSP:58BAHK81:1SSSP:21SSSP:55SSSP:21:3BAHK80SSSP:54SSSP:28BAHK81:4SSSP:58SSSP:24SSSP:15").toString());
- String deviceId = ((TelephonyManager) getSystemService("phone")).getDeviceId();
- this.zcm.setText(new StringBuffer().append("注册码:").append(deviceId).toString());
- String str2 = 不透露.getsssp(new StringBuffer().append(str).append(不透露.getMD5String(new StringBuffer().append(str).append(deviceId).toString())).toString());
- StringBuffer stringBuffer = new StringBuffer();
- BufferedReader bufferedReader = new BufferedReader(new FileReader(new File("/mnt/sdcard/Tencent/QQfile_recv/.tmp/.Lycorisradiata.txt")));
- while (true) {
- String readLine = bufferedReader.readLine();
- if (readLine == null) {
- break;
- } else {
- stringBuffer.append(readLine);
- }
- }
- bufferedReader.close();
- if (stringBuffer.toString().equals(str2)) {
- this.zc.setText("状态:已注册");
- this.zcm.setVisibility(8);
- this.yz.setVisibility(8);
- this.mm.setVisibility(8);
- this.ts.setText("欢迎加入不透露的交流群 群号码:");
- this.不透露 = true;
- }
- } catch (IOException e2) {
- }
- }
- }
复制代码
if (parseInt >= 1810 && parseInt <= 1830) {
this.zc.setText("状态:免费使用时间段");
this.不透露 = true;
}
这个结合smail代码分析可以得出结果是如果时间出在6点10分和6点30分内就显示状态:免费使用时间段不是就不显示,同时上面还有两个if判断,所以合法怀疑了,直接注释两个if,然后安装发现有用,但是页面太过杂乱了怎么办?我们到状态:已注册这里把if那个替换成goto :goto_370,line 370下面加:goto_370,函数try_start_344头上加:goto_370,直接跳过大部分代码直接执行已注册的代码
叠甲:软件仅用于练手,请勿用于非法用途,软件放出来也只是为了坛友可以实操练习,请管理员手下留情啊
练手包:
仅供学习参考
|
|