Java and android 的反编译问题

恒拓信息科技 恒拓信息科技 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟最近反编译 了一段android 代码(反编译以后的) 如下:

import java.security.MessageDigest;

public class h
{
public static final String a(String paramString)
{
int i = 0;
char[] arrayOfChar1 = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70 };
try
{
byte[] arrayOfByte1 = paramString.getBytes();
MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
localMessageDigest.update(arrayOfByte1);
byte[] arrayOfByte2 = localMessageDigest.digest();
int j = arrayOfByte2.length;
char[] arrayOfChar2 = new char[j * 2];
int k = 0;
while (true)
{
if (i >= j)
return new String(arrayOfChar2);
int m = arrayOfByte2[i];
int n = k + 1;
arrayOfChar2[k] = arrayOfChar1[(0xF & m >>> 4)];
k = n + 1;
arrayOfChar2[n] = arrayOfChar1[(m & 0xF)];
i++;
}
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
}


猜测 应该是 MD5加密 然后和 固定数组 异或 所得的 加密字符串,但里面 出现了一个乱码“>>>”("arrayOfChar2[k] = arrayOfChar1[(0xF & m >>> 4)];"),“>>>” 这个实在是不知道是什么意思,望哪位大侠给指点一下
下面是 对应的smali 代码:
.class public Lcom/sing/client/k/h;
.super Ljava/lang/Object;


# direct methods
.method public static final a(Ljava/lang/String;)Ljava/lang/String;
.registers 10

.prologue
const/4 v0, 0x0

.line 7
const/16 v1, 0x10

new-array v2, v1, [C

fill-array-data v2, :array_44

.line 9
:try_start_8
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B

move-result-object v1

.line 11
const-string v3, "MD5"

invoke-static {v3}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;

move-result-object v3

.line 13
invoke-virtual {v3, v1}, Ljava/security/MessageDigest;->update([B)V

.line 15
invoke-virtual {v3}, Ljava/security/MessageDigest;->digest()[B

move-result-object v3

.line 17
array-length v4, v3

.line 18
mul-int/lit8 v1, v4, 0x2

new-array v5, v1, [C

move v1, v0

.line 20
:goto_1f
if-lt v0, v4, :cond_27

.line 25
new-instance v0, Ljava/lang/String;

invoke-direct {v0, v5}, Ljava/lang/String;-><init>([C)V

.line 28
:goto_26
return-object v0

.line 21
:cond_27
aget-byte v6, v3, v0

.line 22
add-int/lit8 v7, v1, 0x1

ushr-int/lit8 v8, v6, 0x4

and-int/lit8 v8, v8, 0xf

aget-char v8, v2, v8

aput-char v8, v5, v1

.line 23
add-int/lit8 v1, v7, 0x1

and-int/lit8 v6, v6, 0xf

aget-char v6, v2, v6

aput-char v6, v5, v7
:try_end_3b
.catch Ljava/lang/Exception; {:try_start_8 .. :try_end_3b} :catch_3e

.line 20
add-int/lit8 v0, v0, 0x1

goto :goto_1f

.line 26
:catch_3e
move-exception v0

.line 27
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

.line 28
const/4 v0, 0x0

goto :goto_26

.line 7
:array_44
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x41s
0x42s
0x43s
0x44s
0x45s
0x46s
.end array-data
.end method


哪位大侠 帮我解释一下 那一句中的“>>>”应该是什么运算符,万分感谢!
...全文

相关推荐

Android反编译工具

**JEB (Java Bytecode Emulator and Decompiler)**:这是一个高级的反编译和调试工具,可以生成高质量的Java源代码,并且支持多种Android调试功能。

「已注销」

安卓与Java逆向反编译神器实战指南

本文还有配套的精品资源,点击获取 简介:逆向工程在软件安全、代码分析和二次开发中具有重要作用。本文介绍的“安卓与Java反编译神器”是一类高效工具,能够将Android APK中的Dalvik字节码还原为可读的Java源代码,帮助开发者深入理解应用内部逻辑。内容涵盖Android应用结构、主流反编译工具(如dex2jar、JD-GUI、Apktool、FernFlower、CFR)的使用方法、反编译原理、混淆代码处理及典型应用场景,如安全分析、调试、二次开发和学习研究。

数据冰山

反编译jar文件,导出java源码 jd-gui 0.3.5 and dex2jar 0.0.9.15 and jar2dex.zip

标题提到的"反编译jar文件,导出java源码 jd-gui 0.3.5 and dex2jar 0.0.9.15 and jar2dex.zip"就是一个这样的场景,它涉及到两个主要的反编译工具:JD-GUI

pfppan

Android超强反编译工具JEB

而JEB(Java Enhanced Bytecode)就是这样一款强大的Android反编译神器,它以其近乎源码级的语法解析能力,深受开发者和安全研究人员的喜爱。1.

e守望者e

Android and Java bytecode viewer.zip

【标题】"Android and Java bytecode viewer.zip" 涉及的主要知识点是Android应用程序开发和Java字节码。

zero2100
评论 2
收藏 已收藏
分享
返回顶部
恒拓信息科技
Java 51,407 成员 86,127 内容