好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 l223860 于 2025-2-17 01:26 编辑
原文:
破解实战-第一战
https://www.52pojie.cn/thread-197281-1-1.html
(出处: 吾爱破解论坛)
我是一步一步从头开始的,有很多我一开始没搞懂的,也是一步一步解决,有很多可能很低级的问题,对刚学不久的同伴可能有帮助。
由于水平有限,还剩下注册的一关还没有过,希望大佬指点一下我,问题在最下方
1.脱壳:
加载程序后是这样的,
因为我这个调试器一开始有个入口断点所以要运行一下得到下面的图片。
我使用的是ESP脱壳,在pushad上单步之后,右键右边窗口寄存器中的,esp在内存窗口中转到。
下入断点,像我这样就好了。
点几下步过,在ret之后就是oep入口了。接下来我使用了scylla 来脱壳
scylla,按照图片中的步骤脱壳,如果弹窗就点确认,先转储存,之后再修复,修复选择转储的那个文件,Ulock_dump_SCY得到一个这个文件
2.破解
按照原帖子的剧本现在应该是弹出这个窗口了
我们把脱壳之后的软件拉进去之后找一下messagebox来找这个弹窗,以便于破解
找到之后下一个断点,然后运行。之后看到右下角堆栈窗口,是这样的。
一开始是不知道怎么跳转到关键地方的,回顾了一下关于消息窗口作为线索来破解的课程,才想起来,上面一张图片右下角有,
在堆栈窗口向下方找一下,可以找到
0018FB98 005AED3E 返回到 ulock_dump_scy.005AED3E 自 ulock_dump_scy.005B2D86
这个应该是我们这个软件程序调用MessageBox时用于返回程序的地址————————————————————————————————————〉如果理解错了大佬看见了帮我指正一下
右键0018FB98 005AED3E 返回到 ulock_dump_scy.005AED3E 自 ulock_dump_scy.005B2D86
,转到反汇编窗口,这时候已经是提示程序已损坏了。所以我们要在这一句话的上面找,
向上找一找跳跃比较大一些的转跳指令,一般就是关键跳转,找到图片中的跳转。在上方打一个断点然后重新运行。
运行之后在触发消息窗口之前,就触发了上方图片中的事件,可以看到现在默认是不跳转的,我们改成jmp直接让他跳转,跳转发现不再弹窗,
做完这一步之后,出现了问题,我的程序在运行任务管理器看得到,但是右下角并没有程序在运行。所以我先保存一下这个程序,我也没办法直接用调试器打开它,所以我要附加一下才行。
打开软件之后,右下角双击显示如图
这里要用到,这个:ExitProcess,因为退出程序,我们先搜索一下
下断点,然后还是和刚刚一样的找法找到返回程序的位置,我的程序因为刚刚保存了,名字为1.exe所以右下角是1
我们进去找找他上面的跳转,右键他然后在反汇编窗口显示,然后往上找大跳转,这里有一个大跳转,可以尝试一下,先打上断点然后测试,我喜欢在cmp打断点
果然在执行退出程序前进来了,由于跳转不执行,我直接改称jmp就好了
现在就可以正常打开了,由于我调试器还是电脑有问题,我还是保存了。
接下来解决该密码的问题
由于程序是易语言写的所以我们找特征:FF55FC,由于我一开始不会找,我这里附上怎么找,OD我没用因为我附加不了这个,也打不开这个
出来了挺多个的,可以一个一个试一下,看看哪一个是要用的
打好断点之后点一下我们要破解程序的 p 来破解该密码,如果断点打好了会卡住,然后再进行分析就好了,还是刚刚在栈里面找返回的步骤我就不重复演示了。
我没找到返回我也不知道为什么,——————————————————————————————————————————————〉求大佬指点一下
但我在栈中找到了唯一一个来源于我程序的地址,因为刚刚保存了所以现在我的是 2.exe
然后右键再转跳到反汇编里面去
一进来就发现两个跳转,看来是找对了。我们打上断点然后运行试试看。
可以跳转,所以我们尝试让他不跳转,je是判断zf是否为0的我们改称jne,这样就把结果反过来了。
现在就可以成功该密码了。
3.我的问题:这里是判断是否激活的,按照原文说的,每一次重新加载都是不会发生变化的。由于我无法直接重载,只能
重新打开再附加。一下是我两次打开时的cmp语句,他们不一样。
这是原文:
原因是否是因为我重新打开程序再附加呢。
|
-
-
免费评分
-
查看全部评分
|