【纯小白】【玩玩破解,写给新人看(第二集、第三集) 】之实践

首先,非常感谢大佬@yyhd 出的系列教程,希望大佬一直出下去,我也会跟着一步一步做下去。
本人真纯小白,没学过易语言,编程语言倒是早些年前学过一点,现在也全忘了,基本上不会了。下面就大佬第二课的教程进行一次实践,其实大佬讲得非常详细了,但我还是出错了,弄了很久才成功,算是做一次记录吧,也是第一次写,不知道会成什么样子,写错的地方,还请各位大佬指点指点。
先对第二集课做一个记录:
使用的是大佬在第三集提供的课程素材---CM1(无壳).exe
打开OD(最好是右键以管理员运行),讲CM1(无壳).exe拖入OD中:

然后,使用插件--中文搜索引擎,智能搜索,基本上会将所有的中文搜出来:

双击“登陆成功”那个中文跳转到汇编代码处,在上面一点找到了je跳转(绿色箭头处):
双击je处的汇编代码,修改为NOP,默认勾选的使用NOP填充可以不动:

点击一次汇编后,看到代码修改成功,再关闭修改代码的框,右键选择复制到可执行文件,应该是两个都可以选,我选了第二个选项-所有修改:

接着会弹出一个选项框,直接选择“复制”,随后会进入到一个修改后的状态,再右键选择保存文件:

就此完成破解了,输入任何数字都会显示成功:

接下来是对第三集的课进行一个实践记录:
使用到的素材为CM3(多次调用).exe,目的是在多次调用call中找到“每扇门”的key。以第一扇门为例,其他类似。
还是打开OD,将程序仍进去,然后中文搜索一波,找到“恭喜您,已打开!”:

在上面一点点找到了jnz跳转,以及一个call,猜测这个就是验证call,所以我在此处下了断点(虽然编程忘了,但这个术语还是有些印象的),在OD里,按F2下断点,然后Ctrl+F8自动步过,然后在程序的第一个框随便输入一个数字,点击“打开一号门”,发现确实在标记的call处断上了:

摁F7进入call,长下面这个样子,在寄存器区域,发现EAX有值为123,我输入的值被存到了EDX中:

进入call后,我不知道如何退出来,就一路F7,发现最终结果显示:密码错误

我大胆猜测这个EAX的值就是第一扇门的key,用123去做验证,按照相同的步骤,在第一个框输入123,果然没猜错,结果提示成功:

按照相同的方法挨着测试,最后得出三个框的密码分别为123,5211214,16888:

到此结束了,虽然有很多还是不太明白,但思路应该是跟着大佬走的,只是我文笔太差,可能已经变味了

THE END
喜欢就支持以下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称