romoi 发表于 2023-3-29 18:42

濡陌记一次逆向练习1

easyre wp首先放入exeinfope,查看是否有壳,查看是32位还是64位,经过查看,发现是64位程序,那么拖入相应的64位ida查看。首先f5进行反汇编,然后查找特殊字符,比如flag,然后发现了flag{this_Is_a_EaSyRe},尝试提交,提示成功。

reverse1 wp首先,放入exeinfope中查看,发现是无壳64位程序,拖入64位ida中查看。然后查找特殊字符串,搜索flag,发现了一个可疑的部分,this is the right flag!,开始查看有那些代码调用了这一部分,点击黄色的aThisIsTheRight,然后按x,查看交叉引用,点击这部分函数进去后f5反汇编,str1是我们需要的flag,那么点击str1然后按n进行重命名,重命名为flag。开始读代码,发现当flag等于str2时,这个程序就会给出正确flag,那么开始查看str2,双击查看交叉引用,然后发现str2内被储存了{hello_world},提交flag{hello_world},发现不对,那么继续查看代码,发现在for循环中,改变了str2,发现其中有: if ( Str2 == 111 )      Str2 = 48;猜测111,48应该都是ASCLL码,将光标点在111和48上面,按下快捷键r可以将其改为字符:if ( Str2 == 'o' )      Str2 = '0';得到flag:flag{hell0_w0rld}

reverse2 wp用exeinfope查看,发现是64位的elf文件,ELF 的全称是 Executable and Linking Format,即“可执行可连接格式”,被86open项目选为x86架构上的类Unix操作系统的二进制文件标准格式。Linux上可以运行,windows不可以。拖入64位ida查看,f5反汇编,查看main这一部分函数,发现了可疑的一部分:   if ( *(&flag + i) == 105 || *(&flag + i) == 114 )
   *(&flag + i) = 49;将数字按r进行转换为字符:if ( *(&flag + i) == 'i' || *(&flag + i) == 'r' )      *(&flag + i) = '1';也就是说对flag进行替换,查看flag:{hacking_for_fun}进行替换,得到flag:flag{hack1ng_fo1_fun}

Panel 发表于 2023-3-30 15:02

你这写的有点牵强。。。

fabir1031 发表于 2023-3-30 15:46

全是文字,图都不放么?

Hmily 发表于 2023-3-30 15:48

编辑补充一下吧,配上截图描述,最好提供一下试炼品。

a948423110 发表于 2023-3-30 16:59

看起来挺乱的

romoi 发表于 2023-3-30 18:33

Panel 发表于 2023-3-30 15:02
你这写的有点牵强。。。

抱歉抱歉,刚开始练习,在努力!

romoi 发表于 2023-3-30 18:33

Hmily 发表于 2023-3-30 15:48
编辑补充一下吧,配上截图描述,最好提供一下试炼品。

好的好的,会完善配图的!

zhaokaige2023 发表于 2023-3-30 19:50

真不错,学习学习

Hmily 发表于 2023-4-11 17:52

romoi 发表于 2023-3-30 18:33
好的好的,会完善配图的!

那就编辑一下吧。

tvrc330 发表于 2023-4-12 18:30

看出来了新人第一次,有点紧张啊
页: [1]
查看完整版本: 濡陌记一次逆向练习1