濡陌记一次逆向练习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
你这写的有点牵强。。。
抱歉抱歉,刚开始练习,在努力! Hmily 发表于 2023-3-30 15:48
编辑补充一下吧,配上截图描述,最好提供一下试炼品。
好的好的,会完善配图的! 真不错,学习学习 romoi 发表于 2023-3-30 18:33
好的好的,会完善配图的!
那就编辑一下吧。 看出来了新人第一次,有点紧张啊
页:
[1]