0x01.Writeup-RE-CM_2

题目:

解题思路:

1.这个是经过xor的,王老师提示说用xortool,于是放进kali,装好之后执行

xortool CM_2.exe -b,

0.out变为PEexe,于是放进IDA32得到flag。

0x02.Writeup- RE-CM_3

解题思路:

1.拿道题之后直接丢进DIE扫一下,如图,可以看出是32位,于是用32位IDA打开。

 

2.shift+F12看字符串,看到敏感字符SYC{%s}于是点进去,于是知道关键函数是sub_45BFF0。

3.分析函数sub_45BFF0。

上面这张图是关键代码,不难发现,这是将byte_52E000数组里的元素转换位置。然后看到上有一串数字,如右图,这些数字是被当做byte_52E000数组的下标从而实现转换byte_52E000数组元素位置。

接下来需要知道byte_52E000数组里的元素,双击即可看到。

4.分析清楚后接下来写脚本,由于需要取数组下标,我用c写的脚本,如下

得到flag,大功告成!

0x03.Writeup- RE-APK_1

题目:

于是知道如果找到password就能过这题。

解题思路:

1.用Apktool打开,

2.

可以看到,username = ‘SycGeek2017’,

一开始以为Password就是username的base64编码“U3ljR2VlazIwMTc=”,交了一发不对。

然后仔细看了看,发现还有个re函数,可以很快的了解到re函数就是一个倒置字符串的函数,于是password = “=cTMwIzalV2Rjl3U”。

得flag:SYC{=cTMwIzalV2Rjl3U }

0x04.Writeup- RE-Linux_1

题目:

解题思路:

1.还是拿IDE扫一下,

gcc((Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609)[executable AMD64-64]

2.用IDA64位打开,shift+F12看字符串,如图

点进去,看到它所在函数为sub_4009AE,点进去,F5查看伪代码。

3.函数sub_4009AE

一开始看到这个函数有点懵逼,然后点了点里面跳转的函数,惊喜的看到一个非常“好看”的,如下图

根据这个函数把a1数组的每一个元素找到,即L1nux_1s_51mple,找到flag啦。

0x04.Writeup- RE-Convolution

题目:

解题思路:

1.丢进IDE看文件类型,如图

2.IDA32位打开,看字符串,如图

点进去,F5查看伪代码。

3.从后往前看。

首先,从下面这段代码可以看出,若v6==0,则输出Yes,那么

就是说v8要和unk_41E8B0这个数组完全匹配。

继续往上看v8是如何赋值的。

很容易看到,下图的代码为关键,它的作用是将v9与byte_41C658的元素异或之后再赋给v8,可以看到byte_41C658是已经有值的,

那么接下来看v9,如下图,知道v9是我们输入的字符串。

现在可以开始逆算法了,从上面的关键代码的图可以看出,

V8[i+j] =( v9[i] ^ byte[j] )求和。为了理清这个关系,我写了个脚本,结果如下图。

通过上图可以很快理清其中的关系,通过第一行我们可以直接得到v9[0],通过第二行可以借助第一行v9[0]算出v9[1],以此类推,v9的全部元素都可以得到。

写输出flag的脚本:

byte_41C658数组的元素如下图,别忘了第一个21h。

V8的元素由于过长不在这里显示。

关键代码如下图

得到flag

总结:这个题的难度主要在分析v8,v9,byte之间的关系,如果能理清这个的话相信得到flag是很容易的,还有就是在找v8和byte元素的时候不要忘了第一个!!!比如说下图

我就是一开始忘了byte数组的第一个导致脚本崩了。。。然后第三天重新看的时候才发现。。。

re部分还有两道题,比赛的时候没写出来。。。

作者: LB919
出处:http://www.cnblogs.com/L1B0/
该文章为LB919投入了时间和精力的原创;
如有转载,荣幸之至!请随手标明出处;

随机推荐

  1. mybatis 和hibernate的区别

    mybaits 是不完全的orm(对象关系映射(Object Relational Mapping)框架,需要自己书写sql语句 mybatis学习难度必hibernate低适合关系型模型要求不高的软 ...

  2. 【转载】WAI-ARIA无障碍网页应用属性完全展示

    文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=2 ...

  3. 【原创】修复ios输入框获取焦点时不支持fixed的bug

    前些日子,做了一个手机站的项目,有一个页面是这样的, 有一个固定(position:fixed)的头部和底部导航,中间是一些表单内容,没啥特别的.但是到了ios中,正常滚动页面没有问题,一旦触发了文本 ...

  4. NopCommerce 3. Controller 分析

    1. 继承关系,3个abstract类 System.Web.Mvc.Controller Nop.Web.Framework.Controllers.BaseController Nop.Admin ...

  5. 初学python之,IDLE安装

    首先新手上路,写的第一篇博客,希望大家不要吐槽. 1.首先在python官网下载最新python版本 https://www.python.org/(注意根据自己的操作系统来选版本) 安装很简单傻瓜式 ...

  6. Java正则表达式详解+练习

    一.导读 正则表达式,又称规则表达式.(英文名Regular Expression,所以代码中常以regex.regexp.RE表示).正则表达式简单说就是用于操作文本数据的规则表达式,在Java中我 ...

  7. Arduino上传数据至贝壳物联并与FPGA进行交互

    本篇实现Arduino与FPGA交互,当然也没有什么新的协议,还是基于串口通讯,现在学一个串口通信基本上可以驱动大多数模块了,而且和各种单片机无缝数据交互,Arduino由于其强大的库函数支持,在实现 ...

  8. 利用cookies+requests包登陆微博,使用xpath抓取目标用户的用户信息、微博以及对应评论

    本文目的:介绍如何抓取微博内容,利用requests包+cookies实现登陆微博,lxml包的xpath语法解析网页,抓取目标内容. 所需python包:requests.lxml 皆使用pip安装 ...

  9. Model Representation and Cost Function

    Model Representation To establish notation for future use, we’ll use x(i) to denote the “input” vari ...

  10. Android的主线程和子线程

    在一个Android 程序开始运行的时候,会单独启动一个Process.默认的情况下,所有这个程序中的Activity或者Service(Service和 Activity只是Android提供的Co ...