欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

一段win commander 5.1的smc破解代码 (2千字)

一段win<SPAN CLASS="pediy"> commander 5.1的smc破解代码 (2千字)

这个最好用的工具在0828出的新版5.1,前天我才知道,0day已经出来了,还是想自己还破一下~~~
  还是aspack压的,trw 的 pedump就可脱壳,文件的CRC校验很烦,没时间。事实上可以用smc搞定。
  在壳中有一段rep movsd代码,向下不远是个判断是否解压完毕的语句,在这之后让他jmp到空地去(事实少的可怜,可以加一个段),代码如下:
(机器正在疯狂下载中,没机会再改了)

0167:005CF5D0 60              PUSHA             ;保存寄存器 
0167:005CF5D1 E800000000      CALL    005CF5D6
0167:005CF5D6 5D              POP      EBP
0167:005CF5D7 89E8            MOV      EAX,EBP
0167:005CF5D9 2C36            SUB      AL,36        ;取得数据区的首址。原来是把数据放前面,代码跟在后面,这样不大好,最好顺序换一下,然后add al, XX;另,最好是对eax操作,避免进位丢失。
0167:005CF5DB 89C6            MOV      ESI,EAX
0167:005CF5DD 31C9            XOR      ECX,ECX
0167:005CF5DF AC              LODSB              ;取长度
0167:005CF5E0 84C0            TEST    AL,AL
0167:005CF5E2 740D            JZ      005CF5F1    ;是否完毕
0167:005CF5E4 88C1            MOV      CL,AL        ;长度到cl, 255字节足够补一段了~~~
0167:005CF5E6 AD              LODSD 
0167:005CF5E7 89C7            MOV      EDI,EAX        ;取目标地址
0167:005CF5E9 AC              LODSB 
0167:005CF5EA AA              STOSB 
0167:005CF5EB FEC9            DEC      CL
0167:005CF5ED 75FA            JNZ      005CF5E9    ;之所以没用rep movsb是因为非法,莫名其妙
0167:005CF5EF EBEE            JMP      SHORT 005CF5DF
0167:005CF5F1 61              POPA                ;准备返回
0167:005CF5F2 6800800000      PUSH    DWORD 8000    ;改跳转处原有语句
0167:005CF5F7 E9B2FBFFFF      JMP      005CF1AE    ;跳回去这样也可以,最好是用jmp ebp+XXXX这样的相对寻址
0167:005CF5FC 0000            ADD      [EAX],AL
0167:005CF5FE 0000            ADD      [EAX],AL

要补的数据区这样来定义,有通用性:
  每个小节第一字节为长度,接下来四字节为要修改的地址,比如要改的004013c4就是C4 13 40 00;再下来就是改后的内容,长度由第一字节决定,一定要数对了~~~ 然后跟着下一段,最后以0为结束标志。
大致如此,对它的CRC这样解决:
  拷贝wincmd32.exe为另一份,随便起个名,比如WC.OLD~~~~
破解时在createfilea前面是传参数,让eax指向你改过的路径加wc.old就行了,这样它就会去读wc.old了,呵呵,真乖给你买糖吃。接下来就随便了,改注册名什么的,只要空间够用,任你怎么作。
enjoy!

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功