exploit-apk not working on windows
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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