学破解论坛

 ★找回密码★
 ★立即注册★

QQ登录

只需一步,快速开始

查看: 2546|回复: 119

[原创破解图文] 易语言信息框+基础破解+写call

  [复制链接] |关注本帖

  离线 

签到天数: 21

该用户今日未签到

发表于 2016-12-13 22:59 | 显示全部楼层 |取消关注该作者的回复

马上注册,深入学习!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 千里冰封 于 2016-12-14 21:21 编辑

第一步:易语言写程序
1.1.png
双击“按钮”添加如下代码
1.2.png
然后  点击菜单【编译】--->保存    (注:我保存的文件名为:33.exe


打开程序,运行一下
1.3.png
程序运行正常,只有输入“qianlibingfeng”    才会弹出信息框“注册成功”,   否则提示“注册失败”。


第二步,OD破解----(输入错误依然提示“注册成功”)
技术源于 Shark恒
打开OD,点击菜单【文件】-->【打开】---打开33.exe   (注:  OD载入  编写的程序)
2.1.png
打开之后,程序自动停到了这里,然后按F9(或者点击箭头所指的“▶”这个符号   或者 点菜单 【调试】--【运行】),让程序运行。

我们在编写的程序里,随便输入几个字符,提示“注册失败”
2.2.png
此时,我们按F12(或者点击“││”),让程序暂停
2.3.png
然后我们点击箭头所指的K,或者按Alt+K,或者点击菜单【查看】--【调用堆栈(zhàn)】我们发现,里面有提示“注册失败”的信息。
MessageBoxA差翻译可知MessageBox是信息框的意思。
2.4.png

调用来自=krnln.10068337   这是程序领空。标志:krnln

调用来自=user32.77D9EAC9  这是系统领空。标志:user32



在箭头所指的那一行,右击,选择【显示调用】
2.5.png
此时程序来到了,箭头所指的位置,我们按F2(或者右击选择【断点】--【切换】),下断点。
下好断点之后,让程序运行起来(按F9),当我们再次输入字符,点“按钮”后,程序会暂停在我们下断的位置。
2.6.png
此时,我们按一次F8(单步步过)----   (多谢Shy大神的指正注:按F8可以让程序去执行一行代码,但是不进入call的内部
2.7.png
我们发现,我们断下位置的call,作用就是调用 信息框   
我们点击确定,此时程序又处于暂停状态了   (注:只有暂停状态,才能一步一步按F8进行跟踪调试)


接下来我们可以一次次的按F8,直到返回上一层call调用。
或者点击菜单【调试】--【执行到返回】,这里我们选择此步骤
2.8.png
运行这个菜单后,程序到了这一步,我们按F8,执行这行代码。


在这里提示一下:call 就是调用的意思,call是可以嵌套的。比如,call 子程序1 ,而子程序1里面又进行了  call 子程序2 。当子程序2运行结束后,就要返回到  子程序1 ,继续执行里面的代码,子程序1执行完毕后,就返回到 call 子程序1 下面的代码,继续执行。
0.png

2.9.png
仔细看来到的位置,1002CDDE   多么熟悉的身影,就是刚才堆栈区的提示的,【返回到****】的位置

但是这里并不是关键call ,因为没有关键跳。  更重要的是,没有代码区的,注释栏里面,没有找到“注册成功”,“注册失败”这样的提示文字。
这里不是关键位置,那么我们继续返回,上一层的call 调用(按F8一步步直到返回,或者点击菜单【调试】--【执行到返回】然后再按一次F8,返回到上一层。提示:执行到retn这行代码的时候,堆栈区,都会提示返回到的位置
2.10.png
看图不多说,继续按F8,回到上一层call。返回之后我们找到堆栈区提示的2个地址
2.12.png
2.11.png
这次理解堆栈区那句【返回到***来自***】的意思了吗?

这次我们找到了提示“注册成功”“注册失败”的代码了。那么接下来,我们做3件事
第一件事,爆破
我们发现提示“注册成功”的代码在提示“注册失败”之前,按着电脑的逻辑,应该是先执行前面的代码,后执行后面的代码。那么,为什么没有执行前面的代码,直接提示了“注册失败”呢?答案只有一个,“注册成功”被跳过去了,么有执行,那我就要找到这个跳转,让它不去跳。
我们在提示“注册失败”这里下一个断点(选中这一行代码,按F2)
2.13.png


让程序运行(F9)起来,然后再次输入错误字符,程序就会断到,我这次下断点的地方。
2.15.png


程序果然,在我们下断点的位置,暂停下来了。说明我们找的位置是对的,如果找错了,那么就不会在我们下断点的位置暂停下来。(此时我们第一次下断点的位置,已经可以取消了。)
取消断点如图:
2.16.png
2.17.png

言归正传,我们继续找,是那一句代码跳过了“注册成功”
2.18.png
看图,我们发现,原来是这个   je 33.004094C1 代码 在作祟,导致了跳过“注册成功”  (注:je 是条件跳转--意思是结果为0则跳转,jmp是无条件跳转。条件跳转有很多,这里不一一举例,遇到再说,大家可以去网上搜。)(注释:OD中红色箭头线,代表跳转成立。

现在我们找到了罪魁祸首,那就好办了,直接把这行代码给nop掉,就行了。
在这行代码上,右击  ---【二进制】---【用Nop填充】
2.19.png
好了,保存吧,保存流程如下:①选中修改的代码(可以多选,不要少选),右击--【复制到可执行文件】--【选择】
在弹出的心对话框中直接   右击,选择【保存文件】
ok 了,现在运行一下,这个新保存的程序,是不是,随便输入什么字符都能提示“注册成功”了


现在我们要做第二件事,找到真正的字符串“qianlibingfeng”


2.20.png
刚才我们找到的je跳过了“注册成功”我们把它叫做关键跳   
而关键跳上面一般就是关键call  (95%的关键call是不会被跳过去的所以箭头所指的call才是关键call
这个关键call做了什么事情呢,它真的是关键call吗,如果是关键call,那就必然会被执行,我们可以在这个call的位置下断(F2)
(F9)让程序运行起来,然后输入错误字符,点击“按钮”
2.21.png
我们发现,果然断在了关键call这里。那我们按F8,一步步跟踪看看
2.22.png
2.23.png

好了,废话不多说,其实我们早就找到了正常的字符串,多跟踪,多观察,更加确定了我们找到的字符串的正确性,也培养,认真的习惯。


接下来做最后一件事,写call。

0040942E    55              push ebp
我们看这一行代码,机器语言55 对应汇编语言 push ebp,这一般就是call [***],这个 [***] 的程序的入口.它的作用,也是非常有用的。以后再讲。现在我们还是老规矩,返回到这个子程序的上一层call调用。
怎么返回到上一层,小伙伴们,开动脑筋,我在上一层等你们呦

3.1.png

我们来到上一层,找到了上一层的call
1002CE5B    FF55 FC         call dword ptr ss:[ebp-0x4]              ; 33.0040942E


我们在这个call上下个断点,然后运行程序,再次输入错误字符,点击“按钮”  
3.2.png
程序果然断在了这里。
我们发出,call调用的是  0040942E  这个地址的程序,那我们在用易语言写call之前,可以用call测试工具,测试一下。


3.3.png
测试工具大家可以去百度搜,或者下载我提供的。

我们发现,测试成功了,不用点源程序的“按钮”,依然可以起到和点击“按钮”一样的作用。
当然写call不仅仅是为了这样哟。我这里只是抛砖引玉。

好了,我们开始用易语言写call
3.4.png
新建一个程序,添加一个按钮控件,然后双击这个按钮,开始写代码
3.6.png
因为我们要用到汇编,所以开始写之前,需要添加一个汇编模块,这里我用 的清风汇编模块,还需要获取程序进程,我 用了外挂海的模块
易语言代码编写如图。解释如图。不明白的可以问我。
写好之后,调试运行一下。
先打开原程序,然后点易语言菜单【运行】--【运行】
4.png
ok,一切正常。编译即可。不在赘述。


结尾在加一条提示:在OD中,retn代表返回,同时代表,这是一个无参call。retn 4 表示有1个参数,retn 8代表有2个参数 。retn 10代表有几个参数呢?小伙伴呢,想一想? 提示:retn后面的数是16进制。
答案:4个参数
解释一下,看图吧,我先用易语言简单写了一个程序,方便观察。
1.1.png
1.2.png
1.3.png
非常简单的易语言编写,然后编译出来,我们用E-Debug看一下按钮事件的地址
我用的  独立编译  ,程序名为111.exe
3.3.png
我们记下事件地址:00409600    (注:这是按钮事件,不是子程序1的入口呦)


我们用OD载入
3.4.png
让程序正常运行起来了
我们找到00409600这个地址,并下断点。
3.5.png
看图不多说。此时我们发现了,有用的字符串“nihao”,"qianlibingfeng"
那我们就不要刚才的断点 了,直接在提示字符串的地方下断点,(或者提示字符串的程序段首,下断点)
3.6.png
我们找到了   子程序1   
3.7.png
看图,不多说。自己操作一下,多体会体会,很多东西,认真才能发现
3.8.png
为什么这里不是子程序3的入口呢,这里又是谁呢?
3.9.png
到这里基本就可以确定retn后面 数值的作用了。
剩下的2个,希望小伙伴们去验证一下,印证心中所想。







补充内容 (2017-2-5 14:30):
关于retn n 代表几个参数的问题,其实retn n的本质只是在进行堆栈平衡并返回到调用语句的下一行代码,add esp,n 也是一种堆栈平衡的方法。破解之路要走的更远,可以看看罗云杉写的Windows 32位汇编语言程序设计。

call.zip

1.26 MB, 下载次数: 30, 下载积分: HB -5

密码是xuepojie.com

评分

参与人数 36威望 +1 HB +91 THX +14 收起 理由
Asm + 1 [快捷评语] - 分享精神,是最值得尊敬的!
Xkiro + 1 [快捷评语] - 2017,让我们17学破解!
whzshenqiang + 1 [快捷评语] - 分享精神,是最值得尊敬的!
13178489831 + 1 [快捷评语] - 2017,让我们17学破解!
330190725 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!
叛逆ぁ安染 + 1 [快捷评语] - 2017,让我们17学破解!
zuohaoda + 1 [快捷评语] - 2017,让我们17学破解!
hzcdong + 1 + 1 [快捷评语] - 2017,让我们17学破解!
haier8917 + 3 + 1 这篇教程不错,很适合新手学习
万能的群主 + 2 + 1 确实让我眼前一亮,学破解论坛可以学习很多
雪碧cc + 1 + 1 [快捷评语] - 2017,让我们17学破解!
墨白 + 6 + 1 评分走起
yale + 1 附件形式上传教程,为后来学习者保证了资源稳定性,额外+10HB,感谢!
892644330 + 3 + 1 2017,让我们17学破解!
endbook + 1 分享精神,是最值得尊敬的!
1434948256 + 1 吃水不忘打井人,给个评分懂感恩!
dingwang1 + 1 吃水不忘打井人,给个评分懂感恩!
木木大大 + 1 分享精神,是最值得尊敬的!
wangxp + 1 评分=感恩!简单却充满爱!感谢您的作品!
xlichip + 1 吃水不忘打井人,给个评分懂感恩!
Satan + 1 吃水不忘打井人,给个评分懂感恩!
雪花公子 + 1 分享精神,是最值得尊敬的!
richard1122 + 1 分享精神,是最值得尊敬的!
风筝 + 1 附件形式上传教程,为后来学习者保证了资源.
明知o故犯 + 1 分享精神,是最值得尊敬的!
尖尖的小白牙 + 1 分享精神,是最值得尊敬的!
playcs520 + 1 分享精神,是最值得尊敬的!
逍遥枷锁 + 2 + 1 分享精神,是最值得尊敬的!
peter_king88 + 1 分享精神,是最值得尊敬的!
hackxxx + 5 + 1 真细心的教程,感谢好心人
mxx852 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!
wswwj + 2 吃水不忘打井人,给个评分懂感恩!
刘小徐520 + 6 + 1 评分走一波!
LYQingYe + 6 + 1 吃水不忘打井人,给个评分懂感恩!
Shy + 1 + 1 分享精神,是最值得尊敬的!
Shark恒 + 1 + 30 + 1 评分=感恩!简单却充满爱!感谢您的作品!

还有更多人参与评分,点击查看全部!

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 23

今日第4个签到

发表于 2016-12-13 23:40 | 显示全部楼层 |取消关注该作者的回复
真不错,讲的很细致。我相信肯定会帮助很多人~ 精华走一波。建议对最后易语言汇编部分再稍稍讲解一下,有点一笔带过了。(模块中用到的函数)

评分

参与人数 1HB +1 收起 理由
Asm + 1 MessageBox是信息框,那弹出的子窗口是什么呢恒大大

还有更多人参与评分,点击查看全部!

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 1

该用户今日未签到

发表于 2016-12-14 00:17 | 显示全部楼层 |取消关注该作者的回复
另建议写源码,不建议写模块,增强一下自身的E水平,,你这样调用大量模块的话会使程序运行速度变慢和体积增大,,坐等源码级写法
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 21

该用户今日未签到

 楼主| 发表于 2016-12-14 10:56 | 显示全部楼层 |取消关注该作者的回复
Shark恒 发表于 2016-12-13 23:40
真不错,讲的很细致。我相信肯定会帮助很多人~ 精华走一波。建议对最后易语言汇编部分再稍稍讲解一下,有点 ...

谢谢恒大的支持,易语言我也是初步,努力学习一下,后期用源代码写出来,尽量不用模块
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 21

该用户今日未签到

 楼主| 发表于 2016-12-14 10:58 | 显示全部楼层 |取消关注该作者的回复
Shy 发表于 2016-12-14 00:17
另建议写源码,不建议写模块,增强一下自身的E水平,,你这样调用大量模块的话会使程序运行速度变慢和体积增大 ...

谢谢Shy大的支持,努力向不用模块的目标前进

点评

学破解论坛的学习氛围还是不错的吧  详情 回复 发表于 2016-12-14 12:00

评分

参与人数 1HB +1 THX +1 收起 理由
Shy + 1 + 1 分享精神,是最值得尊敬的!

还有更多人参与评分,点击查看全部!

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 23

今日第4个签到

发表于 2016-12-14 12:00 | 显示全部楼层 |取消关注该作者的回复
千里冰封 发表于 2016-12-14 10:58
谢谢Shy大的支持,努力向不用模块的目标前进

学破解论坛的学习氛围还是不错的吧
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 4

该用户今日未签到

发表于 2016-12-14 12:21 | 显示全部楼层 |取消关注该作者的回复
mark一下,再详看
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

该用户从未签到

发表于 2016-12-14 13:01 本信息由手机发布 | 显示全部楼层 |取消关注该作者的回复
讲的不错  谢谢分享
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 1

该用户今日未签到

发表于 2016-12-14 13:10 | 显示全部楼层 |取消关注该作者的回复
千里冰封 发表于 2016-12-14 10:58
谢谢Shy大的支持,努力向不用模块的目标前进

不过还是问一下 retn 4表示有1个参数是为什么?4在16进制和10进制中也是4啊?那么原则上来说是有4个参的,怎么到你这有只有1个了?
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 3

该用户今日未签到

发表于 2016-12-14 13:13 | 显示全部楼层 |取消关注该作者的回复
讲的很详细啊
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的逆向分析文章、逆向分析视频、破解补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识,所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者其他任何非法用途!否则,一切后果请用户自负!


联系QQ|联系Email|手机版|小黑屋|FAQ|Vip破解教程|学破解论坛 ( 京公网安备 11011502002737号 | 京ICP备14042738号-2 )  

GMT+8, 2017-2-24 14:04

快速回复 返回顶部 返回列表