易语言程序在中国的用户量还是很大的,广泛用于外挂的开发,和一些小工具的编写,今天我们就来看下如何给易语言程序DIY,这里是用的易语言演示,当然这门技术也是可以应用到任何一门编译型语言中的,只要掌握合适的方法,就可以加以修改应用到其他的语言中,这里一定要活学活用,才能将破解玩6。

------------------------------------------------------------
本章难度:★★☆☆☆☆☆☆☆☆
课程课件:CM_06.zip
------------------------------------------------------------

屏蔽弹窗网址

开头先来个简单的,当我们点击弹出百度按钮时,程序会弹出一个网页,有时候我们在打开其他的一些程序时也总会弹一些烦人的广告,这里我们将学会去除这些烦人的广告,当然这里的方法有很多,最简单的是直接搜索弹出网站的字符串,不过如果程序加密了则搜索不到字符串了,这里我们将使用下断点的方式去广告。

1.DIY的第一步,修改弹窗网址,直接OD载入,点击弹出百度。

2.在Windows系统中一般的弹出网页都会调用【shell32.ShellExecuteA】这个函数来完成,我们就直接下一个断点。

3.运行程序直接点击,【弹出百度】按钮,程序会被断下,直接出这个CALL,到CALL的外部。 

4.出CALL后,果断在断首下一个【F2】断点,直接重载程序,并运行,点击弹出百度按钮。

5.我们直接修改,直接让这个程序返回,这样就不会弹窗了。注意返回后面的返回值,别填错了。

6.直接保存修改,然后运行一下程序,点击【弹出百度】,程序没反应,去弹窗成功。

信息框改成窗体

在这个CM程序中,当我们点击【弹出窗体】按钮时,会弹出两个【信息框】,在这个程序里面我隐藏了一个主窗体,如果不经过修改这个主窗体永远不会弹出来,这里我们就DIY一下,将【弹出窗体按钮】修改成弹出我们的隐藏窗口。

1.OD载入这个程序,选择【Ctrl+G】,输入【401000】 到程序的段首。

2.先来看一下隐藏窗体的代码的样子,如下选中部分,我们需要关注从push 到 add esp,28这一段,还有call 的地址。

3.继续往下找,则会看到易语言的MessageBox信息框,如果找不到,可以用按钮事件来定位到这里,按钮事件这里就不演示了。

4.复制窗体代码,并以二进制方式复制,然后这里需要记下call 位置的这个地址【00401390】。

5.粘贴的时候要注意,断首要保留这是程序的调用约定,每个程序段中必须存在的部分,这里还要注意要记得修改,【call 00401390】,修改完成后直接二进制粘贴即可。

6.在窗体程序的结尾部分添加以下内容,这些也是调用约定,和开头的是成对存在的,如果少了的话堆栈会失衡,程序会崩溃。

7.最后的样子如下所示,我们直接【右键】,【复制可执行文件】,【选择】,【保存文件】就可以了。

最后打开保存后的程序,点击【弹出窗体】按钮,会发现MessageBox弹窗变成了,隐藏的主窗体。

给按钮添加弹窗

打开CM会看到【一个空按钮】,这个空按钮没有任何的功能,这里我们就给它添加一个弹窗,并弹出【https://lyshark.cnblogs.com】。

1.OD直接载入程序,然后去【401000】处,找到一处弹窗代码,这里需要注意的是如果程序中有弹窗代码,你才可以DIY,如果没有导入MessageBox函数,则无法DIY,需要修改导入表的。

2.我们直接复制上面的这段代码,需要注意这里的【call】地址的变化,然后我们定位一下第三个按钮的按钮事件位置,按下【ctrl + B】,直接输入定位特征码,然后在call的位置,下一个【F2】断点。

3.运行程序,并点击【一个空按钮】,程序断下,然后按下【F7】进入到CALL的内部。

4.将刚才复制的代码直接粘贴到这个位置,然后修正下call的调用地址。

5.接着找一块空旷的区域,并创建一个字符串,按下【ctrl + B】,然后输入如下字符串

看到一堆DB,直接【右键】,【分析】,【从模块中删除分析】

