逆向基础(二)

写在前面:最近在学逆向,然后很多人说不知道怎么入门,我也在摸着石头过河,然后想的发一个系列。一来分享学习的过程,大家一起进步,二来就当笔记来记录一下,加深印象。当然,时间不定,看心情。

0x00

题目:第三届上海市大学生网络安全大赛 REVERSE-->crackme

放在了百度云:链接: https://pan.baidu.com/s/1pLNyeaZ 密码: vhr9

刚拿到题还是太年轻,直接放到了ida分析,一堆花指令,然后搜key word定位关键位置,竟然啥都没搜到。。。

然后反应了一下,是不是有壳。上pedid

可以看到是nSPack 3.7 -> North Star/Liu Xing Ping。然后肯定就是要脱壳了,我直接拿脚本脱的,也可以根据esp手工脱,网上有很多教程,在此不再累述。

脱完以后重新走一遍流程,静态的先看一下,是不是很清楚了。

当然可以静态的去分析,今天咱们来拿od动态的来分析一遍,在这里下个断,看看程序的判断流程是怎么样的

先把栈上我们输入的字符串长度计算出来,edx就是开始,ecx就是结束。减一下,是不是刚好就是咱们输入的长度==11,然后就要和0x2A(42)比较了。如果成功的话就跳je,不成功的话就exit了。

跳过去以后,把我们的字符串和this_is_not_flag按位异或相与,然后eax*n+401250比较,看看这块内存是什么鬼。

看到了吧,对应ida的这里

然后逻辑很简单了。

0x01

exp如下

本文来自企鹅号 - 宇宙某处的星星Star媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

解析大型.NET ERP系统 20条数据库设计规范

数据库设计规范是个技术含量相对低的话题,只需要对标准和规范的坚持即可做到。当系统越来越庞大,严格控制数据库的设计人员,并且有一份规范书供执行参考。在程序框架中,...

30370
来自专栏Java学习网

最佳编码实践:搞砸代码的10种方法

 这是一篇提供有效、实用编程方法的程序箴言,作者Susan Harkins是世界最大的技术期刊出版社的主编,具有多年的实践经验;在这篇文章里她重申“最佳编码实践...

27940
来自专栏木子昭的博客

Javascript是个好东西(广大人民的智慧是无穷的):

图片发自简书App 1,面向对象? 其他编程语言对于面向对象要么支持,要么不支持,而js支持原型链,具体的实现要自己动手,实现的方式也是各种流派(相当于别人家的...

28780
来自专栏纯洁的微笑

看程序员怎么解决食堂排队问题

在学校的时候,我不爱去食堂成功,一是由于暗黑料理,更重要的一点是人太多了,队伍往往从窗口排到了门口,点菜、计算价格、付款三种业务由打饭阿姨一人完成,思维切换忙碌...

10810
来自专栏林德熙的博客

C# AddRange 添加位置

有没人想知道, AddRange 添加位置 是哪? 是添加到数组的开始,还是数组的末尾?

11310
来自专栏积累沉淀

Java设计模式(十七)----责任链模式

责任链模式 一、 概念 二、 引子 三、 结构 四、 具体案例 一、概念 责任链模式是一种对象的行为模式。...

20090
来自专栏LanceToBigData

OOAD-设计模式(二)之GRASP模式与GOF设计模式概述

一、GRASP模式(通用责任分配软件模式)概述 1.1、理解责任   1)什么是责任     责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为...

235100
来自专栏余林丰

命令模式

当学了这个命令模式后,又一次体会到编程的艺术,明明一个看似很简单的事,却要用“复杂”的方法来实现,就像在之前我多次说到的,其实并不是“复杂”,并不是“难”,而是...

18090
来自专栏编程

C语言嵌入式系统编程修炼之键盘操作

这是我13年前创作和发表在互联网上的文章,这么多年过去了,这篇文章仍然在到处传播。现在贴回Linuxer公众号。 全文目录: C语言嵌入式系统编程修炼之道——背...

27190
来自专栏大数据挖掘DT机器学习

并行爬虫和数据清洗工具(开源)

etlpy是python编写的网页数据抓取和清洗工具,核心文件etl.py不超过500行,具备如下特点 爬虫和清洗逻辑基于xml定义,不需手工编写 基于pyth...

48640

扫码关注云+社区

领取腾讯云代金券