楼主: bytehero
收起左侧

[建议] 锁帖吧,谢谢大家支持,发现不具备申请条件。

 关闭 [复制链接]
wcyxj123
头像被屏蔽
发表于 2009-8-26 11:31:21 | 显示全部楼层
先支持下lz希望国产的软件更好
qwqwtianyuan
发表于 2009-8-26 22:26:33 | 显示全部楼层
支持 呀
bugman
发表于 2009-8-26 22:38:25 | 显示全部楼层
原帖由 IllusionWing 于 2009-8-26 00:44 发表
抗逆向可不是加个themida就完事了的。。


那你觉得该怎么对抗呢?
事实上加个TMD壳已经能阻止很多人进行调试了。
虽然TMD也有很多的脚本,但是完全还没到ASProtect壳那样的地步。
VM关键代码?这确实是个头痛的问题,不过掌握了方法,还原只是个时间的问题,虽然不能完全还原到原始指令,但是还原到等价指令完全是有可能的。
据Nooby透露,半自动的还原机已经完成,全自动的还原机也正在努力中。
还有呢?
超强的anti?SOD几乎可以搞定了,再说还有个基于VT的滴水双机调试器,不过要收费。。。
其他的我还真想不到,请赐教。
不过考虑加NoobyProtect到是个不错的选择。

[ 本帖最后由 bugman 于 2009-8-26 22:42 编辑 ]
IllusionWing
发表于 2009-8-26 23:08:43 | 显示全部楼层

回复 23楼 bugman 的帖子

看到您的ID让我想到了d8m...这是题外话。。
我只想表达的是,使用Themida来进行抗逆向是基本没用的。。
说实话。。我也没好的解决方案,所以我写的软件,要不免费,要不开源。
偶尔会写点源码级的混淆(比如字符串翻来覆去)。。
bugman
发表于 2009-8-26 23:20:01 | 显示全部楼层
事实上真要逆你的东西,什么都都挡不住的。
TMD还是很强的,还是能挡住一大批人的。SDK用的好的话,还是有点难度的。
VM区段的处理等等,还是比较麻烦的。
而且,一大批的逆向、内核高手,同样是脱壳高手的,实在是少之又少。包括MJ。
所以说,加壳还是防逆向的最有效手段。
不过自己写多态也好,加花也好,包括你说的在字符串上下功夫也好,防静态分析或许有点效果,不过在动态调试面前,一切都是浮云。
不过自写VM引擎也是个不错的选择,07年看雪的CM大赛,bughoho和ccfer就用过自写的VM引擎。。。

[ 本帖最后由 bugman 于 2009-8-26 23:21 编辑 ]
IllusionWing
发表于 2009-8-26 23:26:48 | 显示全部楼层

回复 25楼 bugman 的帖子

偶自己写脚本虚拟机。不过貌似执行效率低了点。。不过我自己的程序倒是无所谓被不被破解,没破解价值。。
IllusionWing
发表于 2009-8-26 23:29:21 | 显示全部楼层
不过说实话。。跟下API流程,一个程序基本的功能差不多就出来了,至于字符串处理,至少个人认为还是有点用的(不是参数,是内部string)
bugman
发表于 2009-8-26 23:32:43 | 显示全部楼层
原帖由 IllusionWing 于 2009-8-26 23:26 发表
偶自己写脚本虚拟机。不过貌似执行效率低了点。。不过我自己的程序倒是无所谓被不被破解,没破解价值。。


看了你的这句回复,发现我貌似理解错了你上面的意思。。。
你说的"防逆向不能仅仅加TMD",这里的逆向仅仅是指破解吗?
汗,如果是针对破解的话,那么加TMD是远远不够的,最好的例子就是EQ4.12的收费版,就是仅仅加了个TMD,其他的手段一塌糊涂,导致出来第一天,就被LCG组织给干掉了。呵呵,发现理解错了意思,抱歉了。

请教个问题,自写脚本虚拟机是什么意思?|
IllusionWing
发表于 2009-8-26 23:34:48 | 显示全部楼层

回复 28楼 bugman 的帖子

比如java,不是一种原生语言。需要一个虚拟机环境(当然。。java很容易反编译。。直接出代码。。)。类似的,我可以自创一种语言,并且自己写一个执行环境,这样子无疑就为破解又加上了一道难关
bugman
发表于 2009-8-26 23:47:09 | 显示全部楼层
原帖由 IllusionWing 于 2009-8-26 23:34 发表
比如java,不是一种原生语言。需要一个虚拟机环境(当然。。java很容易反编译。。直接出代码。。)。类似的,我可以自创一种语言,并且自己写一个执行环境,这样子无疑就为破解又加上了一道难关


能否具体点?
比如:VM是这么干的:
简单的add语句可以转化为:
vadd:
    mov eax,[esp+4]
    mov ebx,[esp]
    ad ebx,eax
    add esp,8
    push ebx

然后执行类似add esi,11的语句就可以这么做:
push 11
push esi
vadd
pop esi

还有种更简单的实现方法:

mov eax,XX
jmp [esi+eax*x]
算法可以自定义,最主要的是esi所指向的是一张表,而这张表控制着各个语句,RLPACK1.21全保护的code replace就是这么干的。
比如esi指向的值是个DDWORD,前1个DWORD控制着是什么语句,后1个DWORD控制操作数。
比如0000000100004000,其中1代码push,00004000代码常量4000,所以这指令转化为push 4000,等等。。。。

不过这也和VM的各个handler调度类似,只是VM的handler更复杂点,而且VM自己来控制和调度各堆栈值。

不知道你说的脚本虚拟机是什么意思,还是不懂,本人太蠢,理解不了,最好简单的代码描述下,呵呵。

[ 本帖最后由 bugman 于 2009-8-26 23:52 编辑 ]
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-31 18:51 , Processed in 0.092321 second(s), 13 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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