6.选中【二进制】编辑,然后写上自己的网址,别忘了最后添加一个00,标志着字符串的结束,并记下【0047F12E】。

7.回到刚才的位置上,改写push指令的地址,也就是弹窗的字符串。

8.最后选择复制可执行文件,选择所有修改,最后保存文件。

9.最后我们点开这个修改版的程序,然后点击【一个空按钮】,程序弹出了我们DIY的提示框内容。

易语言屏蔽时钟

每一种编程语言都有时钟,如果在程序中加入一些时钟,那我们的OD有时候就无法下断点了,最明显的现象就是我们只要下断点,程序就会自动的跑到断点位置上去,干扰我们的分析,其实这也不算是暗装,只要加入时钟并运行就可能会出现这种情况,下面我们将通过设置SetTimer断点,来实现让时钟停止计时。

1.直接OD载入程序,然后不要运行,如果运行了,就算修改了系统领空的时钟那也无效了,因为时钟是一个线程,跑起来他爹都管不着。

2.然后直接修改系统领空的时钟事件,让其直接返回。

3.这个时候我们运行程序,然后点击时钟,发现时钟失效了,达到了我们的目的。

但是这里需要注意的是,我们修改了系统领空的函数,所以可能也会影响其他程序的正常执行,所以在破解完成后,最好手动恢复代码。

易语言Push 窗体

push 窗体可以用来过一些比较复杂的验证,如下我们有一个程序,默认情况下是不可能登录成功的,此时我们可以是用push窗体法搜索整个程序中的窗体ID,然后分别替换程序的主窗体ID,让程序默认加载替换后的窗体。

1.OD载入程序并运行,这个程序默认无法登录,我们就来DIY一下,把它内部的隐藏窗体全部DIY出来。

2.直接按下【ctrl + B】输入特征码【FF 25】点击确定,下面的一堆JMP就是易语言特有的一些指令片段。

3.上面的一个PUSH命令,就是易语言程序默认的主窗体ID,我们现在要做的就是将这个主窗体ID替换成其他隐藏窗体的ID。

4.到【401000】断首,按下【ctrl + F】查找命令,查找【push 10001】命令,找到后记下【52010061】,继续查找下一个。

5.按下【ctrl + L】,查找下一个相同的命令,并记下它的主窗体ID号码,以此循环往复,直到找到全部的ID为止。

6.在这里我一共找到了3处,分别是【52010061】,【52010065】,【52010071】,好了,将这三个地址分别替换到程序的主窗体上面。

7.分别保存出文件来,如下我保存了三个这样的文件,也就分别对应三个窗体。

8.分别运行这三个文件,前两个正常运行,最后一个有暗装,退出了。

   

写教程不容易,转载请加出处,您添加出处,是我创作的动力!

