目录

  1. 1. 前言
  2. 2. 知识点
  3. 3. 题目
  4. 4. 思路
    1. 4.1. 知识补充
      1. 4.1.1. python replace()方法
    2. 4.2. 操作
  5. 5. 总结

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

RE初探索0x02

2023/4/5 Reverse
  |     |   总文章阅读量:

前言

NSS上的[SWPUCTF 2021 新生赛]re1

知识点

C

ida初步运用

字符替换

题目

下载题目附件得到exe程序,拖入ida并f5查看

屏幕截图 2023-04-05 225053

str1为输入的参数,输入后将进入for循环中的字符替换

str2通过strcpy函数(链)把字符串{34sy_r3v3rs3}复制给自己

最后通过strcmp函数(链)检测str1与str2是否相同

思路

知识补充

python replace()方法

把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

str = "this is string example....wow!!! this is really string";
print str.replace("is", "was");
print str.replace("is", "was", 3);

#thwas was string example....wow!!! thwas was really string
#thwas was string example....wow!!! thwas is really string

操作

在ida中将被替换字符的ASCll码转换成字符

屏幕截图 2023-04-05 225221

得知被替换的字符

于是编写脚本将str2的字符串替换回去得到相等的str1值即flag

flag = "{34sy_r3v3rs3}"
a = flag.replace("3", "e").replace("4", "a")
print(a)
#{easy_reverse}

总结

学习ida的初步使用及编写字符替换的相关脚本