Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
347 commits
Select commit Hold shift + click to select a range
c9ae1b7
Remove setup_remap
cla7aye15I4nd Apr 7, 2022
163b28c
Add MemoryRemap peripheral
cla7aye15I4nd Apr 7, 2022
b81ddb5
Fix remap in Arduino Due
cla7aye15I4nd Apr 7, 2022
27764ce
Fix bitband in Arduino Due
cla7aye15I4nd Apr 7, 2022
3ef6eae
Merge branch 'dev' into next
cla7aye15I4nd Apr 7, 2022
737dd08
Add bitband region for MK64F12
cla7aye15I4nd Apr 7, 2022
46eddfb
Fix some logic, but it may be wrong
cla7aye15I4nd Apr 7, 2022
2180b63
Add BME Entry
cla7aye15I4nd Apr 7, 2022
8715a9e
Add kinetis BME mach
cla7aye15I4nd Apr 7, 2022
8ad0eea
Fix MK64F12 GPIO keyword arguments
cla7aye15I4nd Apr 8, 2022
8dabd60
Add MK64F12 ADC Logic
cla7aye15I4nd Apr 8, 2022
749a422
Add MK64F12 GPIO
cla7aye15I4nd Apr 8, 2022
1170283
Add MK64F12 System Controller
cla7aye15I4nd Apr 8, 2022
280322a
Add MK64F12 Real Time Clock
cla7aye15I4nd Apr 8, 2022
15bee55
Add MK64F12 GPIO setting
cla7aye15I4nd Apr 8, 2022
8e57fa4
Fix MK64F12 Port Structure
cla7aye15I4nd Apr 8, 2022
8fd72da
Add toggle mach in gpio
cla7aye15I4nd Apr 8, 2022
914fb42
Fix typo of PORT
cla7aye15I4nd Apr 8, 2022
cbc23e7
Connect gpio and port
cla7aye15I4nd Apr 8, 2022
f13567a
Add MK64F12 port const
cla7aye15I4nd Apr 8, 2022
a481d4f
Add "push button" interrupt
cla7aye15I4nd Apr 8, 2022
707d125
Add Transmiter and Receiver into spi
cla7aye15I4nd Apr 8, 2022
75431d0
Fix data register field size
cla7aye15I4nd Apr 8, 2022
f1b875d
Add MK64F12 UART Interrupt
cla7aye15I4nd Apr 8, 2022
45f40aa
Fix a UART receive bug
cla7aye15I4nd Apr 9, 2022
ead99f6
Add STM32F1 ADC logic
cla7aye15I4nd Apr 9, 2022
abf25b2
Simplify stm32 timer interrupts
cla7aye15I4nd Apr 9, 2022
1e6aa4e
Fix stm32f4 timer arguments config
cla7aye15I4nd Apr 9, 2022
20bedee
Fix timer interrupt handler
cla7aye15I4nd Apr 9, 2022
ad23467
Fix spi receiver
cla7aye15I4nd Apr 9, 2022
8b9ec29
Add stm32f4xxDac
cla7aye15I4nd Apr 10, 2022
812ede9
Fix GPIO input mach
cla7aye15I4nd Apr 10, 2022
191b308
Merge branch 'dev' into next
cla7aye15I4nd Apr 10, 2022
8b504ac
Fix systick interrupt bug
cla7aye15I4nd Apr 11, 2022
72ea050
Simplify USART Logic
cla7aye15I4nd Apr 11, 2022
2afe98d
Delete a wrong testcase (The firmware is wrong)
cla7aye15I4nd Apr 11, 2022
88492e6
Fix UART setting
cla7aye15I4nd Apr 13, 2022
f756294
Fix pwr setup logic
cla7aye15I4nd Apr 13, 2022
4aa6bde
Add MK64F12 SPI
cla7aye15I4nd Apr 13, 2022
fd1e92a
Fix spi recv logic
cla7aye15I4nd Apr 13, 2022
28e6dcf
Add mk64f12 timer
cla7aye15I4nd Apr 13, 2022
e9d3a6a
Add MK64F12 FlexTimer
cla7aye15I4nd Apr 13, 2022
8446882
Add SDIO logic
cla7aye15I4nd Apr 14, 2022
77c4e1a
Delete read in sd
cla7aye15I4nd Apr 16, 2022
efbb78b
Update rootfs
cla7aye15I4nd Apr 16, 2022
225175c
Merge branch 'dev' into next
cla7aye15I4nd Apr 19, 2022
08c01c0
Merge branch 'dev' into next
cla7aye15I4nd Apr 20, 2022
461ac52
Optimize the peripherial step method
cla7aye15I4nd Apr 20, 2022
7a84f10
Simplify interrupt handler
cla7aye15I4nd Apr 20, 2022
96b960c
Delete debug print
cla7aye15I4nd Apr 20, 2022
1807f29
Modify hw.attr api
cla7aye15I4nd Apr 20, 2022
64ab6e5
Add stepable check
cla7aye15I4nd Apr 20, 2022
0fba67d
Add grain size control
cla7aye15I4nd Apr 20, 2022
f8f13aa
Use ql_afl_fuzz_ext
wtdcode Mar 6, 2022
b704442
Rename to _custom
wtdcode Mar 6, 2022
f232dee
Add ql_afl_fuzz_custom in __init__
cla7aye15I4nd Apr 21, 2022
72111d0
Use multitask unicorn for mcu
wtdcode Mar 4, 2022
bad0beb
Fix task restore
wtdcode Mar 5, 2022
fca8b35
Use a more proper interval
wtdcode Mar 5, 2022
c257215
Remove the dumb hook
wtdcode Mar 5, 2022
ad99e5a
Change how MultitaskUnicorn works
wtdcode Mar 5, 2022
dac7a38
Update comments
wtdcode Mar 5, 2022
6d92836
Support count and timeout primitive
wtdcode Mar 5, 2022
a0ba219
Fix task stop
wtdcode Mar 5, 2022
d7ffc67
No need to |1 for the *end* of thumb mode
wtdcode Mar 6, 2022
b45b058
Mimic unicorn interface better
wtdcode Mar 6, 2022
e5dd9c1
Add save/store for connectivity peripheral
cla7aye15I4nd Apr 21, 2022
6adf089
Update rootfs
cla7aye15I4nd Apr 21, 2022
ee02d7c
Add hackme testcase
cla7aye15I4nd Apr 21, 2022
e1973bf
A very slow fuzzer
cla7aye15I4nd Apr 21, 2022
df1046d
Add fast_mode in QlOsMcu
cla7aye15I4nd Apr 21, 2022
797ca44
Change log level for missing peripheral
cla7aye15I4nd Apr 21, 2022
1a838bd
Delete unicorn task in arch
cla7aye15I4nd Apr 21, 2022
abf2ad3
Add fast mode in MCU
cla7aye15I4nd Apr 21, 2022
cb9e58f
Update fuzz script
cla7aye15I4nd Apr 21, 2022
ed0e70d
Update rootfs
cla7aye15I4nd Apr 22, 2022
8b05c8c
Faster UART ?
cla7aye15I4nd Apr 22, 2022
b6a697d
Merge 'dev' into next
cla7aye15I4nd Jun 17, 2022
d9af57d
Merge branch 'dev' into next
cla7aye15I4nd Jun 17, 2022
e2ec801
Fix the MCU fuzzer
cla7aye15I4nd Jun 17, 2022
5b5540e
Merge branch 'dev' into next
cla7aye15I4nd Jun 30, 2022
c3a4191
Change log level
cla7aye15I4nd Jun 30, 2022
7547918
Tune counter method
cla7aye15I4nd Jul 1, 2022
d697f5d
Fix a typo
cla7aye15I4nd Aug 12, 2022
1c50ba3
Adds qltui for qltool
Rohan-cod Aug 21, 2022
0772dde
Merge branch 'qilingframework:master' into next
cla7aye15I4nd Aug 24, 2022
357815d
Merge remote-tracking branch 'origin/dev' into next
cla7aye15I4nd Aug 24, 2022
5dad11a
Fix return type missing
cla7aye15I4nd Aug 24, 2022
01bb2f2
Merge branch 'qilingframework:dev' into dev
Rohan-cod Sep 3, 2022
58e06d8
Adds hook and report functionality to qltui
Rohan-cod Sep 11, 2022
011a3c1
Merge branch 'qilingframework:dev' into dev
Rohan-cod Sep 17, 2022
e456675
Updates callback function names
Rohan-cod Sep 17, 2022
9366a7d
Adds syscalls to report
Rohan-cod Sep 17, 2022
6a1ff9f
Update setup.py
xwings Sep 24, 2022
b35cb90
Addressed Comments
Rohan-cod Sep 24, 2022
39a1132
Merge pull request #1101 from cla7aye15I4nd/next
xwings Sep 24, 2022
22238de
Update address to hex in syscalls
Rohan-cod Sep 24, 2022
62d89c7
Update README.md
xwings Sep 25, 2022
473507a
add pstate in const_arm64
richor1042 Sep 29, 2022
61ef425
Minor refactoring and type annotations for qiling
Rohan-cod Oct 1, 2022
1e9393f
fixed second conditional in transform_syscalls
Rohan-cod Oct 1, 2022
fd70c2e
Implement ql_syscall_sched_yield
vhertz Oct 1, 2022
734e1ab
Relocate catch_KeyboardInterrupt and rename to hookcallback
elicn Sep 19, 2022
24b7373
Revisit propagation of emulation exceptions
elicn Sep 19, 2022
7cbe2b5
Make r2 extention tests depended on libr
elicn Sep 19, 2022
135560a
Minor linter-friendly tweaks
elicn Sep 28, 2022
9a9d592
Delay QlHost creation
elicn Sep 28, 2022
f498b6a
Make path and targetname properties dynamic
elicn Sep 28, 2022
207fd94
Redefine QlDebugger
elicn Sep 28, 2022
2bd8003
Better corner case handling for GetProcAddress
elicn Sep 28, 2022
6b9a418
Add hardware debug registers to x86 arch
elicn Oct 2, 2022
fa8a840
Improve core attributes documentation
elicn Oct 4, 2022
11e6370
Remove an obsolete DOS profile setting
elicn Oct 4, 2022
ebf6222
Merge pull request #1237 from vhertz/sched_yield
xwings Oct 6, 2022
be62dbc
Merge pull request #1236 from richor1042/patch-1
xwings Oct 6, 2022
4ead520
Add ARM Qx and Sx registers
elicn Oct 6, 2022
8c6c913
Update setup.py
Rohan-cod Oct 6, 2022
b204cad
Update CI
Rohan-cod Oct 6, 2022
0ea5fc4
Minor PEP8 and linter-friendly tweaks
elicn Oct 6, 2022
dc98a75
Update qltui.py
Rohan-cod Oct 6, 2022
d83fd59
Fix: speed up MCU interrupt handler
Oct 7, 2022
22c2ac6
Merge pull request #1240 from kabeor/mcu_ci_fix
xwings Oct 7, 2022
e5cb658
Merge pull request #1230 from Rohan-cod/dev
kabeor Oct 9, 2022
a58ff53
Merge pull request #1238 from elicn/misc-improv
xwings Oct 10, 2022
b8e12ef
sync rootfs
xwings Oct 13, 2022
fadedf4
minor update for setup.py, mcu test and windows registry
xwings Oct 14, 2022
e912a7f
Merge pull request #1246 from xwings/dev
xwings Oct 14, 2022
61f62dd
optimize qltui
Oct 14, 2022
5bcea62
issue fix
Oct 14, 2022
2e18eda
Merge branch 'qilingframework:master' into tui
kabeor Oct 14, 2022
bfb1c6a
fix ci
Oct 14, 2022
685b7fd
Merge branch 'tui' of https://github.com/kabeor/qiling into tui
Oct 14, 2022
d686f3f
deprecate ubuntu-18.04 for ci
Oct 14, 2022
c4935f4
update build docker ubuntu-20.04 for ci
Oct 14, 2022
4233cc8
update build docker ubuntu-20.04 for ci
Oct 14, 2022
8b2b862
update build docker for ci
Oct 14, 2022
0852c94
update build docker for ci
Oct 14, 2022
46f7bd7
update build docker for ci
Oct 14, 2022
0d50059
update docker ci
Oct 14, 2022
67bf9ac
Merge pull request #5 from kabeor/docker_ci
kabeor Oct 14, 2022
c4dffba
Merge pull request #1247 from kabeor/tui
xwings Oct 14, 2022
7a83287
optimize evm dependency package version manage
Oct 15, 2022
23c6f2d
Merge pull request #1248 from kabeor/evm_fix
xwings Oct 15, 2022
275063b
fix getrlimit related syscall (aka tenda fix)
xwings Oct 15, 2022
d3f03f8
Merge branch 'qilingframework:dev' into dev
xwings Oct 15, 2022
e200a62
Merge pull request #1249 from xwings/dev
xwings Oct 15, 2022
b0c7889
add tenda into CI test
xwings Oct 15, 2022
2cee989
Merge branch 'dev' of github.com:xwings/qiling into dev
xwings Oct 15, 2022
6cbda51
Merge branch 'qilingframework:dev' into dev
xwings Oct 15, 2022
6597694
Merge pull request #1250 from xwings/dev
xwings Oct 15, 2022
b52f164
more detailed tenda CI test and cleanup elf multithrad http test
xwings Oct 16, 2022
4622761
Merge branch 'dev' of github.com:xwings/qiling into dev
xwings Oct 16, 2022
a77ab70
Merge branch 'qilingframework:dev' into dev
xwings Oct 16, 2022
d440bde
Merge pull request #1251 from xwings/dev
xwings Oct 16, 2022
26b4d32
Update test_mcu.py
xwings Oct 16, 2022
c717c87
fix MIPS relocs
Oct 16, 2022
4c87a3e
fix missing `ql.os.set_api` in hello_mips32_linux_customapi.py
ucgJhe Oct 17, 2022
8d7ee1d
Merge pull request #1252 from ucgJhe/dev
xwings Oct 17, 2022
faeeaf1
recompile armeb picohttpd with new test script
xwings Oct 18, 2022
2cabae4
fix armeb picohttpd
xwings Oct 18, 2022
0fe3c04
fix armeb test path
xwings Oct 18, 2022
0492715
fix armeb test path and test libc
xwings Oct 18, 2022
e0ca0fd
update workflow docker
xwings Oct 18, 2022
be59d5b
update armeb gdbtest path
xwings Oct 18, 2022
c0024da
Merge pull request #1254 from xwings/dev
xwings Oct 18, 2022
4789fc2
update to latest armeb binary with latest libc, skip test for test_mu…
xwings Oct 19, 2022
ec13d0e
try to move docker to 2204
xwings Oct 19, 2022
8173e15
Merge pull request #1255 from xwings/dev
xwings Oct 19, 2022
a2de536
update rootfs
xwings Oct 19, 2022
3e18c09
Merge pull request #1256 from xwings/dev
xwings Oct 19, 2022
6eb5b6b
handle x/s case in qdb
ucgJhe Oct 20, 2022
a261e4a
remove redundant print and prefix R when dumping stack
ucgJhe Oct 20, 2022
5e30ea4
handle delay slot properly both in command step_in and step_over
ucgJhe Oct 20, 2022
c8612f0
display map info in command show
ucgJhe Oct 20, 2022
3de3065
Merge pull request #1257 from ucgJhe/dev
xwings Oct 21, 2022
38866e9
Improve handling of 42000 magic pid
elicn Oct 22, 2022
13a0aad
Replace QlFsMappedCallable with functools.partial
elicn Oct 22, 2022
4a08073
Improve gdb features advertisement
elicn Oct 22, 2022
d4807f5
Opportunistic PEP8 and linter-friendly tweaks
elicn Oct 22, 2022
54113d8
fix mcu issue in qdb and show flags with color BLUE in uppercase, oth…
Oct 25, 2022
09a99e7
Update setup.py
aquynh Nov 2, 2022
8c03d03
Merge pull request #1267 from qilingframework/unicorn-upgrade
xwings Nov 4, 2022
0068ec3
update blackhat 2022
xwings Nov 9, 2022
95a1651
Identify CortexM as a specific arch
elicn Nov 10, 2022
9cd4fb3
Opportunistic PEP8 and linter-friendly tweaks
elicn Nov 10, 2022
aa69cd1
Merge pull request #1271 from elicn/fix-cortex_m
xwings Nov 11, 2022
9f27c67
Merge remote-tracking branch 'qiling.io/dev' into dev
ucgJhe Nov 11, 2022
14121da
Add flag mapping for cmd F_SETFL of syscall fcntl
owl129 Nov 17, 2022
92ca000
Add level IPPROTO_TCP support for syscall getsockopt
owl129 Nov 17, 2022
3b97c05
Fix exit due to unexpected params for syscall getsockopt
owl129 Nov 17, 2022
cf2a960
Implements poll syscall
owl129 Nov 17, 2022
34dbadc
Add exception handling for poll syscall
owl129 Nov 18, 2022
1838929
Add support for big-endian BaseStruct and allow selection
elicn Nov 20, 2022
fdecf17
Adjust existing Windows structures
elicn Nov 20, 2022
a55dc79
Revisit const mapping
elicn Nov 20, 2022
b76b54c
Revisit socketcall syscall and support more functions
elicn Nov 20, 2022
6cedcfa
Refactor POSIX socket syscalls
elicn Nov 20, 2022
1516f52
Fix munmap bugs
elicn Nov 20, 2022
4180070
Opportunistic code cleanup and PEP8-friendly tweaks
elicn Nov 20, 2022
c9447f9
Remove forgotten debuggin residuals
elicn Nov 20, 2022
6b2cdf4
Improve AF_UNIX sockets support
elicn Nov 21, 2022
511f6c2
Merge pull request #1274 from elicn/dev-maintain
xwings Nov 23, 2022
acae1f3
Merge branch 'dev' into dev
owl129 Nov 23, 2022
b904618
adjust mapping params
owl129 Nov 23, 2022
c3a843c
Implement syscall socketpair
owl129 Nov 23, 2022
e12ec86
Remove unused params in mapping
owl129 Nov 24, 2022
a02355c
Using BaseStruct.ref to operation memory.
owl129 Nov 24, 2022
3ce6eb8
Move pollfd struct definition
owl129 Nov 24, 2022
12ca5c1
fix mcu issue in qdb and show flags with color BLUE in uppercase, oth…
Oct 25, 2022
fe8e006
fix MCU stepping
Nov 12, 2022
8585558
revert addition of cpsr for cortex_m
ucgJhe Nov 28, 2022
6b4f5c8
Merge pull request #1272 from owl129/dev
xwings Dec 2, 2022
d1b6b80
Use aligned entry point address on thumb mode
elicn Dec 6, 2022
d13d914
Support breakpoints with size
elicn Dec 7, 2022
3be66aa
Handle thumb on resume from breakpoint
elicn Dec 7, 2022
75d5d58
Final touches
elicn Dec 7, 2022
f714c8f
Merge pull request #1285 from elicn/fix-gdb-thumb
xwings Dec 9, 2022
bf39f1b
Merge remote-tracking branch 'qiling.io/dev' into dev
ucgJhe Dec 9, 2022
30612cd
Qdb: add command show_args
ucgJhe Dec 9, 2022
1ee277a
fix show_args, now it shows register value correctly
ucgJhe Dec 9, 2022
d9a92e4
remove cpsr for cortex_m
ucgJhe Dec 9, 2022
7fc02da
fix counts for show_args
ucgJhe Dec 9, 2022
05093ad
Create __init__.py
xwings Dec 18, 2022
f6110ac
Consolidate socket attributes conversions
elicn Dec 13, 2022
308350f
Add socketpair to socketcall
elicn Dec 13, 2022
b7e2111
Properly use profile getint
elicn Dec 13, 2022
1640831
Fix mishandled corner cases in find_free_space
elicn Dec 15, 2022
85e4ccc
Reimplement POSIX mmap
elicn Dec 15, 2022
0577db1
Use bisect to manage memory map info
elicn Dec 18, 2022
cf31162
Improve performance for fixed mappings
elicn Dec 18, 2022
1fd69ac
Reimplement POSIX munmap
elicn Dec 18, 2022
0ccef75
Adjust Android test to new mmap / munmap
elicn Dec 18, 2022
3339968
Fix unmap_between
elicn Dec 18, 2022
8575216
Fix memory restore
elicn Dec 18, 2022
94ee915
Fix POSIX brk
elicn Dec 18, 2022
2c61534
Rearrange POSIX uid and gid accessors
elicn Dec 18, 2022
61260a3
Opportunistic PEP8-friendly tweaks
elicn Dec 18, 2022
430bd9b
A temporary work around for scheduling bug manifested in mips32el_mul…
elicn Dec 18, 2022
f3680ba
Reformat shellcode_run example
elicn Dec 19, 2022
e90758c
Disable broken shellcodes
elicn Dec 19, 2022
946bb0b
Add FreeBSD mmap flags
elicn Dec 19, 2022
1a731a8
Add a name attribute to procfs streams
elicn Dec 19, 2022
06d5316
Merge remote-tracking branch 'qiling.io/dev' into dev
ucgJhe Dec 20, 2022
6e9d4be
Merge pull request #1293 from elicn/dev-maintain
xwings Dec 20, 2022
abc3bf2
Merge pull request #1289 from ucgJhe/qdb
kabeor Dec 20, 2022
5f2f105
fix #1228
ucgJhe Dec 20, 2022
6cc7173
Merge pull request #1295 from ucgJhe/qdb_with_pe
xwings Dec 21, 2022
749559f
Update changelog to version 1.4.5
kabeor Dec 29, 2022
7463363
Merge pull request #1298 from kabeor/changelog-1.4.5
xwings Dec 31, 2022
2a34d54
ready for 1.4.5
xwings Dec 31, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions .github/workflows/build-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,18 @@ jobs:
fail-fast: false
matrix:
#os: [windows-2019, macos-10.15, ubuntu-18.04, ubuntu-20.04]
os: [windows-latest, ubuntu-18.04, ubuntu-20.04]
python-version: [3.8, 3.9]
exclude:
- os: ubuntu-18.04
python-version: 3.9
os: [windows-latest, ubuntu-20.04]
python-version: [3.8, 3.9]
include:
- os: ubuntu-18.04
- os: ubuntu-22.04
python-version: 3.9
container: Docker

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

