吾爱破解 Happy_New_Year_2019_Challenge 第二题
题目在这里面找
https://down.52pojie.cn/Challenge/Happy_New_Year_2019_Challenge.rar
内容方面参考论坛上的文章,并做了一些补充
https://www.52pojie.cn/thread-874670-1-1.html
按照习惯,先查壳。发现应该是upx壳。

用od打开,现在可以看到程序的入口,从这也可以发现入口的特征确实为upx壳的特征。
所以此处可以尝试使用“esp定律”来进行脱壳
具体方法为:
1.先od加载程序chunjiekuaile.exe,此时自然就到了程序的入口点,发现pushad
2.这时F8单步执行一步,然后可以看到寄存器区域的esp反色高亮
3.此时我们在esp高亮处点击右键 ->选择HW break[ESP],即可下一个硬件断点

插一句,这里也可使用另一种方式下断点,效果是一样的。在高亮处,右击选择“数据窗口中跟随”。
然后在数据窗口中右键,选择 "断点" -> "硬件访问“ -> "byte"(其他两个也都行)
4.这里可以打开,”调试“->"硬件断点",来进行查看断点是否下成功
5.接下来F9运行程序,然后我们可以看到程序断在了第一行那里,按照规律最下面的jmp,将带领我们跳至oep,也就是程序真正的入口,我们可以在那行用F4,直接运行到选定位置,然后再F8单步执行一次

6.此时就来到了正真的程序入口点,可以看到程序入口点OEP的特征和通常的Microsoft Visual C++ 6.0的OEP特征非常相似,所以这时我们可大致断定我们找到了OEP

7.这时我们在OEP处右键选择“用ollydump脱壳调试进程”
8.然后不要勾选重建输入表,其他按照默认配置,点击脱壳,然后保存就好,我们这里保存为chunjiekuaile2.exe

9.脱出来的程序需要重建输入表,我使用的ImpREC进行重建,运行程序加载脱出来的程序,点击IAT AutoSearch->Get Imports->Fix Dump


点击fix Dump打开被修复的程序,会生成一个新的chunjiekuaile2_.exe
9.这时再把我们保存的chunjiekuaile2_.exe拖入PEID中,检查是否已经把壳脱掉,结果可发现已经没有了壳,此时我们就可以大胆得开始调试程序了

10.将脱完壳的程序拖入od中,F9运行起来,现在就开始猜密码了,随便输几个数字,发现会提示“长度错误”
11.按照老套路,右键选择“中文搜索引擎”->“智能搜索”
12.可以发现,运气很好,搜索到了相关字符,双击跳转至该处
13.向上看到这行,发现这里有一个获取字符串长度的操作,然后接下来就是一个cmp指令,那我们基本可以猜测这里就是校验字符串长度的地方。由于是和十六进制0x10进行比较,也就是十进制的16,所以我们可以尝试使用十六位的字符进行测试

14.这时我们可以发现,已经通过了长度的校验,提示变成了“内容错误”
15.还是之前的套路,我们继续搜索字符串,发现也可以找到相关的字符串,双击转到该处,F2下一个断点
16.我们再往上看,发现有惊喜,发现了“正确”的字样,那么我们可以猜测最终校验密码的代码就在附近

由于之前基本确定在00401288那行应该就是最终成功的提示,所以我们可以做出推断,往这行指令之后的跳转,基本都要避免,比如00401281的这个jnz。那么接下来任务就是要看再怎样的条件才可使指令最终一步一步执行到这里
17.大胆猜想一下,上面的flag应该是进行了一些变换所以才和正真的flag有差别,那现在我们暂定分析范围在,之上的疑似flag那,到正确提示之间。于是先在004011FF那下个断点进行调试

18.按照我们的猜想,字符串一定是经过与正确的字符串进行比较才能完成校验,于是我们可以着重关注一下如cmp之类的比较类的指令。我们一步步单步来跟,发现在经过004010E0 => call chunjiek.004010E0,之后ESI和EDI之中的分别为我们的测试字符串"TESTbNhzYhdu2019"和另一串长度相同的字符串。而且接下来的各类比较都是围绕着这两个寄存器来展开的,所以我们可猜测EDI中的字符就是要找的flag。最快速的方法就是使用这个字符串再测试一下,发现通过了校验,正是我们要找的flag。

