美文网首页
逆向工程——自行分析2

逆向工程——自行分析2

作者: 柳清檀 | 来源:发表于2019-05-20 14:11 被阅读0次

题目说明

说明:该题目由CrackMee.exe一个文件组成。该文件是一个简单的小程序,请大家逆向该程序,找到正确的字符串,输入到程序后即为成功。

解题步骤

image.png

首先看到这一部分的分支跳转

cmp eax,14
jbe short CrackMee.00401428

说明输入的字符串长度大于14,也就是十进制的20时会导致Wrong Length :(

我们注意到左下dump数据窗口的信息,发现00402000开始的数据正在被改变写入


image.png

推测这个是需要输入的key:thi5_1s_K3y


image.png
然后我们继续分析,验证这个想法:注意到程序中的“hey! You did it…”部分
image.png

可以看到,第一遍顺序执行这个部分的时候因为执行了jmp short CrackMee.004013A2,并没有执行“hey!you did it…”相关的内容,后面出现一个循环:


image.png
这里设置两个断点让程序的内容更加显然,程序先给ss:[esp+3c]赋值5,每次循环加一,一直到ss:[esp+3c]大于8的时候跳出循环。
image.png
逐步执行的时候发现,这里是在给密码处赋值。

下面关注一下是怎么判别输入密码是否正确的:


image.png

我们关注这一小部分:

首先逆推分析,为了不执行0040148c 处的语句,避免输出“NO No No…”,我们看到上面跳转的部分:

cmp dword ptr ss:[esp+38],0
jnz short CrackMee.0040148c

只有在ss:[esp+38]等于0的时候才会输出“Key Right!”。向上回溯,发现00401461处对ss:[esp+38]进行赋值1。我们应该跳过这一句,那么就需要执行0040145F处的跳转语句,也就需要0040145d处edx与eax等值。

再正着分析:


image.png

发现这个部分利用循环在判断输入是否与设置的密码相同,如果本次循环比较时相同则跳转到0040146B进行下一次循环,如果不同则说明输入的密码错误,执行00401461将ss:[esp+38]赋值1,后续导致输出NO No No…

结论:

需要的key是thi5_1s_K3y


image.png

相关文章

  • 逆向工程——自行分析2

    题目说明 说明:该题目由CrackMee.exe一个文件组成。该文件是一个简单的小程序,请大家逆向该程序,找到正确...

  • 逆向工程——自行分析1

    题目说明 该题目由en1code.exe一个文件组成。该文件是一个简单的加密程序,如果你输入了一个正确的字符串,它...

  • 第1章 关于逆向工程

    1. 逆向工程 逆向工程(Reverse Engineering,简称PE). 2. 代码逆向工程 代码逆向工程(...

  • 《逆向工程》第一章 逆向工程简介

    1.3 逆向工程过程 1.3.1 系统分析: 分析文件系统 1.3.2 代码分析: 分析二进制文件 1.4 逆向工...

  • 一 iOS 逆向工程概述

    1 什么是iOS逆向工程 2 iOS逆向的目的 3 iOS逆向过程以及方法 一 什么是iOS逆向工程 iOS逆向...

  • 关于逆向的一些资料

    转自《ios应用逆向工程 分析与实战》 -------------------------------------...

  • Android编译,打包,签名,混淆和反编译相关知识

    1. 逆向工程 逆向工程(又称反向工程),是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产...

  • iOS逆向工程初探

    1. 为什么要逆向工程 iOS 逆向工程主要有两个作用:1,分析目标程序,拿到关键信息,可以归类于安全相关的逆向...

  • iOS逆向工程

    逆向工程的目的 逆向工程的分析工具 进行iOS逆向工程的一个关键就是工具的使用,工欲善其事,必先利其器。 第一部分...

  • iOS_逆向(1)_简介

    一丶逆向作用 1.分析目标程序,拿到关键信息,可以归类于安全相关的逆向工程;2.借鉴他人的程序功能来开发自己的软件...

网友评论

      本文标题:逆向工程——自行分析2

      本文链接:https://www.haomeiwen.com/subject/sylkzqtx.html