Crackme_003
功能:
拿到文件,先执行一下。功能如下:
1、nag窗口
会先出现如下nag窗口,持续几秒
2、注册窗口:
出现错误会提示:You Get Wrong Try Again
破解:
1、查壳:
无壳,并且是用VB5.0-6.0写的
解除nag窗口:
方法一:Timer搜索法:找到timer函数的位置,并做修改
缺点:程序的作者将计时器的默认名称改掉之后,根本无法在内存中搜索到Timer关键字,也就无法下手
步骤:
程序加载进od,在入口处点击在数据窗口跟随,数据窗口右键查找二进制字符串,Timer(Timer是VB程序默认的定时器变量):
其中58 1B表示的就是时间参数:0x1B58,这个是计时器的秒数。也就是十进制的7000,7000毫秒就是7秒。
所以第一种去Neg的方法就是将0x1B58改为0x0001,就是将时间缩短到最短。当然还是会有一瞬间
方法二:4c法:
重新载入程序:
在数据窗口中,右键转到表达式:输入4067d4+4c,找到form GUI描述表的指针
选中,右键,数据窗口跟随DWORD
跟随到406868这个数据段:
每一个小块的数据是每一个窗体的信息,其中00和01是窗体的序号 而10是第一个窗体的启动标志。
所以:我们只要把第一个窗体数据块的00改成10 然后把第二个窗体的数据块的10改成00。(注:亲测无效)。
将窗体的序号调换。即可去除neg。
保存 ,去除nag成功
注册:
一:爆破
老规矩:查找:
向上看,找到关键跳转,nop,保存
运行:
二、注册机
找到到关键跳转,在这里尝试下断,判断call的功能是否与加密有关:
测试:输入1234,56789
程序断下,看到栈空间中出现1066822,有点像注册码
输入测试:
成功,那么还在上面。
找到这个函数的开始位置,下断:
第一部分:f8一直跟随,看到eax='1234'出现,主要是:获得的长度*0x15B38 + 第一位数0x31 得到edi = 56d11 十进制为 355601
继续向下,
第二部分:将刚才计算的结果转为浮点数,放入到FPU栈,然后将结果加上2.0 得到355603
继续向下,
第三部分:刚刚得到的浮点数*3-2得到1066807并保存进ST7
继续向下,
第四部分:得到的浮点数减去(-15)也就是加15 --> 1066807+15=1066822 这个就是我们刚刚看到的验证码了
总结一下算法:
[(长度*0x15B38 + 第一位数的十六进制)--->变为十进制 +2]*3-2 +15
下面可以写注册机了:
- Num = input('输入:\n')
- pwd = ''
- test = 0x15B38*len(Num)+ord(Num[0])
- pwd = (test+2)*3-2+15
- print(pwd)
注册机代码
参考文档:https://bbs.pediy.com/thread-249719.htm
总结:慢慢来,要细心
Crackme_003的更多相关文章
随机推荐
- Java基础篇(04):日期与时间API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.时间和日期 在系统开发中,日期与时间作为重要的业务因素,起到十分关键的作用,例如同一个时间节点下的数据生成,基于时间范围的各种数据统计和分 ...
- git笔记整理-learnGitBranching
声明 此篇文章内容是本人在 github上寻找到Peter Cottle的项目 https://github.com/pcottle/learnGitBranching.git 中学习git相关命令时 ...
- 手写一个webpack,看看AST怎么用
本文开始我会围绕webpack和babel写一系列的工程化文章,这两个工具我虽然天天用,但是对他们的原理理解的其实不是很深入,写这些文章的过程其实也是我深入学习的过程.由于webpack和babel的 ...
- IO多路复用之select、poll、epoll
本文转载自IO多路复用之select.poll.epoll 导语 IO多路复用:通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作. ...
- 在 Svelte 中使用 CSS-in-JS
你即便不需要,但你可以. 注意:原文发表于2018-12-26,随着框架不断演进,部分内容可能已不适用. CSS 是任何 Web 应用程序的核心部分. 宽泛而论,如果一个 UI 框架没有内置向组件添加 ...
- Sapper:迈向理想的 Web 应用框架
扎稳阵脚,再进一步. 注意:原文发表于2017-12-31,随着框架不断演进,部分内容可能已不适用. 给迫不及待的小伙伴们的快速入门:Sapper 文档 和快速模板 starter template ...
- Typora For Markdown 语法
数学表达式 要启用这个功能,首先到Preference->Editor中启用.然后使用$符号包裹Tex命令,例如:$lim_{x \to \infty} \ exp(-x)=0$将产生如下的数学 ...
- [个人总结]pytorch中model.eval()会对哪些函数有影响?
来源于知乎:pytorch中model.eval()会对哪些函数有影响? - 蔺笑天的回答 - 知乎 https://www.zhihu.com/question/363144860/answer/9 ...
- Typescript开发学习总结(附大量代码)
如果评定前端在最近五年的重大突破,Typescript肯定能名列其中,重大到各大技术论坛.大厂面试都认为Typescript应当是前端的一项必会技能.作为一名消息闭塞到被同事调侃成"新石器时 ...
- springboot注解之@Configuration 和 @Bean
1.包结构 2.主程序类 1 /** 2 * 主程序类 3 * @SpringBootApplication:这是一个springboot应用 4 * 5 * @SpringBootApplicati ...