Skip to content

Only Linux? #11

@Vladik01-11

Description

@Vladik01-11

When I try to decompile with FernFlower I get an error, I'm not very good at it, so here is the log

apkscan --fernflower fernflower.jar launcher.apk
←[1;32m   ('-.      _ (`-. .-. .-')   .-')             ('-.         .-')
  ( ←[0mOO←[1;32m ).-. ( (←[0mOO←[1;32m  )\  ( ←[0mOO←[1;32m ) ( ←[0mOO←[1;32m ).          ( ←[0mOO←[1;32m ).-.    ( ←[0mOO←[1;32m )
  / . --. /_.`     \,--. ,--.(_)---\_) .-----. / . --. /,--./ ,--,
  | \-.  \(__...--''|  .'   //    _ | '  .--./ | \-.  \ |   \ |  |
  | '  |  ||  /  | ||      / \  :` `. |  |('-. | '  |  ||    \|  |
  | |_.'  ||  |_.' ||     '   '..`''. |  |←[0mOO←[1;32m  )| |_.'  ||  .     |
  |  .-.  ||  .___.'|  .   \ .-._)   \|  |`-'| |  .-.  ||  |\    |
  |  | |  ||  |     |  |\   \\       /'  '--'\ |  | |  ||  | \   |
  `--' `--'`--'     `--' '--' `-----'  `-----' `--' `--'`--'  `--'
  ←[1;92mAPKscan v0.4.0 - ←[3mScan for secrets, endpoints, and other sensitive data
  after decompiling and deobfuscating Android files.←[0m←[0;92m
  (.apk, .xapk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab, .jadx.kts)

  ←[0m←[2m(c) Lucas Faudman, 2024. License information in LICENSE file.
  Credits to the original authors of all dependencies used in this project.
←[0m
←[1mStarting APKscan...←[0m

Found fernflower binary: fernflower.jar

Loading secret locators from 1 files.

Loaded 224 secret locators.

Initialized Decompiler:
- Decompiler:(binary_paths={'fernflower': WindowsPath('fernflower.jar')}, extra_args={'fernflower': []}, deobfuscate=True, output_suffix=-decompiled, working_dir=C:\Users\user\Desktop, remove_failed_output_dirs=False, concurrent_executor=CuncurrentExecutor(concurrency_type=thread, results_order=completed, max_workers=None, chunksize=1, timeout=None, shutdown=True, wait=True, cancel_pending=False, executor=None, executor_init_kwargs={}))

Initialized Secret Scanner:
- SecretScanner(secret_locators=224, concurrent_executor=CuncurrentExecutor(concurrency_type=process, results_order=completed, max_workers=None, chunksize=1, timeout=None, shutdown=True, wait=True, cancel_pending=False, executor=None, executor_init_kwargs={})))

Decompiler Binaries:
- fernflower.jar

Secret Locator Files:
- C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\secret_locators\default.json

Output File:
- C:\Users\user\Desktop\secrets_output.json


Decompiling started at 19:10:51:51S

Creating output directory: C:\Users\user\Desktop\launcher-decompiled
Output directory created: C:\Users\user\Desktop\launcher-decompiled

Enjarifying launcher.apk to launcher.jar
56330 classes processedOutput written to C:\Users\user\Desktop\launcher-decompiled\launcher.jar
androidx/core/os/CancellationSignal.class Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\main.py", line 42, in translate
    class_data = writeclass.toClassFile(dex_class, options)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 116, in toClassFile
    pool, rest_stream = classFileAfterPool(cls, opts=opts)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 78, in classFileAfterPool
    cls.parseData()
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 218, in parseData
    self.data = ClassData(self.dex, self.data_off)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 178, in __init__
    self._parse(dex, dex.stream(offset))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 198, in _parse
    methods.append(Method(dex, method_idx, stream.uleb128(), stream.uleb128()))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 170, in __init__
    self.code = CodeItem(dex, code_off) if code_off else None
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 162, in __init__
    self.bytecode = parseBytecode(dex, insns_start_pos, insns, catch_addrs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\dalvik.py", line 202, in parseBytecode
    assert 0 not in catch_addrs
           ^^^^^^^^^^^^^^^^^^^^
AssertionError

androidx/media3/extractor/text/ssa/SsaParser.class Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\main.py", line 42, in translate
    class_data = writeclass.toClassFile(dex_class, options)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 116, in toClassFile
    pool, rest_stream = classFileAfterPool(cls, opts=opts)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 78, in classFileAfterPool
    cls.parseData()
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 218, in parseData
    self.data = ClassData(self.dex, self.data_off)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 178, in __init__
    self._parse(dex, dex.stream(offset))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 198, in _parse
    methods.append(Method(dex, method_idx, stream.uleb128(), stream.uleb128()))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 170, in __init__
    self.code = CodeItem(dex, code_off) if code_off else None
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 162, in __init__
    self.bytecode = parseBytecode(dex, insns_start_pos, insns, catch_addrs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\dalvik.py", line 202, in parseBytecode
    assert 0 not in catch_addrs
           ^^^^^^^^^^^^^^^^^^^^
AssertionError

com/google/common/base/internal/Finalizer.class Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\main.py", line 42, in translate
    class_data = writeclass.toClassFile(dex_class, options)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 116, in toClassFile
    pool, rest_stream = classFileAfterPool(cls, opts=opts)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 78, in classFileAfterPool
    cls.parseData()
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 218, in parseData
    self.data = ClassData(self.dex, self.data_off)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 178, in __init__
    self._parse(dex, dex.stream(offset))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 198, in _parse
    methods.append(Method(dex, method_idx, stream.uleb128(), stream.uleb128()))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 170, in __init__
    self.code = CodeItem(dex, code_off) if code_off else None
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 162, in __init__
    self.bytecode = parseBytecode(dex, insns_start_pos, insns, catch_addrs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\dalvik.py", line 202, in parseBytecode
    assert 0 not in catch_addrs
           ^^^^^^^^^^^^^^^^^^^^
AssertionError

okio/AsyncTimeout$Watchdog.class Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\main.py", line 42, in translate
    class_data = writeclass.toClassFile(dex_class, options)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 116, in toClassFile
    pool, rest_stream = classFileAfterPool(cls, opts=opts)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\jvm\writeclass.py", line 78, in classFileAfterPool
    cls.parseData()
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 218, in parseData
    self.data = ClassData(self.dex, self.data_off)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 178, in __init__
    self._parse(dex, dex.stream(offset))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 198, in _parse
    methods.append(Method(dex, method_idx, stream.uleb128(), stream.uleb128()))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 170, in __init__
    self.code = CodeItem(dex, code_off) if code_off else None
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\parsedex.py", line 162, in __init__
    self.bytecode = parseBytecode(dex, insns_start_pos, insns, catch_addrs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\enjarify\dalvik.py", line 202, in parseBytecode
    assert 0 not in catch_addrs
           ^^^^^^^^^^^^^^^^^^^^
AssertionError

56326 classes translated successfully, 4 classes had errors
Successfully enjarified launcher.apk to launcher.jar
Running fernflower on launcher.jar

Output written to secrets_output.json
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Scripts\apkscan.exe\__main__.py", line 7, in <module>
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\main.py", line 122, in main
    apk_scanner.decompile_and_scan(args.files)
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\apkscan.py", line 171, in decompile_and_scan
    for secret_result in self.scan_secret_results_generator(decompiled_files):
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\apkscan.py", line 148, in scan_secret_results_generator
    for file_path, file_secret_results in self.secret_scanner.scan_concurrently(file_paths):
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\secret_scanner.py", line 242, in scan_concurrently
    yield from self.concurrent_executor.map(self.scan_file, file_paths)
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\concurrent_executor.py", line 111, in map
    self.executor = yield from execute_concurrently(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\concurrent_executor.py", line 76, in execute_concurrently
    yield from map(Future.result, as_completed(futures_generator, timeout=timeout))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\concurrent\futures\_base.py", line 220, in as_completed
    fs = set(fs)
         ^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\concurrent_executor.py", line 20, in submit_and_yield_futures
    for args in zip(*iterables):
                ^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\apkscan.py", line 114, in decompiled_files_generator
    for file_path, output_dir, decompiled_files, success in self.decompiler.decompile_concurrently(file_paths):
                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\decompiler.py", line 283, in decompile_concurrently
    yield from self.concurrent_executor.map(self.decompile, self.binary_name_file_path_generator(file_paths))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\concurrent_executor.py", line 111, in map
    self.executor = yield from execute_concurrently(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\concurrent_executor.py", line 76, in execute_concurrently
    yield from map(Future.result, as_completed(futures_generator, timeout=timeout))
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\concurrent\futures\_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\concurrent\futures\_base.py", line 401, in __get_result
    raise self._exception
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\concurrent\futures\thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\decompiler.py", line 246, in decompile
    success = self.try_run_binary(binary_name, file_path, output_dir)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\apkscan\decompiler.py", line 189, in try_run_binary
    result = run(args, **kwargs)  # type: ignore
             ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 550, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1028, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1540, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [WinError 193] %1 не является приложением Win32

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions