Easyre
先用exeinfo查看文件信息
用IDA64位打开文件,再用shift+f12打开字符串窗口,发现flag字符串
双击跳转到字符串在汇编代码中的存储地址
点击字符串下方注释中的跳转链接,即可跳转至引用它的函数对应的汇编代码处
按f5反汇编,生成汇编代码处的c语言伪代码
分析代码,直接观察可知flag为代码中的所示字符串。
Reverse1
先用exeinfo查看文件信息,发现是64位
用IDA64位打开文件,再用shift+f12打开字符串窗口,发现helloworld字符串
双击跳转到字符串在汇编代码中的存储地址
按CTRL+x判断字符串由谁引用,并跳转到对应位置
按tab转换为c语言形式
利用r键把if里str2后面的数字转化为ascII码
再双击str2找到其在原文中的位置
按所给条件把hello world里的两个o换为0即为最后的flag值
Reverse2
先用exeinfo查看文件信息,发现为64位
用IDA64位打开文件,再用shift+f12打开字符串窗口,找到wrong flag双击跳转
Ctrl+x找到其被引用对象并跳转
按tab或f5转为c语言
把数字用r转化为ascII码
双击flag跳转到flag位置
发现7Bh可以用r转化为ascII码
根据图4的c语言分析,得出flag为{hack1ng_fo1_fun}
内涵的软件
先用exeinfo查看文件信息,发现为32位c++文件
接着用IDA打开,并按shift+f12打开字符串列表
找到判断语句下面一行的代码(第二行),双击跳转到相应位置
按tab转为c语言,推断v5后应该是所需flag
新年快乐
先用exeinfo查看文件信息,发现为32位
用IDA打开发现左边只有两个选项,果断退出并使用UPX软件脱壳,下图为脱壳后的结果
老方法shift+f12打开并推测please input the flag这行应该是c语言中的某一行
接着ctrl+s跳转到此界面
按tab或f5转换为c语言形式
Str2里面的HappyNewYear!则为所需flag
此题注意,exeinfo中初步信息那栏带UPX则需要手动脱壳!
Xor
先用exeinfo查看文件信息,无壳
用IDA打开,并按tab或f5转换为c语言格式
经分析发现若要成功得到flag的值,需得到b数组里的值,但这其中包含了一个异或运算,需要明确异或两遍等于其本身,且b数组是33位(第11行),接着我们对global进行分析,双击global进行跳转
(上图的界面鼠标放在黄色部分会显示出内容的,截图没显示)
双击上图的黄色区域,下图选中的区域即为我们需要的数据了
按shift+e提取出字符数组
再把数组复制到提前写好的脚本中,获取flag值
Helloword
需下载安卓逆向工具,这里我用的是Androidkiller,进入后点左上角打开题目文件
点击左面main开头的字符串
往下翻直接可以找到flag
Reverse3
先用exeinfo查看文件信息,无壳,32位
用IDA打开,按shift+f12,在字符串中找到形如c语言中的字符串并双击
接着ctrl+x跳到对应位置并按tab或f5转换为c语言伪代码
为方便说明,我把destination重命名为Str1(选中按n重命名),自下而上分析,发现第25行把v4复制到Str1中了,找v4的值,即第24行,双击此行sub开头的字符串
继续双击sub开头的字符串,发现出现新的内容
继续双击蓝色部分字符串,得到以下结果
发现为base64编码(edit>plugins>findcrypt可以快速发现加密方式),接着返回到图3界面,向下分析发现要输出正确的flag则需使Str1和Str2相等,所以将Str2逆向还原为Str1,再对Str1解码,需要写一个脚本
把得到的字符串去解下码,即为flag值