Expand Down
44 changes: 43 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,48 @@
This file details the changelog of Qiling Framework.

------------------------------------
[Version 1.4.5]: December 29th, 2022

New features:
- Qdb with PE (#1295)

Improvements:
- Add pstate in const_arm64.py (#1236)
- Implement ql_syscall_sched_yield (#1237)
- Periodic quality PR (#1238)
- Speed up MCU interrupt handler (#1240)
- Minor update for setup.py, mcu test and windows registry (#1246)
- Optimize qltui (#1247)
- Optimize evm dependency package version manage (#1248)
- Fix getrlimit related syscall (aka tenda fix) (#1249)
- Add new ci for arm firmware (#1250)
- More detailed tenda CI test and cleanup elf multithrad http test (#1251)
- Fix MIPS relocs (#1252)
- Newly compiled picohttpd for armeb and new test script (#1254)
- Update armeb test binary and testing docker (#1255)
- Update rootfs (#1256)
- Qdb bug fix and improvement (#1257)
- Improve handling of gdb 42000 magic pid (#1259)
- Fix mcu issue in qdb and show flags in uppercase (#1263)
- Update setup.py (#1267)
- Handle Cortex M as a specific arch (#1271)
- Fix some error in syscall fcntl and getsockopt (#1272)
- Periodic maintenance PR (#1274)
- Fix gdb attach on ARM thumb mode (#1285)
- Qdb: add command show_args (#1289)
- Periodic maintenance PR (#1293)

Contributors:
- richor1042
- vhertz
- elicn
- kabeor
- xwings
- ucgJhe
- aquynh
- owl129
-

------------------------------------
[Version 1.4.4]: September 24th, 2022

Expand Down Expand Up @@ -87,7 +130,6 @@ Contributors:
- elicn
- xwings
- cq674350529
- elicn
- TheZ3ro
- bet4it
- chinggg
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ Qiling is an advanced binary emulation framework, with the following features:

Qiling also made its way to various international conferences.

2022:
- [Black Hat, EU](https://www.blackhat.com/eu-22/arsenal/schedule/#reversing-mcu-with-firmware-emulation-29553)
- [Black Hat, MEA](https://blackhatmea.com/node/724)

2021:
- [Black Hat, USA](https://www.blackhat.com/us-21/arsenal/schedule/index.html#bringing-the-x-complete-re-experience-to-smart-contract-24119)
- [Hack In The Box, Amsterdam](https://conference.hitb.org/hitbsecconf2021ams/sessions/when-qiling-framework-meets-symbolic-execution/)
Expand Down
2 changes: 2 additions & 0 deletions examples/fuzzing/stm32f429/afl_inputs/sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
hackme
aaaaaaaaaaaa
56 changes: 56 additions & 0 deletions examples/fuzzing/stm32f429/fuzz.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/usr/bin/env python3
#
# Cross Platform and Multi Architecture Advanced Binary Emulation Framework
#

import os
import sys

from typing import Any, Optional

sys.path.append("../../..")
from qiling.core import Qiling
from qiling.const import QL_VERBOSE

from qiling.extensions.afl import ql_afl_fuzz_custom
from qiling.extensions.mcu.stm32f4 import stm32f429

from unicorn import UC_ERR_OK, UcError

def main(input_file: str):
ql = Qiling(["../../rootfs/mcu/stm32f429/bof.elf"],
archtype="cortex_m",
env=stm32f429,
ostype='mcu',
verbose=QL_VERBOSE.DISABLED)

ql.hw.create('rcc')
ql.hw.create('usart2')
ql.hw.create('usart3')

ql.fast_mode = True

def place_input_callback(ql: Qiling, input_bytes: bytes, persistent_round: int) -> Optional[bool]:
"""Called with every newly generated input."""

ql.hw.usart3.send(input_bytes)

return True

def fuzzing_callback(ql: Qiling):
ql.run(end=0x80006d9)

return UC_ERR_OK

ql.uc.ctl_exits_enabled(True)
ql.uc.ctl_set_exits([0x80006d9])

ql_afl_fuzz_custom(ql, input_file, place_input_callback, fuzzing_callback=fuzzing_callback)

os.exit(0)

if __name__ == "__main__":
if len(sys.argv) == 1:
raise ValueError("No input file provided.")

main(sys.argv[1])
2 changes: 2 additions & 0 deletions examples/fuzzing/stm32f429/fuzz.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
AFL_AUTORESUME=1 afl-fuzz -i afl_inputs -o afl_outputs -U -- python3 ./fuzz.py @@
1 change: 1 addition & 0 deletions examples/hello_mips32_linux_customapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@ def my_puts(ql: Qiling):

if __name__ == "__main__":
ql = Qiling(["rootfs/mips32_linux/bin/mips32_hello"], "rootfs/mips32_linux", verbose=QL_VERBOSE.DEBUG)
ql.os.set_api("puts", my_puts)
ql.run()
2 changes: 1 addition & 1 deletion examples/mcu/gd32vf103_blink.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from qiling.const import QL_VERBOSE
from qiling.extensions.mcu.gd32vf1 import gd32vf103

ql = Qiling(['../rootfs/mcu/gd32vf103/blink.hex'], archtype="riscv64",
ql = Qiling(['../rootfs/mcu/gd32vf103/blink.hex'], archtype="riscv64", ostype="mcu",
env=gd32vf103, verbose=QL_VERBOSE.DEBUG)

ql.hw.create('rcu')
Expand Down
3 changes: 2 additions & 1 deletion examples/mcu/stm32f407_gpio_hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@


ql = Qiling(["../rootfs/mcu/stm32f407/ai-sine-test.elf"],
archtype="cortex_m", env=stm32f407, verbose=QL_VERBOSE.DEFAULT)
archtype="cortex_m", ostype="mcu", env=stm32f407, verbose=QL_VERBOSE.DEFAULT)

ql.hw.create('rcc')
ql.hw.create('pwr')
Expand All @@ -23,6 +23,7 @@
ql.hw.create('gpiod')
ql.hw.create('spi1')
ql.hw.create('crc')
ql.hw.create('dbgmcu')

oled = PyGameSSD1306Spi(dc=(ql.hw.gpiod, 5))
ql.hw.spi1.connect(oled)
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f407_hack_lock.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def dicts():
# Cracking the passwd of lock
def crack(passwd):
ql = Qiling(["../../examples/rootfs/mcu/stm32f407/backdoorlock.hex"],
archtype="cortex_m", env=stm32f407, verbose=QL_VERBOSE.OFF)
archtype="cortex_m", ostype="mcu", env=stm32f407, verbose=QL_VERBOSE.DISABLED)

ql.hw.create('spi2')
ql.hw.create('gpioe')
Expand Down
3 changes: 2 additions & 1 deletion examples/mcu/stm32f407_mnist_oled.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@


ql = Qiling(["../rootfs/mcu/stm32f407/mnist.bin", 0x8000000],
archtype="cortex_m", env=stm32f407, verbose=QL_VERBOSE.DEFAULT)
archtype="cortex_m", ostype="mcu", env=stm32f407, verbose=QL_VERBOSE.DEFAULT)

ql.hw.create('rcc')
ql.hw.create('gpiod')
ql.hw.create('spi1')
ql.hw.create('crc')
ql.hw.create('dbgmcu')

oled = PyGameSSD1306Spi(dc=(ql.hw.gpiod, 5))
ql.hw.spi1.connect(oled)
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f411_dma_logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

def stm32f411_dma():
ql = Qiling(["../rootfs/mcu/stm32f411/dma-clock.hex"],
archtype="cortex_m", env=stm32f411, verbose=QL_VERBOSE.DEBUG)
archtype="cortex_m", ostype="mcu", env=stm32f411, verbose=QL_VERBOSE.DEBUG)

ql.hw.create('usart2').watch()
ql.hw.create('dma1').watch()
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f411_freertos.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

def stm32f411_freertos():
ql = Qiling(["../rootfs/mcu/stm32f411/os-demo.hex"],
archtype="cortex_m", env=stm32f411, verbose=QL_VERBOSE.DEBUG)
archtype="cortex_m", ostype="mcu", env=stm32f411, verbose=QL_VERBOSE.DEBUG)

ql.hw.create('usart2').watch()
ql.hw.create('gpioa').watch()
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f411_gpio_hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

def test_mcu_gpio_stm32f411():
ql = Qiling(["../../examples/rootfs/mcu/stm32f411/hello_gpioA.hex"],
archtype="cortex_m", env=stm32f411, verbose=QL_VERBOSE.DEBUG)
archtype="cortex_m", ostype="mcu", env=stm32f411, verbose=QL_VERBOSE.DEBUG)

ql.hw.create('usart2').watch()
ql.hw.create('rcc').watch()
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f411_i2c_lcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from qiling.extensions.mcu.stm32f4 import stm32f411

def create(path, lcd):
ql = Qiling([path], archtype="cortex_m", env=stm32f411, verbose=QL_VERBOSE.DEBUG)
ql = Qiling([path], archtype="cortex_m", ostype="mcu", env=stm32f411, verbose=QL_VERBOSE.DEBUG)

ql.hw.create('i2c1')
ql.hw.create('rcc')
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f411_interact_usart.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@


ql = Qiling(["../../examples/rootfs/mcu/stm32f411/md5_server.hex"],
archtype="cortex_m", env=stm32f411, verbose=QL_VERBOSE.OFF)
archtype="cortex_m", ostype="mcu", env=stm32f411, verbose=QL_VERBOSE.OFF)

ql.hw.create('usart2')
ql.hw.create('rcc')
Expand Down
2 changes: 1 addition & 1 deletion examples/mcu/stm32f411_spi_oled12864.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from qiling.hw.external_device.oled.ssd1306 import PyGameSSD1306Spi

ql = Qiling(['../rootfs/mcu/stm32f411/oled12864.hex'],
archtype="cortex_m", env=stm32f411, verbose=QL_VERBOSE.DEFAULT)
archtype="cortex_m", ostype="mcu", env=stm32f411, verbose=QL_VERBOSE.DEFAULT)

ql.hw.create('rcc')
ql.hw.create('gpioa')
Expand Down
2 changes: 1 addition & 1 deletion examples/rootfs
Submodule rootfs updated 313 files
Loading