- 博客(5)
- 收藏
- 关注
原创 [网鼎杯 2020 青龙组]jocker+[VNCTF 2025]Fuko‘s starfish(部分)
我们可以发现它对我们写入的字符串进行了两个不同的处理,一个是wrong+omg,另一个则是encrypt+finally。这两个处理会得到两个不一样的结果,但我们发现有一个对encrypt处理的函数,加上上面让encrypt属性改变的函数,猜测是一个SMC,那么第二个结果才是正确的结果。解密后下断点先输入24个字符让程序运行到我们的断点处把函数解密 (第一次做的时候下断点调试半天没啥反应,后来反应到我都没输入字符串让程序进行到断点处)。还是一样转换为代码,再U,P。先看第一个函数。
2025-11-25 22:39:23
752
原创 一道反调试题目—[NSSRound#4 SWPU]hide_and_seek
https://www.nssctf.cn/problem/2473 题目链接程序读取环境变量名为 的值(),同时把 (程序自身路径/名字)取出来,比较两者。如果相等就跳转;不相等则 关于getenv()的详细介绍它就是读取环境变量 的值。环境变量 是由 Shell 自动维护 的一个特殊变量,含义是:例如:再次执行:所以:➤ = 返回上一条命令执行的可执行文件的路径。因为:上一条命令就是它自己,因此:即: → 程序本身路径 → 上一条命令(也是程序本身)两者相等 → 正常。上一条命令是 ,所以:→
2025-11-21 23:47:16
316
原创 RE混淆之自修改代码
这里我们想要用户输入一个数字,如果为12345则输出good,这里关键的函数是check函数,我们不想要别人那么容易反编译清楚它的逻辑,我们可以对check函数进行加密。一段代码在执行前对它进行修改,把代码以加密的形式保存在可执行的文件当中,然后在程序执行时对它进行解密,这样会使得我们在静态分析时看到的是加密之后的内容。于是就达到了混淆的目的,要解决也很简单,执行完解密后下断点,会得到check函数的真实字节码,再把它重新编译为函数。把该函数机器码异或3u,咱们在解密之后下断点即可。
2025-11-17 20:23:41
310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
3