type
status
date
slug
summary
tags
category
icon
password
[NSSRound#3 Team]jump_by_jump
一个简单的杂数据花指令,去之
[NSSRound#3 Team]jump_by_jump_revenge
U掉过后发现是杂数据花指令,nop掉两个多余数据就行
u、p操作过后得到
直接逆向即可,满足Str1[i] = Str1[i] - 32 - Str1[(i * i + 123) % 21],此时Str1[i]就是input % 96的结果
[NSSRound#2 Able]findxenny
SMC在这里比较部分,构造12长度的input动调
点过去后按p创建函数
同理
[NSSRound#X Basic]ez_z3
UPX壳子,无法直接去掉
原来是改了标识符,直接修改为UPX即可
UPX -d 去掉
两个check和一个z3约束求解,sub_1400110E6函数可以得到cipher,先z3解出值,再模拟两个check函数进行爆破
z3:
exp:
[NSSRound#16 Basic]test your Debugger
有一个检测调试的函数
test
指令用于执行按位与(AND)操作,
若结果不为0,则进入loc_7FF65A811298
;若结果为0,则检测为没有调试,直接退出这一部分告诉了输入长度为44,通过GetNum函数,从input[i + 64]开始赋值,这里赋值又与input对比,所以其实这里赋的值就是flag
调试到比较处,rsi寄存器里存的便是flag
- 作者:Sh4d0w
- 链接:https://sh4d0w.life//article/41df2b55-c272-43d5-99c0-a80fa0b20b60
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。