Shy 发表于 2016-7-20 22:22

易语言Patch机器码+无限试用+爆破方法

本教程由热情洋溢的木木不哭赞助播出(“哎呀我摔倒了要漂亮姐姐亲亲才能起来{:5_187:}”)

逆向前言:程序通过time.tianqi.com进行时间判断,通过时钟校验写入的时间,运算出结果判断是否试用到期等
由于此程序是易语言非独立编译的,所以找按钮事件需要去10001000,字符串查找需要到E原体,,,所以我们先来改机器码

机器码部分:
机器码的组成大概有cpuid+网卡号,所以他的算法部分我们不讲,我直接说怎么找到取机器码的点,然后修改它

首先下按钮事件FF 55 FC 5F

然后我们走进这个call,注意看eax的值(取机器码部分跳过,直接到结果地址)

很明显我们只需要修改此时eax的值,就达到了Patch机器码的目的,机器码一共有10位数字,然后我们补码即可,,,

但是补的机器码是固定的,所以我们需要借助易语言写内存,不过问题来了,如果用易语言的话我们需要对时机有所把握,程序在启动时就会进行运算,如果等运算完毕再修改没有意义
所以等会我提供两个思路给大家,先来看源码怎么写,,,

首先创建一个dll模版,然后这样写,用的精易模块,我先来解释下这几句代码的意思
首先是循环取10次随机数字,然后把取的数字放到变量里面,最后写内存字节集,也就是补码
那么达到的效果是怎样呢?我们来试验一下



首先我把变量放到一个固定的内存地址当中,补的机器码也是调用这个内存地址的内容,然后被赋值,即可完成我们的Patch操作

但是这样写dll补丁有一个缺陷,时机不好把握,所以我提供以下几种方法
1.写dll注入器------注入器创建并运行原程序,然后将原程序暂停并注入dll,最后将进程取消暂停即可完成(如果带有Hook是最好)
2.IAT修改------ 将此dll导入IAT,使dll在程序运行时自动加载
3.dll劫持------ 这个方法比较简单,dll劫持源码挺多的,但是我个人不喜欢

以上我只说前两种方法,直接下载dll注入器

第一个方法就直接点注入,第二个方法直接点注入到导入表即可,是不是挺简单呢?但是如果你不喜欢这个注入器,想要个性化那就自己写一个吧
需要注意的是一定要让注入器运行程序,否则等程序完全跑起来再注入就无效了,至少我还没见过你们那些所谓的FZdll注入有什么卵用,,,

无限试用:
刚讲了怎么Patch机器码,那么我们来讲怎么无限使用,我们看按钮事件

首先是判断是否存在这个zcm.ini文件,然后判断是否存在内容

如果不存在就获取现在的时间并写入

当我们再次运行,按钮事件被断下,所以我们跟进来
**** Hidden Message *****

chengxueli 发表于 2016-7-20 23:14


留下爪印。穷的瑟瑟发抖

hyeh612 发表于 2016-7-20 22:55

看上去很复杂哦!

wb2008 发表于 2016-7-21 08:54

不知道是不是源码

Shy 发表于 2016-7-21 21:09

dll注入器放一份:

hsrlzg 发表于 2016-7-22 12:37

学习一下····

xingan 发表于 2016-7-23 03:59

好厉害的样子

chenjinghappy 发表于 2016-7-24 00:50

楼主幸苦了 {:5_116:}

33400 发表于 2016-7-25 09:27

围观注入器~嘿嘿

yqzlh520 发表于 2016-7-25 10:12

谢谢分享   
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 易语言Patch机器码+无限试用+爆破方法