如何解决如何将转义的 unicode 字符解码为普通字符?
如何解码将转义的 Unicode 字符替换回字符?我已经尝试过在线 Unicode 解码器和这篇文章:How to convert a string with Unicode encoding to a string of letters,但它们都不起作用。
我有如下编码的字符:
\ua6ad\ua6ad\ua6b3\ua6ae
\ua6ae\ua6b3\ua6b3\ua6ad
\ua6b2\ua6b3\ua6b3\ua6ae$\ua6ad\ua6b0\ua6ae\ua6b1$\ua6ae\ua6b2\ua6b1\ua6af
代码本身:
public class \ua6b3\ua6af\ua6b3\ua6ad
{
public static final boolean \u200e;
public \ua6b3\ua6af\ua6b3\ua6ad() {
final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
if (!\u200e) {
return;
}
}
public void \ua6b2\ua6b2\ua6b0\ua6ae() {
final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
if (!\u200e && !\u200e) {
return;
}
}
public void \ua6b2\ua6b2\ua6b1\ua6b2(final int n,final int n2) {
final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
if (!\u200e && !\u200e) {
return;
}
}
public void \ua6ad\ua6b2\ua6ae\ua6b3(final int n,final int n2,final int n3) {
final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
if (!\u200e && !\u200e) {
return;
}
}
解决方法
这些字符似乎是 Bamum。您可以简单地阅读此文本并打印出来,例如:
public static void main(String[] args) {
String str = "public static void \ua6b2\ua6b2\ua6b0\ua6ae() {";
System.out.println(str);
ꚲꚲꚰꚮ();
}
public static void ꚲꚲꚰꚮ() {
System.out.println("it works!");
}
输出:
public static void ꚲꚲꚰꚮ() {
it works!
如果这些字符是某种substitution cipher,您可以尝试查找编码字典,但这可能是不可能的。
另见:Replacing a character in a string with another character from another string
,看起来这是一个混淆代码。即使您将这些 unicode 转换为它们的符号,除非您的文本编辑器安装了该字体,否则您将无法阅读代码。
此外,名为 '\u200e' 的布尔变量不是印刷类型 unicode。请参阅此处的说明 decoding \u200e to string。
班级和成员的原始名称已被替换为垃圾。您必须对原始代码进行门控才能对其进行分析。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。