吾爱破解 Happy_New_Year_2019_Challenge 第二题的更多相关文章
- 吾爱破解脱壳练习第五期------upx壳
内存镜像法: 载入OD:
- 修复吾爱OD数据窗口双击不出现偏移问题
吾爱破解专用版OD其实一直有一个小BUG,就是双击数据窗口不出现下图的偏移:<ignore_js_op> 我一直苦苦寻找解决办法,曾见小生怕怕在另一个贴说这是看雪那边OD改了什么东西引起的 ...
- 常见面试第二题之什么是Context
今天的面试题,也就是我们常见面试题系列的第二题,我们来讲一讲android中的context.我相信大家android开发者一定对于这个context非常熟悉,肯定都有使用过,肯定没有没使用过的.但是 ...
- 05:统计单词数【NOIP2011复赛普及组第二题】
05:统计单词数 总时间限制: 1000ms 内存限制: 65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...
- 《学习OpenCV》练习题第五章第二题abc
代码: #include <stdio.h> #include <opencv/highgui.h> #include <opencv/cv.h> #include ...
- 《学习OpenCV》练习题第四章第二题
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib&q ...
- CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同一时候他也是一个黑客. 考试结束后不久.他吃惊的发现自己的高等数学科目竟然挂了,于是他果断入侵了学校教务部站点. 在入侵的过程中.他发 ...
- NOIP2005-普及组复赛-第二题-校门外的树
题目描述 Description 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0 ...
- 【gdoi2018 day2】第二题 滑稽子图(subgraph)(性质DP+多项式)
题目大意 [gdoi2018 day2]第二题 滑稽子图(subgraph) 给你一颗树\(T\),以及一个常数\(K\),对于\(T\)的点集\(V\)的子集\(S\). 定义\(f(S)\)为点集 ...
随机推荐
- 迅速生成项目-react-static
推荐指数:
- 集合运算 & 聚合函数
SQL 查询之集合运算 & 聚合函数 1.集合运算 1.1.并集运算 UNION 1.2.差集运算 EXCEPT 1.3.交集运算 INTERSECT 1.4.集合运算小结 2.聚合函数 ...
- phpstudy 8.0 安装redis并使用,解决phpstudy 8.0直接启用redis使用不了
目前phpstudy 8.0直接安装redis启用,是用不了的 在phpstudy 8.0环境面板中找到redis安装后: 打开redis安装目录配置文件redis.windows.conf配置red ...
- 使用speedtest-cli测量服务器带宽
使用speedtest-cli测量服务器带宽,这个是python写的工具,很方便,只需要在服务器端安装即可. 1.安装python-pip # yum install python-pip –y 2. ...
- Ubuntu 中改变文件的默认打开方式(转)
源自:Ubuntu 中改变文件的默认打开方式 1. 相关配置文件 全局配置 /etc/gnome/defaults.list /usr/share/applications/mimeinfo.cac ...
- 用pytorch1.0搭建简单的神经网络:进行多分类分析
用pytorch1.0搭建简单的神经网络:进行多分类分析 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib ...
- Guava 工具类之Cache的使用
一.guava cache 介绍 1.介绍 guava cache是Google guava中提供的一款轻量级的本地缓存组件,其特点是简单.轻便.完善.扩展性强,内存管理机制也相对完善. 2.使用缓存 ...
- [ClickOnce] - Win10 管理员模式下无法安装 ClickOnce 之解决
Issue Windows 10 管理员模式下,点击 ClickOnce 安装程序无反应. 解决 1. 按 WIN+R 键打开“运行”窗口,输入 “gpedit.msc" 打开组策略.2. ...
- 从C++到Qt(舍弃IDE或qmake、cmake等工具的束缚,尝试通过几个例子)
Qt 是 C++ 的库,Qt 在 ansi C++ 的基础上进行了一点扩展. 但国内似乎比较浮躁,学Qt的很多连基本的C++如何编译似乎都不太清楚.本文舍弃IDE或qmake.cmake等工具的束缚, ...
- [Luogu5320][BJOI2019]堪破神机(DP+斯特林数)
https://www.cnblogs.com/cjyyb/p/10747543.html 特征方程+斯特林反演化简式子,要注意在模998244353意义下5没有二次剩余,所以每个数都要用$a+b\s ...