Compare commits

...

3 Commits

Author SHA1 Message Date
hasslesstech 9f8f207e4b lab2: add livepatching of image in RAM 2025-02-09 20:13:38 +02:00
hasslesstech d7a311c06e lab2: add formula v2 calculation 2025-02-09 19:41:52 +02:00
hasslesstech c1f9c00fc6 lab2: add WFI instruction to freeze VM 2025-02-09 15:59:54 +02:00
2 changed files with 53 additions and 3 deletions
+33 -2
View File
@@ -8,16 +8,48 @@
bkpt 0xAB
.endm
#define A 0x0321
#define B 0x7005
#define C 0x0050
.section .text
lab1_v2:
push.n {lr}
mov r0, #2073
bl calculate_formula_v2
bl int_to_str
pop.n {pc}
calculate_formula_v2:
ldr r0, =A
ldr r1, =B
ldr r2, =C
cmp r0, r1
bgt gret
blt less
same: @ default
add r2, r0, r2, lsr #3
add r0, r2, r1
b finish
gret:
rsb r0, r0, #192
sub r0, r0, r1
add r0, r2, r0, lsl #2
b finish
less:
orr r1, r1, r2
mul r0, r0, r1
finish:
mov r10, r0
mov pc, lr
int_to_str:
mov r3, sp
@@ -45,7 +77,6 @@ int_to_str:
cmp r0, #0
bne proceed_with_conversion
finish:
BKPT_WRITE r3
mov pc, lr
+20 -1
View File
@@ -19,9 +19,9 @@ __hard_reset__:
bl bootload_v2
readloop:
ldr.n r0, [r7, #8]
wfi
b.n readloop
load_systick_timer:
@@ -53,6 +53,25 @@ bootload_v2:
ldr.n r3, =__ram_start
add r3, r3, #1
push {r3}
blx r3
pop {r3}
@ patch A
ldr r0, =0x707ff64d @ 0xDF7F
str r0, [r3, #0xb]
push {r3}
blx r3
pop {r3}
@ patch A and B
ldr r0, =0x000af240 @ 0x000A
str r0, [r3, #0xb]
ldr r0, =0x010af240 @ 0x000A
str r0, [r3, #0xf]
blx r3
pop {pc}