资安学习路上-picoCTF 解题(Reverse)1

Reverse

1.Transformation:考unicode


载下来的档案,看起来编码错误

用unicode线上编辑器转成16进制

再丢进来从16进制转到ASCII

2.ARMssembly 0

IDA pro

搜寻IDA pro後载想要安装版本,这边用linux

chmod +x idafree77_linux.run  #要先修改权限,再执行
sudo ./idafree77_linux.run
sudo ln -s /opt/idafree-7.7/ida64 /usr/bin #建立实体连结
ida64 #执行

结果发现档案格式不对,只能硬干惹

PE是微软的一种执行档的资料形式 不是副档名
直接看fun1後知道是比大小,输出较大的数

再把比较大的数变成16进位得到flag

ARM

暂存器

SP, the Stack Pointer,R13:用来当作active stack的指标
LR, the Link Register,R14:用来当存子程序的return address

运算

add:加,如:add r1, r2 ==>r1 = r1 + r2
add r1, r2, #1 ==>r1 = r2 + 1
sub:减,如:sub r1, r2 ==>r1 = r1 - r2
sub r1, r2, #1 ==>r1 = r2 - 1

CMP:比较,比较方式也是同sub,用减的来比较,但不影响减数及被减数。
LDR(load (to) Register):从记忆体位址载入资料到单一暂存器,
如:LDR R1, [R0] #R1 = *R0,从位址 R0 载入到 R1暂存器
LDR R0, [R1], #8 // R0 = *R1 then R1 = R1 + 8
STR(store (from) Register):从单一暂存器的值存回记忆体,
如:STR R1, [R0] # *R0 = R1, 把 R1 暂存器写到位址 R0
STR R0, [R1], #-8 // *R1 = R0 then R1 = R1 - 8

bls:Branch if Lower or the Same,当小於等於时,跳转(jump)
b :b addr L ==> pc = addr无条件跳转。

3.keygenme-py

看一下程序码,很明显这有flag,但有缺

循着 "key_full_template_trial"搜寻,看到这段很可疑,一看就知道是上面的XXXX

跑一下程序後就找到flag的一部分,加上原本的就解完啦


<<:  虾皮串接实作笔记-串接 API 虾皮订单

>>:  申请 WhatsApp Business API的详细教学

Google Apps Script 语言

Google Apps Script 语言 https://wolkesau.medium.com/...

[Tableau Public] day 1:想成功就从意志力开始吧~

某天在FB上滑着滑着,看到了iT邦帮忙的铁人赛活动,觉得…!我想要挑战以前未成功的遗憾,甚麽遗憾呢…...

人脸辨识-day29

在模型训练完成後,最终需要可以即时在侦测到人脸後辨识出来,可先设定当摄影机开启後的画面长宽与一些影像...

Day18 将电脑接上印表机,将程序码或文章包装成书吧

今天来玩玩新的 CC: Tweaked 方块:Printer 跟 Disk Drive 一样,放置在...

Day_26: 让 Vite 来开启你的Vue之 跌入深坑_ 我该用 reactive 还是 ref

Hi Dai Gei Ho~ 我是 Winnie ~ 在接下来最後三篇文章中,我们将要进入 Vue跌...