第五part:合并和加壳我们的成果。因为你们总不想一下子就被反作弊的人通过反汇编你的exe看到你的修改思路而闪电般地封了你的作弊器吧,所以就需要请保镖了。这些保镖最强壮的无非几位Asprotect(兼容性好难破解)、Themida(老驱版和虚拟机版都很好只是与杀软特别是卡巴斯基格格不入)、XtremeProtector(多态解码、繁花——即干扰分析的垃圾指令、反dump、反attack debugger等效果一流只是解码有点慢!)、Vmprotect(一虚拟机,最大用途对关键函数进行模糊化,严格不算一个壳,特别对OEP处理后查壳工具就废了,但是躲不过经验的法眼,可以加壳上壳而且非常方便,速度还可以),加壳后可能机器上的杀软要狂叫有病毒、木马之类的,这时就需要用CDS SS V1.0 beta1来做一下免杀。再打壳之前有一步必须先做,就是用一个exe捆绑机把作弊器和补丁程序打包为一个exe文件,以后执行该文件它就会自动把文件解出来还原然后自动执行,捆绑机著名的有PEbundle等,但鉴于PEbundle不是十分好用,所以这里推荐一款更为好用的FilePacker,它可以打包之余指定解包后自动执行哪些程序执行时是否隐藏这些程序的窗口界面等还有程序结束后是否自动删除,但是该FilePacker做出来的捆绑东东有个弱点就是可以直接用winrar解压!所以我们再加一步用Thinstall对FilePacker做出来的东东压缩而且可以用Thinstall的 link->splah screen来做个好看而且迷惑反作弊者的启动画面诱导他们去破解捆绑程序而忽略解包出来的真正程序(比如我就用了一个小鬼仔的图加上一个注入器的界面用 mspaint.exe合并一下做成一个bmp文件再用Thinstall的splash screen功能做个淡入渐出的启动图而且把注入器图右上角的那些_ □ X 全部用mspaint.exe搞成灰色以假乱真而且Thinstall的splash screen里面要选只要点图片一下就自动退出图片的选项让人看起来更有趣更真实),由于Thinstall在看学论坛有脱壳脚本——虽然只是可以脱出主程序,但是我们也不想让其他人知道我们用了Thinstall来加壳,那么怎么办呢?我们可以查看PeID2006的userdb文件里面搜索 Thinstall看看Thinstall壳的特征码是什么,找到原来是靠识别Thinstall壳入口点即EP附近大概10来条语句来达到辨认 Thinstall壳的目的的。因此我们打开OLLyDBG调试器,按Ctrl+O键,选择我们用Thinstall加过壳的exe文件,左键点击第8句 sub eax,1aa7因为这句的机器码(其左面的16进制数值)刚好是5个字节2d a7 1a 00 00所以刚好够写一个jmp语句所以就改它吧,随便记下sub eax,1aa7下一行的地址以便等一会返回,那么现在来找exe文件的空闲地方鬼佬叫这为hole即空洞——没有执行代码的地方通常是一连串的00—— 如前所述在OllyDBG中按Ctrl+B随便输入一串00回车找到了空白处,随便用键盘直接输入一些无用的语句比如说xor esi,esi(因为这个esi开始时一直是等于0的所以对它进行操作不会破坏原程序的平衡)回车然后就输入jmp XXXXXXXX(XXXXXXXX是刚才记下的地址),这样一来就把Thinstall壳的特征码给改变了(多了几条无用语句嘛),这时分别对刚才在 OLLyDBG中改过的每一条语句右键单击选择复制到可执行文件—>*选择部分,每条语句都做过一遍之后用右键单击弹出的左上角有大写D字眼的窗口中的汇编码,选择保存文件问是否覆盖时选是OLLyDBG就会自动保存你刚才修改过的地方了,原来的exe文件OLLyDBG会自动把它备份为原程序所在目录下以.bak为后缀的文件的。好了现在再用PeID2006来查看这个Thinstall打壳的文件就会发现什么都找不到或者乱报一个其他壳出来了从而达到了以假乱真的目的。还有需要提醒的是不管exe文件或者DLL文件加壳也好还没有加壳也好都最好用LordPE把它们的区段名去掉然后把各区段属性改成一样这样可以托慢脱壳者的脚步让他来猜测每个区段的用途和不能通过看区段名知道加了什么壳(比如Themida就很喜欢把自己的壳所在的段名叫做 Themida生怕没有人知道一样也可以顺便做做广告)。注:LorPE使用说明:第一次使用LorPE时应该打开LorPE电Option按钮,点 OK,点exit按钮关闭LorPE这样做主要是让以后鼠标右键单击可执行文件(如DLL和exe等)弹出的菜单中可以有Load into PE editor(LordPE)选项方便我们直接调用LordPE的PE格式编辑窗口而省却好多麻烦;右键单击可执行文件如exe文件选Load into PE editor(LordPE),弹出了PE编辑窗,点section(意为区段)按钮,Name标题下的就是区段名称,flags标题下的就是每个区段的属性,鼠标右键单击某个区段选ed第六part:到此你的作弊器基本已经完成,剩下的就是用RAR打包这个exe文件(因为很多exe文件都不能直接网上传播比如QQ打成RAR方便一点),然后在打包后的RAR文件中添加注悉,再在包中放进 说明.txt 文档就大功告成了。如果不想这个作弊器被人传播得很厉害的话还可以用Acprotect来对这个exe文件进行硬盘ID、cpu信息等认证那么这个作弊器一经在某台机器运行一次之后就只有这台机器可以用而传不出去了除非牛人对Acprotect进行了破解就另当别论了。 g&00x$�Y
zRXxwb
附注:我认识的加壳工具之间的配合使用经验:Themida先打+Asprotect后打(体积大因为用了Themida兼容极差,运行速度一般); Vmprotect先打+Asprotect后打(体积比前者缩小一半多而且安全性好比较推荐,运行速度快,兼容性好);XtremeProtector 先打+Asprotect后打(由于XtremeProtector的多线程解码使得程序运行极慢,但是有些自行改变过数据区数据为动态解码的程序必须用它来打壳就像前面所说的动态解码~bd1523.tmp兼容性能一般),以上3种组合都可以使得直接阅读反汇编码非常困难而且反调试反抓取内存就第2种组合差一点其他都很好,最猛的就是第3种组合但是运行速度最慢,那么速度、兼容、猛度大家自行选择。到最后用FilePacker把补丁、原作弊器等n个文件打成自执行包,再用Thinstall压缩防止直接的winrar解压,再用OLLyDBG修改Thinstall特征码防止被人知道是 Thinstall壳,完成。 ==LG>y.#
h` &GSED
建议:建议DCOO登录器把~bd1523.tmp看看是否可以用Thinstall的猛功能——不解压到硬盘直接在内存执行文件——如果可行则增加被破解难度,而且不可以用Themida和XtremeProtector打壳速度太慢走路又要一顿一顿了,可以试试把主要call到的数据区中的hl函数起始地址通过手工或者工具把它们通通挪到代码区用防改保护起来——如果程序运行当中不需要改变这些数值的话——手工可能工作量太大但是我不知道有没有自动化的工具可以搬走数据区(据我所知Acprotect、XtremeProtector、Themida和Vmprotect这些猛壳都不行)。把 codeXX后面的数值拿掉——如果是为了方便自己查找错误可以把debug版本加上但是发布时应该拿掉。然后查找汇编码中有规律的地方把它弄乱。 PS?@ d>a
F~2eRq
尾声:跟踪过程中得到了一些DCOO登录器的一些信息现在说说对兄弟可能有用:每隔大概45秒——忘记是哪个版本的DCOO登陆器了好像是0.4几吧——忽略一点网络延迟DCOO反作弊客户端会向服务器端发出setinfo _DEAC XXXXXXXXXXXXXXXX(XXXXXXXXXXXXXXXX代表16个字节的可变数值,每45秒改变一次和发送一次,0.27版本好像是26位后来的版本减少了位数一直是16位,可能这个就是服务器识别合法客户端的关键),然后定时(时间是多少我忘了——可以SoftICE对Sleep函数下断点跟踪即SoftICE呼出后输入bpx sleep回车,弹出后按F12就可以从系统函数Sleep领空返回到call Sleep函数的下一条语句上)向DCOO服务器发送你用于登陆DCOO登陆器的用户名以防止狂改名脚本防踢防投票,在CS控制台中可以改变登陆密码—— 命令为setinfo _dcoo XXXXXXXX(XXXXXXXX代表密码),还有就是用SoftICE断Sleep函数可以追到某段代码是DcooLogin040字符串解码(0.40之后的就是DcooLogin040,0.30系列的就是DcooLogin030)用途未知!在解码setinfo _DEAC XXXXXXXXXXXXXXXX 字串时push 了一个joystick 0参数用途也是未知——很多地方都用到了joystick 0——难道joystick 1就可以作弊?!比如反汇编码中你会经常看到这些动态解码汇编语句lea edi,[ebp-2e] stos dword ptr es:[edi] stos dword ptr es:[edi]。。。。。。lea edi,[ebp-2e]就是说把ebp-2e所指向的内存处数值送入edi寄存器然后每执行一行stos dword ptr es:[edi]就抹除4个字节,因此通常这些stos对上的一句call XXXXXXXX就是解码某个字符串的比如name、setinfo _DEAC %s等等。还有就是DCOO反作弊会定时扫描检查是否是system32目录下面的原装opengl32.dll文件,定时搜索gign leet等模型文件防颜色push esi push edi push ebx push dword ptr[ebp-14] push dword ptr[ebp-10] push eax call XXXXXXXX,这里的esi edi ebx [ebp-14] [ebp-10]所指向的内存中都是一些8字节的数值——猜测为模型文件的特征码最后的push eax 中eax指向的是模型文件名(如gign leet等)检查颜色的汇编码好长大伙可以慢慢跟。还有那些反后座力的作弊器DCOO是靠检测它们的程序窗口标题名称的比如什么Antirecoil Universal等。DCOO登录器在挂~bd1523.tmp反作弊模块进hl主程之前它会对cstrike和cstrike_schines目录下面的config.cfg和userconfig.cfg文件进行重写然后读取,所以不要指望修改好这4个文件然后会自动加载你的脚本,需要的话还是要从 CS的控制台里面打exec命令,如果退出登录器它又会把这4个文件写一次,还有就是登录器刚启动时会检查注册表这个没什么作用就不提了。我所知道的暂时就这么多了,其他的留给感兴趣的兄弟们去摆弄了。另外FPE的hook技术真是相当高,它的tt.dll文件是什么进程都可以挂,就算开了 CD4.33.4也可以挂,大多数的作弊注入器就挂不了开着CD4.33.4的cs进程,听说FPE的原理到现在也没有人知道。 f! {�P2=f
6]lApy"ZR;
对于Asprotect、Acprotect、Thinstall、XtremeProtector、Themida、OLLyDBG、 Vmprotect、LordPE、PeID、Process Patcher 等可以到看学论坛工具版找,FilePacker V1.1、VC++6.0和SoftICE就要用google搜索了,我就放FilePacker V1.1的KeyGen、SoftICE V4.05 ForNT版本的XP补丁、SoftICE免反调试检测的改好的系统文件不需要FrogICE等打补丁了、SoftICE命令中文说明书、 UsaMimi_Hurricane、CDD4.33.4无壳版+DCOO注入器无壳版、过DCOO0.51的SC.exe无壳版、作弊器登陆器补丁源代码和木马免杀工具CDS SS V1.0 beta1吧,它们个子比较小。另外SoftICE4.05 ForNT版本+XP补丁比Driver Studio V3.2好用,XP系统就不需要用Driver Studio V3.2这个大东东了,另外再附上用ECC作弊器panda*来讲解PE文件结构和输入表的图文,希望带不懂的人入门。it section header...(意为编辑区段头)把段名删除,把flags改为相同的随便一个数值如E0000040.