逆向破解第一课之易语言注册程序破解 您所在的位置:网站首页 易语言卡密系统 逆向破解第一课之易语言注册程序破解

逆向破解第一课之易语言注册程序破解

2023-08-28 23:01| 来源: 网络整理| 查看: 265

破解注册程序流程

         

 

========

写的不好大佬勿喷!!!! 首先写个小易语言,易语言写起来方便就写了易语言的注册程序,c语言调用winapi写窗口类有点麻烦就采用易语言按钮源码

 

 

 

 

 

 

 

  在这个位置我们看一个我们写的注册程序的验证流程:   1.点击注册按钮   2.读取注册码   3.判断注册码合法性   4.返回结果

我们把程序放入OD

首先我们现收悉一下OD的界面(因为我也刚入门逆向不久,我只能用我的理解去写可能不太权威,大佬勿喷)

 

 

我们看注册码的验证流程,我们先更读注册码的函数在易语言中常回调GETwindowTextA函数进行读取CTRL+G输入我们跟踪的表达式

 

 

这个是我们汇编指令的函数头也就是GETWindowTextA函数的函数头我们在这下个断点,让程序跑起来

 

 

ok我们看到在这里我们点击一下程序,程序就崩溃了,我们最终要的是在他读取的时候断下来而不是让他一直断在这,那这时我们怎么办呢我们就需要下个条件断点,那我们该怎么下呢,我们先看堆栈,我们定位到函数GETWindowTextA这个函数我们看一下它的几个参数这个001A186C就是它的句柄号,它是读取的注册的这个标签的内容显然不是我们要的效果,我们要的效果是读取编辑框的内容后停下,那我们可以这么下,我们看esp寄存器,我们每次保存的位置都是栈顶esp这个位置,下面的位置为esp+4也就是它的第一个参数我们就可以下这样的条件断点我们要让他不等于这个句柄号的时候停下来因为我们每次断的时候都是句柄为这个值的时候断下来,所以我们让他不等于这个的时候再段我们下的条件断点就为esp+4不等于这个句柄号的时候才断,shlft+f2下条件断点

 

 

 

 

下完条件断点的时候我们再跑一下是不是没有断的现象了,可以正常输入了我们点一下注册就正常断下了,这个位置就是在读取编辑框内容的时候断下,我们接下去走,走到我们的弹窗位置,因为我们走到弹窗位置我们网上跟就能看到它的验证那一块,我们用自动步过,ctrl+f8

 

 

 

 

在这个位置又进行了读取这个我们不管,我们接着跑

ok我们到这个位置程序弹出了注册失败我们网上跟上去看断点,我们发现一个call这个call可能是成功信息call,我们接下来往上定位看到函数头下个断点,把条件断点去掉,然后我们跑一遍,我们在函数头断下,f8单步跳,发现一个大跳转,这个位置是个关键跳我们在这下个断点,跑一编,断的这个位置就是jcc指令也就是我们的if判断语句,我们在这个位置有两个方法进行破解第一个我们使用二进制nop填充也就是不执行if语句,直接往下走

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二个我们就是在寄存器上操作,因为我们的jcc指令是在我们的efl寄存器je跳转是看zf标志位我们把zf标志位强行修改,修改之后它就不进行跳转让他强行往下执行

 

 

最简单的爆破就实现了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有