Awave Studio v7.0的破解之SMC--- C-pen

看雪資料發表於2000-12-08

一.    前言: 用SMC去破解ASProtect的保o在是一N痛苦的事,不^既然有人有d趣,那我就碚吧!在底下的文章,我⒓僭Ox者已ASProtect的保o有初步的瞭解,也跟^它,SMC的技巧有概念,最後先申明一c,因ASProtect的多喲嚎s,所以你要用SMC的,一定芊彪s的,希望你有耐心看完K作,也希望本文能δ閿興助。
二.    使用工具: (1)Soft-ICE V.4.01    (2)FrogICE    (3)16M位器(建h使用Hex workshop和Hiew(方便除e))
三.    本文:
        1. ASProtect的保oC制:
          (1) B位址: 我要用SMC首先要克服的就是ASProtect的Relocation,它每次\行      的位址都不一櫻的Code是不擁模誓惚仨先了解ASProtect是如何Relocation的,答案是ASProtect{用GetTickCount函擔悶渲等ギIMAGE_RELOCATIONY中的RelocCount成T,x者有d趣可以去查IMAGE_RELOCATIONY的相PY及蹋詿瞬患釉述。其程式a如下:
    EAX=GetTickCount
    25FFFF0100    AND  EAX,0001FFFF
    EB04          JMP    0051722F
    我改:
    B811110100    MOV  EAX,00011111
    EB04      JMP  0051722F
    如此RelocCount就且常擔Hex workshop 打_Awave.exeふ
      25FFFF0100EB04  <-- ⑹俏ㄒ
    改B811110100EB04 
    如此位址就潭ǎ輝偈親擁牧恕 
     (2)多喲嚎s:
      A..ASProtect的程式a  <--我Q櫚諞櫻@是可以用16M位器直接修改的            地方
      B. 解翰糠荽a      <-- 第二
      C. 解翰糠荽a      <-- 第三
      D. 利用第三喲a解旱謁喲a <-- 第四右嗑褪ASProtect,Anti-Debugger, 
          CRC Check,Time Limit,NagScreen等….的地方
      E. 利用第四喲a解褐鞽淌醬a,Import Table加密等 <-- 第五
      如此酉囁郟灰f它在Import Table作手_,如此多喲蔚嚎s,你要用卻嫜a丁(指在有Soft-ICE的h境下) C乎很y工作。
     (3)首先我要Ω兜氖ASProtect的保o:
      @w有3N,Anti-Debugger,BoundsCheck,CRC Check
     [Anti-Debugger]:
    :005D6184      CALL  005D60D4  <--\\.\SIWDEBUG
    :005D6189      TEST  AL,AL
    :005D618B(753A) JNZ    005D61C7  <-- NOP
    :005D618D      CALL  KERNEL32!GetLastError
    :005D6192      CMP  EAX,02
    :005D6195(7530) JNZ    005D81C7  <-- NOP
    :005D6197      MOV  EAX,[005DC878]
        :005D619C      CALL  005D60D4  <-- \\.\SICE
    :005D61A1      TEST  AL,AL
    :005D61A3(7522) JNZ    005D61C7  <-- NOP
    :005D61A5      CALL  KERNEL32!GetLastError
    :005D61AA      CMP  EAX,02
    :005D61AD(7518) JNZ    005D61C7  <-- NOP
    :005D61AF      MOV  EAX,[005DC874]
    :005D61B4      CALL  005D60D4  <-- \\.\NTICE
    :005D61B9      TEST  AL,AL
    :005D61BB(750A) JNZ    005D61C7  <-- NOP
    :005D61BD      CALL  KERNEL32!GetLastError
    :005D61C2      CMP  EAX,02
    :005D61C5(7413) JZ    005D61DA  <-- JMP 
    [BoundsCheck]:
    :005D6234      MOV  EBP,4243484B
    :005D6239      JMP  005D623D
    :005D623D      MOV AX,0004
    :005D6241      JMP  005D6244
    :005D6244      INT 3
    我只要改EBP的值,就能ByPass BoundsCheck
    改:005D6235 4B --> 12
    [CRC Check]:
    :005D633E    MOV  EAX,[EBP-14]
    :005D6341    CMP  EAX,[EBP-10]
    :005D6344    JZ    005D6389
    改:005D6344 7443 --> EB43
    以上就是ASProtect保o的代a,若你要一一的改,可能要改很多Bytes,既然它最    K是要跳至005D6389我何不乾坤大挪移它一次跳的
    改:005D618B E9F9010000 JMP 005D6389       
    [改主程式的地方]:
    找接近OEP的地方Modify主程式(此r主程式的代a已被解)我找到@:
    :005D607D 8B45F8 MOV  EAX,[EBP-08]
    :005D6080 EB02  JMP  005D6084
    好5BYTES正好符合我做h程跳S

        (4) SMC_始:
          K於到了最重要亦是最痛苦的r刻了,希望大家能猿窒氯ィ紫任做工作,就是找地方(要虼)矸盼的Code,我找ASProtect主程式的Section
          Section      VS      VA      RS      RO
          ----------------------------------------------------
          Y38d5x    29000  157000  28800      5FE00 
          我找到  OffSet : 60B00
                  d入r位址:00557D00
          @地方有大量已初值化的00 00供我使用,Thanks ASProtect!
          (A)利用第四Modify主程式:
主程式的破解改法,我裼Superboss的改法,S持文章的一性
改:004A486D 40 --> 33
得先前我找到的修改主程式的地方吧!
:005D607D 8B45F8 MOV  EAX,[EBP-08]
:005D6080 EB02  JMP  005D6084
改:005D607D E97E1CF8FF jmp 00557D00  <-- 跳至我的家
按F10淼00557D00,下a eip
:00557D00 8B45F8  MOV EAX,[EBP-08]  <-- 原代a
:00557D03 C6056D484A0033 MOV Byte Ptr [004A486D],33
:00557D0A E975E30700  JMP 005D6084  <-- 跳至原代a
要到@Y你先BypassASProtect的保o才行`,yo`後,得抄下C器a用16M位器去改
          (B)利用第三Modify第四:
            我用Symbole Loader磔d入Awave.exe,e忘了bdICEdump或改Section的  Charactics, 否to法中嗟模得先前所f的Anti-Debugger? 我要Modify它,位址是005D618B 下bpm 005D618B,按F5一次,中嘣:
            :005E555B F3A5  REPZ MOVSD
            :005E555D 8BC8  MOV ECX,EAX
            :005E555F 83E103 AND ECX,03
            :005E5562 F3A4  REPZ MOVSB
            :005E5564 5E    POP ESI
            :005E5565 8B8539294400 MOV EAX,[EBP+00442939]
            :005E556B 6800800000  PUSH 00008000
            :005E5570 6A00        PUSH 00
            :005E5572 50          PUSH EAX
            走^005E5562,你lF第四擁拇a已被解
            改:005E556B 6800800000 PUSH 00008000
            :005E556B E99F27F7FF jmp 00557D0F
:00557D0F 6800800000 push 00008000
:00557D14 C7058B615D00E9F90100 mov dword ptr [005D618B],0001F9E9
:00557D1E C6058F615D0000 mov byte ptr [005D618F],00
:00557D25 C7057D605D00E97E1CF8 mov dword ptr [005D607D],F81C7EE9
:00557D2F C60581605D00FF mov byte ptr [005D6081],FF
:00557D36 E935D80800 jmp 005E5570
            恭喜! 又完成了一櫻裟閔脅渙私猓ㄗh你流程D,仔思考它的PS那你瞭解,OK我^m吧
        ( C )利用第二Modify第三:
            目: 使:005E556B 6800800000 push 00008000
                成:005E556B E99F27F7FF jmp 00557D0F
            bpm 005E556B,按F5二次,中嘣:
            :005E527F F3A4  REPZ  MOVSB
            :005E5281 8B8539294400 MOV EAX,[EBP+00442939]
            :005E5287 6800800000 PUSH 00008000  <-- 我要Modify的地方
            :005E528C 6A00  PUSH 00 
            原本是要JMP至00557D3B,不^我想留些Buffer以防f一,所以我JMP至00557D6C
            改:005E5287 6800800000 PUSH 00008000
            :005E5287 E9E02AF7FF JMP 00557D6C
            :00557D6C 6800800000 push 00008000
            :00557D71 C7056B555E00E99F27F7 mov dword ptr [005E556B],F7279FE9
:00557D7B C6056F555E00FF mov byte ptr [005E556F],FF
:00557D82 E905D50800 jmp 005E528C
        (D) 利用第一Modify第二:
K於到最後了,不知你有什N感X,是不是X得ASProtect很C呢?
目:  使:005E5287 6800800000 push 00008000
    成:005E5287 E9E02AF7FF jmp 00557D6C
bpm 005E5287 按F5一次,中嘣:
:00557698 F3A5  REPZ MOVSD
:0055769A 83C328 ADD EBX,28
:0055769D EBDA JMP 00557679
走^00557698第二擁拇a就喚海沁@一段代a吆芏啻危]PS我
有EDI的值我的指耍rEDI=005E5B94
改:0055769A 83C328 ADD EBX,28
  :0055769D EBDA JMP 00557679
:0055769A E9E8060000 JMP 00557D87 &szlig; @可以直接用Hex workshop碭
:00557D87 83C328 add ebx,28
:00557D8A 81FF945B5E00 cmp edi,005E5B94
:00557D90 0F85E3F8FFFF jnz 00557679
:00557D96 C70587525E00E9E02AF7 mov dword ptr [005E5287],F72AE0E9
:00557DA0 C6058B525E00FF mov byte ptr [005E528B],FF
:00557DA7 E9CDF8FFFF jmp 00557679
四.    後:很久]有文章了,的很s原,明年可能繳蝦0l展不
            緣媚g迎否,噫!臺痴嫻腦碓誡y混了.
  j海浮沈名利
      光石火步此生
          tm情事]不M
              ^世不笑是痴人
    JOHNSON from Taiwan    2000\12\8

相關文章