逆向基础笔记

逆向学习笔记:
Nop法破解:
首先打开需要破解的文件,仔细观察一下破解界面,如 果 发 现是输入密码的情况,那么尝试猜测一个密码然后点击确定验证,在验证过程中记录错误提示框。
在od界面打开我们需要破解的软件,然后我们使用查找工具来查找我们需要的字符(切记不可查找全部的字符串,查找一部分就可以了)
然后我们就可以针对性的修改数据,将错误的跳转nop掉,让我们的密码不需要输入就可以实现进入,破解完成
Jmp法破解:
其他步骤相同,将我们的跳转中的je跳转变成jmp的跳转就可以了。修改寄存器的值是不会保存的,这一点要注意。

壳内寻找注册码:
“飞扬英语一点通”破解:
首先使用peid查壳,载入od我们发现了有一个壳。使用ctrl+g就可以使用跳转界面,我们直接跳转到401000 (百分之90的程序是401000,但是还是有程序不是的)右键,分析,删除模块分析,搜索,智能搜索:未购买
双击就可以,然后向周围寻找一下。发现了一个software\engydt 注册表项
(用途:输入用户名假码的时候,我们的假码就会被写入到这个注册表注册项中,然后就可以在重启判断的时候就会派上用场)
继续:在运行的过程中,加壳的程序是没办法识别我们的断电的
使用插件中的api断电设置工具中的常用断电设置中的初始化断电进行勾选,在程序运行之前,让程序停下来使用F9
我们就可以发现程序在初始化的时候就可以停止了,在堆栈窗口就可以看到我们停止的地方
按住b我们既可以进入一个界面,什么时候我们的程序解码了才可以进行下一步。禁用初始化断电就可以到我们之前断在的注册表项的地方,F8一点一点的运行,我们发现了我们输入的假码继续向下。在右下部分出现了真码(出现我们没有输入的字符串就是可以的字符串我们复制可疑的注册码来实验)
复制到剪切板
我们会发现我们的假码和我们的真码进行对比。
在记事本上粘贴我们看到的可疑部分,然后就可以我们直接尝试了
发现有一个尝试就可以破解了。

Ps:关键跳:就是一个关键的跳转,决定我们的程序是否能够注册成功
关键条上面有一个关键call,关键call是决定关键条的,也就是说关键条是取决于关键call的,这个call会被重复调用,多有修改跳转不如修改call来达到目的,解决所有关键跳转。
首先确定带不带壳,然后我们就在call处下断电,然后运行程序到端点处(eax:8个0,ax就是后面4个0 这4个0还分为ah和al,ah+al就是ax)对比的是al所以我们修改之后的al,导致我们的跳转可以实现,在call处F7进入call中在开头处添加(mov eax,1)然后return,retn然后保存就可以了

Vmp强壳破解:
1.Vmp就是将反汇编代码进行加密,让我们看不懂,倒是无法直接破解
所以我们尝试使用401000方法实验一下
找找关键跳,找找关键call,结果成功了
就这么简单。
2.设置api断点,运行程序,读取文件,前往401000处解码段。然后查找ascll码找到关键条,直接下断,去除我们之前的api断电,然后运行看看,右下角出现了对应我们输入用户名的真正的注册码,所以我们复制这个码,去尝试一下,我们发现,破解成功。
(关键条没有被加密的情况下)

脱壳之后没办法运行的,说明时出现了一种现象叫做自效验
自效验在打开的时候将自身的某个数据和正在打开的程序进行了一个对比,因为我们使用工具对程序进行了脱壳操作,所以我们的程序在自效验的过程中会失败,导致我们脱壳成功的程序没有办法打开成功,为了是自效验程序正常运行。我们需要使用od ,在它调用api函数的时候对他下断电,让程序先停下来,接着,我们

在这里插入图片描述
这之中然后追踪这个函数,我们来到了对比处,将对比处nop之后就可以完成了ok
这是解决自效验问题的第一种方式,后续会对这个部分进行完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值