160个CrackMe之003

简介: 160个CrackMe之003

AfKayAs.2


新知识点:软件未注册或软件的试用版经常会弹出一些提示窗口要求注册,这些窗口被称为nag窗口。

概述

NAG窗口:在软件试用期过后,很可能屏蔽软件的正式窗口或某些具有重要功能的重要功能的窗口,从而使软件不能正常使用。NAG窗口可通过修改软件的窗体资源或者修改窗体所在代码来屏蔽窗体或强行跳过,使NAG窗口不再运行


三个学习的点:1、爆破 2、算法 3、取出NAG窗口


暴力破解

爆破的过程和之前的题是一样的,OD搜索字符串,然后找到关键跳转,nop掉它,保存成新文件即可。

算法的分析

开头下断位置:

image.png

第一部分,strlen(<注册名>) * 0x15B38 + ASCII(<注册名首字母>)

image.png

第二部分 转为整数,进行浮点数加减法,这里经过浮点数计算之后将之前的结果+2

image.png

第三部分 对结果*3 然后 -2

image.png

第四部分

image.png

第五部分

image.png

`def key(name) :
    strlen = len(name)
    s = (strlen*0X15B38+ord(name[0])+2)*3-2+15
    print(s)
name = input("name")
key(name)

这样我们就成功搞定了注册码

去除NAG窗口

在我们双击打开程序后,会出现一个窗口,然后才会进入输入注册码的环节

image.png

在下载程序时,我们看到作者给出的信息是VB5,VB程序都有一个特点。

image.png

入口点处都是一个PUSH指令,然后一个CALL指令,看JMP 后面跟的MSVBVM50,应该是VB5.0编写的。(如果不是这种情况的话,那么该程序可能被加过壳)

image.png

PUSH将要压入堆栈的是004067D4,现在我们在数据窗口中定位到这个地址

image.png

现在就要用至4C了,也就是从当前定位的地址往后偏移4C,数据窗口CRTL+G,输入4067d4+4c

image.png

数据窗口继续跟踪:00406820处的DWORD值,00406868,内容如下:

image.png

看到两块类似的数据,每块50(十六进制)个字节的长度,每块数据的第24(十六进制)个字节处都有一个标志(第一个是01,第二个是00)。该标志指定了每块代码(也就是程序启动后要加载的窗体)出现的顺序,先加载00,也就是我们要去的NAG窗口,再加载01,是主窗口。所以这里我们将各两个标志的值颠倒一下,01改00,00改01,二进制修改,保存文件,运行测试,NAG窗口去除了。

希望大家可以有所收获!

相关文章
|
4月前
|
存储 前端开发 Java
农产品销售|助农惠农|基于Springboot实现农产品销售管理系统
农产品销售|助农惠农|基于Springboot实现农产品销售管理系统
157 1
|
7月前
|
Linux Shell 应用服务中间件
Docker常用命令大全(万字详解)
Docker常用命令大全(万字详解)
437 0
|
8月前
|
存储 安全 Ubuntu
解决E: 仓库 “http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic InRelease” 没有数字签名问题
解决E: 仓库 “http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic InRelease” 没有数字签名问题
363 0
|
4月前
|
网络协议 网络安全
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
113 0
|
3月前
|
自然语言处理 监控 数据挖掘
信息系统项目管理师重点内容汇总(第十二天)
【1月更文挑战第12天】乘风破浪会有时,直挂云帆济沧海
429 2
|
11月前
adb 和 adbd 嵌入式 c 源码分享
adb 和 adbd 嵌入式 c 源码分享
161 0
|
8月前
|
Docker 容器
Warning: Stopping docker.service, but it can still be activated by: docker.socket
Warning: Stopping docker.service, but it can still be activated by: docker.socket
157 0
|
9月前
|
网络架构
WIFI的AP(Access Point)和STA(Station)指什么
WIFI的AP(Access Point)和STA(Station)指什么
299 0
|
11月前
|
NoSQL 架构师 Java
阿里大牛都在读的10本Java实战书籍,Java开发进阶必备书单
关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序员必读之热门书单。
|
运维 Kubernetes NoSQL
docker系列:docker-compose用法详解
docker-compose是Docker官方提供的用于定义和管理运行多个Docker容器的开源容器编排工具。 可以使用YML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令,就可以解析YML文件配置创建并启动文件中配置的所有docker服务。
docker系列:docker-compose用法详解