吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7595|回复: 22
收起左侧

[原创] 一些记得的防破手段(附强关机例子)

  [复制链接]
虚无空幻 发表于 2017-8-31 20:35
本帖最后由 虚无空幻 于 2017-9-2 18:14 编辑

很长时间不玩破解了,由于技术有限,所以以前一直在搞手段,而不是技术...
感觉再不拿出分析,就会彻底忘光了
这里具体的源码就不分享了,野路子就不丢人了
1.反沙盒
很多人分享过,但是那些方法都不咋地.而且兼容性特别的差.
我得出的方法就是 直接获取硬盘硬件序列号. 反正不是vbox 就是vmxxx之类的.基本99.9%的检测出来 哈勃 千里眼 虚拟机全能检测

2.反附加
加壳的反附加其实就是修改ntdll的两个函数.使其退出或者崩溃.你可以附加一个简单程序,在栈区就知道是哪两个函数.
但是附加过猛壳,一般只要还原两个函数的代码就好了.
所以此时可以不停的检测这两个函数是否被还原就好了


3.反加载+反调试
(1)利用加密参数启动自身
(2)启动进程并不退出,而是参与一部分工作.(可以是防破工作)
流程:检测启动参数->解密启动参数并核对(参数信息一般包括自身md5,时间戳等)
我以前想过主线程和防破解线程共同参与一个内存.然后两个进程互相通信.通过各自的时间戳就知道是否正在被调试.
破解者不太可能同时调试两个进程....

4.dll的反调试
我用的内存加载方式,缺点就是兼容性.

5.强退
简单代码:
                sub esp, 0xf1f1f1f1
                mov eax, 0xF1F1F1F1
                jmp eax
或者
                mov ebp, 0
                mov esp, 0
                jmp esp

或者卸载自身NTdll,不太建议退出这块用复杂的代码,调用函数越多越容易被逮到.
可以调用函数,此时用到以下NTDLL防破方法

6.NTDll防破
首先判断系统,我记得只要分开判断 xp win7 和win10 然后是x86和x64 (实际测试可能也就3点不同)
在启动的时候,首先找到最底层的ntdll函数地址(你用到的,比如蓝屏啊,强退,提权等等),然后复制其内存代码,搞块内存给权限.
ntdll防破进化过程
第一代使用的是复制ntdll的运行模块内存
缺陷:如果在底层设置内存访问断点,就会暴露方法
第二代使用读取其他进程内存ntdll的代码
缺陷:WriteProcessMemory下段的人较多,好像还有其他种种原因,后来代码也被我放弃了
第三代使用映射内存
过程听上去简单....首先内存映射系统ntdll.dll,然后遍历出指定函数所在的偏移.然后申请执行内存.复制映射代码过去.执行完填充这块内存(防止被发现)
6.关于几点注意 针对c++
(1)类虽然方便,但是所以数据写在对象里,可能会被一锅端
(2)防破解写在一块,容易被一锅端,单独线程,又容易被线程暂停导致直接失效(而且直接停留在创建线程函数,就可以知道反破解前后位置)

7.程序通讯
上面方法说过,自己启动自己,应该和qq有点像吧. 然后是自己监视自己.两个进程互奸,同生共死
接下来两个进程应该互相通信.通过多种手段通信.来达到不被一锅端
(1)两个程序互相远程读写内存,我用的方法是传入加密启动参数包括自己创建的新内存地址
(2)全局原子
(3)send recv
(4)管道
....

8.如果检测到被调试了,做记录
使用修改和读取文件时间的方法.用的人很少.很少.我没见国内软件用过...
最好改个大多系统自带的文件.尽量不要改自己,你懂得

9.远程执行
也是以前的思路试验过的,但是有了ntdll防破的方法,我就放弃了.不过也可以参考下.
首先是ntdll的函数地址是所有运行程序通用的.那么先定位自身ntdll地址.然后转汇编注入所有远程程序.(比如关机)
缺陷就是权限.xp没问题.win7+的话只有正常的第三方程序可以注入成功. 所以注入所有程序直接关机算了.....



补充: 附一个ZwShutdownSystem强制关机例子.是用上面的ntdll防破来完成的. (没加壳没加密.测试看下效果)
MemoryMap.rar (168.87 KB, 下载次数: 43) (试下ZwShutdownSystem下断)



/////因为是启动自己需要加密参数,所以OD无法直接加载打开.  然后又加了防附加. 我自己是想不出有什么办法可以调试. 只能一步步的去研究怎么解密过程之类的.难度应该非常大

还有很多细节,和方法.具体就不写了.主要的就这些吧.忘了不少...

免费评分

参与人数 12威望 +1 吾爱币 +26 热心值 +12 收起 理由
抱书人人 + 1 + 1 谢谢@Thanks!
Hmily + 1 + 10 + 1 用心讨论,共获提升!
你与明日 + 3 + 1 又一个玩Zw函数,说真的 Zw函数真好玩
Virgo之最 + 1 + 1 用心讨论,共获提升!
qas525 + 1 + 1 我很赞同!
anye1998 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xiaofengzi + 1 + 1 热心回复!
Alonc + 1 + 1 用心讨论,共获提升!
a君莫笑 + 1 + 1 用心讨论,共获提升!
43701558 + 1 + 1 热心回复!
赖哥 + 3 + 1 思路挺好的
dlweixiu + 2 + 1 不错的思路,比给代码强,思路很重要!!!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 虚无空幻 发表于 2017-9-2 09:44
MAchilus、 发表于 2017-9-2 03:35
在哪里?  你以前发过的帖子吗~

这个帖子更新的 MemoryMap.rar .是个ZwShutdownSystem强制关机的例子.使用了我提到的ntdll防破,你可以试下断点
strnghrs 发表于 2017-9-5 09:46
我的强制退出方法:
用机器码什么的进行运算,算出来的结果赋值给指针,然后往指针所指区域填数。只要指针所指的地址足够大或足够小,就会退出。
久乐 发表于 2017-8-31 20:49
呱呱生 发表于 2017-9-1 01:30
很好的教程,支持
fq645122 发表于 2017-9-1 08:06
说的不错,加油
MAchilus、 发表于 2017-9-1 08:08
很强的脑洞,如果有例子就更牛逼了
hlh2518 发表于 2017-9-1 08:34
经验好贴,谢谢分享
Jversao 发表于 2017-9-1 09:17 来自手机
潜水学习
 楼主| 虚无空幻 发表于 2017-9-1 10:36
MAchilus、 发表于 2017-9-1 08:08
很强的脑洞,如果有例子就更牛逼了

找到以前的例子,你去试试吧.
w24653 发表于 2017-9-1 12:55

很好的教程,感谢楼主。
影视专业 发表于 2017-9-1 14:28
谢谢分享,收藏啦
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-19 14:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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