Google後发现CNC 的language是"G-Code"
再Google "G-code interpreter online",发现这个网站不错用
https://ncviewer.com/
会进资料後发现flag
picoCTF{num3r1cal_c0ntr0l_68a8fe29}
先测试一下基本功能,可以做买卖,但想买flag会说钱不够
再测试个几次,发现买负个商品,前会变多,於是可以买flag
转换後看到flag
先看func
func:
sub sp, sp, #32 #sp=sp+32
str w0, [sp, 12] #*(sp+12)=w0=user input
mov w0, 58 #w0=58
str w0, [sp, 16] #*(sp+16)=58
mov w0, 2 #w0=2
str w0, [sp, 20] #*(sp+20)=2
mov w0, 3 #w0=3
str w0, [sp, 24] #*(sp+24)=3
ldr w0, [sp, 20] #w0=*(sp+20)=2
ldr w1, [sp, 16] #w1=*(sp+16)=58
lsl w0, w1, w0 #w0=w1<<w0,w0=58*2**2
str w0, [sp, 28] #*(sp+28)=w0=58*(2**2)
ldr w1, [sp, 28] #w1=*(sp+28)=58*(2**2)
ldr w0, [sp, 24] #w0=*(sp+24)=3
sdiv w0, w1, w0 #w0=w1/w0=58*(2**2)/3
str w0, [sp, 28] #*(sp+28)=w0=58*(2**2)/3=77
ldr w1, [sp, 28] #w1=*(sp+28)=58*(2**2)/3
ldr w0, [sp, 12] #w0=*(sp+12)=w0(user)
sub w0, w1, w0 #w0=w1-w0=58*(2**2)/3-w0(user)
str w0, [sp, 28] #*(sp+28)=w0=58*(2**2)/3-w0(user)
ldr w0, [sp, 28] #w0=*(sp+28)=58*(2**2)/3-w0(user)
add sp, sp, 32 #sp=sp+32
ret #return
.size func, .-func
可以整理成
stack + 12 = user input
stack + 16 = 58
stack + 20 = 2
stack + 24 = 3
stack + 28 = 77
在看主程序,请看注解
.LC0:
.string "You win!"
.align 3
.LC1:
.string "You Lose :("
.text
.align 2
.global main
.type main, %function
main:
stp x29, x30, [sp, -48]!
add x29, sp, 0 #x29=sp+0
str w0, [x29, 28] #*(x29+28)=w0
str x1, [x29, 16] #*(x29+16)=w1
ldr x0, [x29, 16] #x0=*(x29+16)=w1
add x0, x0, 8 #x0=x0+8
ldr x0, [x0] #x0=*(x0)
bl atoi
str w0, [x29, 44] #*(x29+44)=w0
ldr w0, [x29, 44] #w0=*(x29+44)
bl func
cmp w0, 0
bne .L4 #w0 != 0跳到.L4就会跳到.LC1=>lose
adrp x0, .LC0 #希望跳到.LC0(win)=>w0 = 0
add x0, x0, :lo12:.LC0
bl puts
b .L6
.L4:
adrp x0, .LC1
add x0, x0, :lo12:.LC1
bl puts
重点是w0 = 0而看回func最後58*(22)/3-w0(user)希望为0,那w0须为58*(22)/3=77转成16进位==>(4d),并照题目说的格式补0==>picoCTF{0000004d}
Ta-Lib是非常好用的技术指标模组,提供高达100多种的技术指标,常见的技术指标几乎都可以在这里找...
前言 补充上一篇的DEMO,包含RSC的其他应用与测试的撰写,测试是透过之前介绍过Reactor提供...
698. Partition to K Equal Sum Subsets https://leet...
ID选择器(ID selector) : 符合指定id的HTML元素做为要套用样式规则的对象,命名格...
接下来的几篇,我们来看看网路中的协议到底规范了哪些东西,为什麽要有这些规则?又有何优缺点? 首先来看...