campctf2023-chall-tis256

Zachtronics TIS100-inspired reversing challenge for CampCTF 2023
git clone https://git.sinitax.com/sinitax/campctf2023-chall-tis256
Log | Files | Refs | Submodules | README | sfeed.txt

Makefile (3392B)


      1PARTS = build/inst_jnz.asm build/inst_mov.asm build/inst_shl.asm build/inst_shr.asm \
      2	build/inst_inp.asm build/inst_out.asm build/test_in_out.asm build/gpr.asm
      3
      4TEST_MOV_SWP = build/test_mov_swp.asm build/inst_mov.asm build/inst_swp.asm build/gpr.asm
      5TEST_SHL_SHR = build/test_shl_shr.asm build/inst_shl.asm build/inst_shr.asm build/gpr.asm
      6TEST_IN_OUT = build/test_in_out.asm build/inst_inp.asm build/inst_out.asm build/gpr.asm
      7TEST_ADD_SUB = build/test_add_sub.asm build/inst_add.asm build/inst_sub.asm build/gpr.asm
      8
      9PARTS = build/inst_jnz.asm build/inst_shl.asm build/inst_shr.asm build/inst_mov.asm \
     10	build/inst_swp.asm build/inst_add.asm build/inst_sub.asm build/inst_xor.asm \
     11	build/inst_and.asm build/inst_ldb.asm build/inst_stb.asm build/inst_inp.asm \
     12	build/inst_out.asm build/inst_not.asm build/inst_jre.asm build/inst_inc.asm build/inst_dec.asm \
     13	build/cpu.asm build/rip.asm build/decoder.asm build/gpr.asm \
     14	build/memory1.asm build/memory2.asm build/memory3.asm build/memory4.asm
     15
     16all: build/full_test_mov_swp.asm build/full_test_shl_shr.asm \
     17	build/full_test_in_out.asm build/full_test_add_sub.asm build/chall.asm
     18
     19clean:
     20	rm -rf build
     21
     22build:
     23	mkdir -p $@
     24
     25build/memory1.bin build/memory2.bin build/memory3.bin build/memory4.bin: asm.py | build
     26	python3 asm.py $@
     27
     28build/gpr.bin: in/gpr.bin | build
     29	cp $< $@
     30
     31build/rip.bin: in/rip.bin | build
     32	cp $< $@
     33
     34build/rip.asm.tmpl: memory2.py build/rip.bin
     35	python3 memory2.py $@ 0 0 build/rip.bin ADDR_RIP straight
     36
     37build/gpr.asm.tmpl: memory2.py build/gpr.bin
     38	python3 memory2.py $@ 0 2 build/gpr.bin ADDR_GPR straight
     39
     40build/memory1.asm.tmpl: memory2.py build/memory1.bin
     41	python3 memory2.py $@ 0 6 build/memory1.bin ADDR_MEMORY1 right
     42
     43build/memory2.asm.tmpl: memory2.py build/memory2.bin
     44	python3 memory2.py $@ 64 6 build/memory2.bin ADDR_MEMORY2 left
     45
     46build/memory3.asm.tmpl: memory2.py build/memory3.bin
     47	python3 memory2.py $@ 128 6 build/memory3.bin ADDR_MEMORY3 right
     48
     49build/memory4.asm.tmpl: memory2.py build/memory4.bin
     50	python3 memory2.py $@ 192 6 build/memory4.bin ADDR_MEMORY4 left
     51
     52build/%.asm: in/%.asm header.def | build
     53	tmpl -e -c header.def -p '$${' $< > $@
     54
     55build/%.asm: build/%.asm.tmpl header.def | build
     56	tmpl -e -c header.def -p '$${' $< > $@
     57
     58build/full_test_mov_swp.asm: bus.py $(TEST_MOV_SWP) | build
     59	python3 bus.py $@ $(TEST_MOV_SWP)
     60
     61build/full_test_shl_shr.asm: bus.py $(TEST_SHL_SHR) | build
     62	python3 bus.py $@ $(TEST_SHL_SHR)
     63
     64build/full_test_in_out.asm: bus.py $(TEST_IN_OUT) | build
     65	python3 bus.py $@ $(TEST_IN_OUT)
     66
     67build/full_test_add_sub.asm: bus.py $(TEST_ADD_SUB) | build
     68	python3 bus.py $@ $(TEST_ADD_SUB)
     69
     70build/full.asm: bus.py $(PARTS) | build
     71	python3 bus.py $@ \
     72	build/memory1.asm \
     73	build/cpu.asm build/inst_jnz.asm build/inst_mov.asm build/inst_shl.asm \
     74	build/rip.asm build/decoder.asm \
     75	build/inst_shr.asm build/inst_add.asm build/inst_sub.asm build/inst_xor.asm \
     76	build/memory2.asm \
     77	-- \
     78	build/memory3.asm \
     79	build/inst_and.asm build/inst_ldb.asm build/inst_stb.asm build/inst_inp.asm \
     80	build/gpr.asm build/inst_inc.asm \
     81	build/inst_out.asm build/inst_not.asm build/inst_jre.asm build/inst_swp.asm \
     82	build/memory4.asm
     83
     84build/final.asm: draw.py build/full.asm misc/cat.png | build
     85	python3 draw.py build/full.asm misc/cat.png -86 -26 $@
     86
     87build/chall.asm: transform.py build/final.asm | build
     88	python3 transform.py build/final.asm build/chall.asm
     89
     90.PHONY: all clean