linkedin / linkedin/qark

exploit-apk not working on windows

Open
#384 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.4k
Forks
663
PR merge metrics
No merged PRs in 30d

Description

```
qark --apk app-debug.apk --report-type html --exploit-apk --sdk-path apkpathgoeshere
....
Finish writing report to c:\programdata\miniconda3\envs\qark\lib\site-packages\qark\report\report.html ...
Building exploit APK...
Error running command %s
Traceback (most recent call last):
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\qark\apk_builder.py", line 115, in _build_apk
subprocess.call(shlex.split(command))
File "c:\programdata\miniconda3\envs\qark\lib\subprocess.py", line 172, in call
return Popen(*popenargs, **kwargs).wait()
File "c:\programdata\miniconda3\envs\qark\lib\subprocess.py", line 394, in __init__
errread, errwrite)
File "c:\programdata\miniconda3\envs\qark\lib\subprocess.py", line 644, in _execute_child
startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application
Traceback (most recent call last):
File "c:\programdata\miniconda3\envs\qark\lib\runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "c:\programdata\miniconda3\envs\qark\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "C:\ProgramData\Miniconda3\envs\qark\Scripts\qark.exe\__main__.py", line 7, in
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\click\core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\click\decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\qark\qark.py", line 102, in cli
exploit_builder.build()
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\qark\apk_builder.py", line 76, in build
self._build_apk()
File "c:\programdata\miniconda3\envs\qark\lib\site-packages\qark\apk_builder.py", line 116, in _build_apk
subprocess.call(shlex.split(command))
File "c:\programdata\miniconda3\envs\qark\lib\subprocess.py", line 172, in call
return Popen(*popenargs, **kwargs).wait()
File "c:\programdata\miniconda3\envs\qark\lib\subprocess.py", line 394, in __init__
errread, errwrite)
File "c:\programdata\miniconda3\envs\qark\lib\subprocess.py", line 644, in _execute_child
startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application
```

Problem seems to be in this file: c:\programdata\miniconda3\envs\qark\lib\site-packages\qark\apk_builder.py

After inspecting the file, line 115 is attempting to launch ./gradlew. this obviously isnt suitable to Windows environments and would have to be changed to gradlew.bat

Suggested change in the project is to include an ```if os.name == 'nt':``` check and then make use of either ./gradlew or gradlew.bat.

Willing to create a pull request, but not sure of other impacts this may have.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in qark/apk_builder.py at the _build_apk method and inspect the command passed to subprocess.call around line 115. Verify how the Gradle wrapper is selected on Windows versus other systems, then confirm the exploit APK build uses gradlew.bat on Windows while preserving the existing non-Windows command.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
security, tooling
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.