广告位招租

推扬网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
推扬网 门户 互联网动态 查看内容

crack中文是什么意思怎么读(小程序的Crack过程)

2020-4-18 00:01| 发布者: admin| 查看: 27| 评论: 0

摘要: 逆向工程在ctf比赛中有着举足轻重的地位,这次带逆向小白体验一下两道最基础的逆向题目。 disassemble.exe逆向 看看这个程序是用来干什么的 输入正确的密码,来获取flag 老套路,看一下有没有加壳 显示有U ...

逆向工程在ctf比赛中有着举足轻重的地位,这次带逆向小白体验一下两道最基础的逆向题目。

disassemble.exe逆向

看看这个程序是用来干什么的

逆向入门——两个小程序的Crack过程

输入正确的密码,来获取flag

老套路,看一下有没有加壳

逆向入门——两个小程序的Crack过程

显示有UPX壳,那就脱壳吧

UPXUnpacker脱壳

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

脱壳完成

再次查看连接器版本

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

已经显示没有壳了,连接器版本是vc++6.0

说一下思路

  • 跟踪比较函数,找出程序中存储的密码字段
  • 修改程序逻辑(如果是某种条件跳转)
  • 修改寄存器状态(当然也是基于某种条件跳转)

扔进OD运行

逆向入门——两个小程序的Crack过程

查看字符串

输入错误密码后会输出“密码错误,退出”的字符串,因此可以尝试找到这个字符串,然后从下往上查找比较逻辑的代码

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

选择查找ASCII字符串

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

追踪代码

从这串字符串的代码往上翻一翻,发现了用于密码判断的逻辑

逆向入门——两个小程序的Crack过程

下个断点,让程序跑到这里

TEST命令

作用:test指令是将两个操作数进行与操作,但并不将结果存储于目的操作数中,仅根据结果设置各个标记为,后面常常会跟各种条件指令。

特别地,testax,ax 这种,即源操作数和目的操作数相同的情况,即为比较此操作数的值和0之间的关系。

比较完后jnb条件跳转

条件跳转表

逆向入门——两个小程序的Crack过程

修改跳转代码实现不跳转

将jnb代码用nop(空代码)填充

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

这样一来,就不会跳转了

修改寄存器

将CF位修改为1,jnb将不会跳转

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

成功得到flag

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

CrackMe.exe

拿到一个exe文件,打开看一看

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

发现是一个输入用户名和序列号的一个程序

查一下有没有加壳

逆向入门——两个小程序的Crack过程

发现并没有加壳,直接扔进OD打开

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

F9先跑一跑

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

输入错误的用户名和序列号会弹出错误提示框,预测程序逻辑是把输入框中的字符串和程序中存储的字符串比较。因此,初步的目标是找到比较的函数,从函数中找到用于比较的字符串。

查看CrackMe模块调用的API函数快捷键(Alt+E)

逆向入门——两个小程序的Crack过程

点进去,选择CrackMe模块

逆向入门——两个小程序的Crack过程

Ctrl+N进入查看模块调用的API函数

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

可以看到很多调用的函数,我猜测程序调用了API函数,从对话框中获取字符串,因此,需要关注一些获取对话框字符串的敏感API函数,锁定GetDlgTextA函数(这里的A指的是ASCII编码,W结尾表示宽字节Unicode)

右键在这个API函数调用的地方下断点

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

在这里下断点不清楚是否操作成功,Alt+B看一下断点情况

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

显示的确成功下断点,PS:断点窗口可以设置断点是否有效,这里显示Always表示断点生效,如果是Disable,表示暂时禁用了这个断点,断点一般最好不要删掉,禁用即可,断点调试来之不易,且下且珍惜233

另一个在API下断点的方式

OD一个强大的功能是可以添加很多第三方插件,对逆向有很大帮助,我的OD是吾爱下的,带了一些Plugin,这里用的是API断点插件

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

选择对话框中的GetDlgTextA

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

小白最好还是完整走一次过程,加深印象:)

F9开始运行程序,到达我们设置的API断点处

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

这个函数将输入的用户名和序列号传入程序中,进行下一步比较

F7单步跟踪

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程

关注堆栈窗口,调用函数时,传入的参数会被压进堆栈

继续单步跟踪

逆向入门——两个小程序的Crack过程

找到了比较函数,函数中,将我们输入的字符串和1008比较,大致可以确定1008是我们要的序列号

打开程序,输入正确的用户名和序列号

逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程 逆向入门——两个小程序的Crack过程


鲜花

握手

雷人

路过

鸡蛋

最新评论

推荐阅读
关闭

站长推荐上一条 /1 下一条

广告位招租

QQ|广告服务|网站出售|投稿要求|禁言标准|版权说明|免责声明|手机版|小黑屋|推扬网 ( 粤ICP备18134897号 )

GMT+8, 2020-6-2 08:57 , Processed in 0.271939 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部

为了响应国家互联网安全,本站已和国家网信办举报中心对接。发布内容信息系统会自动记录IP地址、设备信息、行为记录等。如有发生犯罪违法违规行为,我们全部配合有关部门协助调查取证!

本站部分文字及图片均来自于网络,如侵犯到您的权益,请及时通知我们,我们将及时的处理。

本站所提供的信息,只供参考之用。本站不保证该等信息的准确性、有效性、及时性或完整性。本站一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误对用户或任何其他人士负任何直接或间接的责任。
在法律允许的范围内,本站在此声明,不承担用户或任何人士就使用或未能使用本站所提供的信息或任何链接或项目所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿(包括但不限于收益、预期利润的损失或失去的业务未实现预期的节省)。

本站中的文章(包括转贴文章)的版权仅归原作者所有,若作者有版权声明的或文章从其它网站(或各种互联网渠道)转载而附带有原所有站的版权声明者,其版权归属以附带声明为准;文章仅代表作者本人的观点,与本站立场无关。