X86逆向6:易语言程序的DIY的更多相关文章

  1. X86逆向13:向程序中插入Dll

    本章我们将学习Dll的注入技巧,我们将把一个动态链接库永久的插入到目标程序中,让程序在运行后直接执行这个Dll文件,这一章的内容也可以看作是第八课的加强篇,第八课中我们向程序中插入了一个弹窗,有木有发 ...

  2. X86逆向8:向程序中插入新区段

    本节课我们不去破解程序,本节课学习给应用程序插入一些代码片段,这里我就插入一个弹窗喽,当然你也可以插入一段恶意代码,让使用的人中招, 这里有很多原理性的东西我就不多罗嗦了毕竟是新手入门教程,如果想去了 ...

  3. X86逆向5:破解程序的自效验

    在软件的破解过程中,经常会遇到程序的自效验问题,什么是自效验?当文件大小发生变化,或者MD5特征变化的时候就会触发自效验暗装,有些暗装是直接退出,而有些则是格盘蓝屏等,所以在调试这样的程序的时候尽量在 ...

  4. 易语言效率与C++究竟差多少(质数和计算)

    文本首发bIlibili,cnblogs为作者补发,如在其他平台看见本文,均为经允许的盗窃 易语言作为款主打 中文 易用 编程的开发软件.但是很多人都在批评易语言的效率. 我们今天通过 质数和计算 来 ...

  5. 易语言VS杀毒软件:基情复燃,转受为攻!

    这两天在编程领域里,又发生了一件令人瞩目的事情:以易语言创始人吴涛的一篇檄文<tid=370327">让我们一起来对360误报说不!>为序幕.再次拉开了易语言跟360杀毒软 ...

  6. 易语言调用csharp写的COM组件的程序在Win2008上奔溃的解决办法

    易语言调用csharp写的COM组件,除了要注册csharp写的dll之外(由于是.net代码,需要用.net自带的注册工具RegAsm.exe注册,具体注册方法为: C:\WINDOWS\Micro ...

  7. X86逆向1:软件破解入门课【课件下载】

    从本节课开始,我将带领小白入门学习软件破解的相关内容,大佬绕过,以后将会定期更新从最基本的破解知识点开始学习,由简单到复杂循序渐进,难度会逐步提高. 为了防止版权方面的争议,我将自行编写一些破解案例来 ...

  8. 易语言加壳SDK(宏标记)

    转载 http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece76310508c31490797634b87834e29938448e435061 ...

  9. 易语言软件加VMProtect壳的正确方法

    VMP是一款很强大的加密壳,代码虚拟化技术可以很好的保护程序不被恶意修改破J但是很多人不知道怎么给自己的程序加壳,今天给大家晋级下加壳的正确方法 相信很多新手都以为只要把软件直接拖到VMP里重新编译一 ...

随机推荐

  1. LG2467 地精部落

    题意 给出\(n\),求有几个\(W\)形的\(n\)的全排列(震荡) 思路 可以变求出第二个数比第一个数大的,再翻倍就好 设\(f[i][j]\)表示\(i\)个数中\(j\)个数不符合序列 转移时 ...

  2. Qt Delgate的使用 简单说明

    (一) Qt Model/View 的简单说明 .预定义模型 (二)使用预定义模型 QstringListModel例子 (三)使用预定义模型QDirModel的例子 (四)Qt实现自定义模型基于QA ...

  3. koa 实现上传文件

    项目目录: 1.上传单个文件 思路: (1)获取上传文件,使用 const file = ctx.request.files.file (2)我们使用 fs.createReadStream 来读取文 ...

  4. 查找与排序算法(Searching adn Sorting)

    1,查找算法 常用的查找算法包括顺序查找,二分查找和哈希查找. 1.1 顺序查找(Sequential search) 顺序查找: 依次遍历列表中每一个元素,查看是否为目标元素.python实现代码如 ...

  5. pi币--π币--手机离线式挖矿软件--pi中文教程!

    Pi Network派型网络,国外热度很高手机移动式挖矿软件 一个新出的手机移动式挖矿软件,在国外热度很高,国内玩的人目前很少.项目团队成员均来自斯坦福大学,三个创始人斯坦福博士教授,现在处于挖矿第一 ...

  6. 性能测试 | 系统运行缓慢,CPU 100%,Full GC次数过多问题排查

    处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警.本文主要针对系统运行缓慢这 ...

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_4-04 高级篇幅之服务间调用之负载均衡策略调整实战

    笔记 4.高级篇幅之服务间调用之负载均衡策略调整实战     简介:实战调整默认负载均衡策略实战 自定义负载均衡策略:http://cloud.spring.io/spring-cloud-stati ...

  8. sublime的简单配置(解决为什么package control无效)

    1:下载sublime text 3 要到它的官网下载,要英文的. 2:安装sublime的包. 进入sublime按快捷键ctrl+~(~是键盘左上角Esc下面的键). 3:在这里面输入如下代码.( ...

  9. Java集合(4):未获支持的操作及UnsupportedOperationException

    执行各种添加和移除的方法在Collection中都是可选操作的,这意味着实现类并不需要为这些方法提供实现.当我们调用这些方法时,将不会执行有意义的行为,而是通常抛出UnsupportedOperati ...

  10. CentOS下Hive搭建

    目录 1. 前言 2. MySQL安装 2.1 更换yum下载源 2.2 开启MySQL远程登录 3. Hive安装 3.1 下载Hive 3.2 安装Hive和更改配置文件 4. MySQL驱动包的 ...