飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2690|回复: 0

[yayazhi申请加入]Falco Icon Studio v3.2 脱壳破解

[复制链接]
  • TA的每日心情

    2017-7-19 15:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-3-25 21:05:07 | 显示全部楼层 |阅读模式
    破解作者】 yayazhi
    【作者邮箱】 [email protected]
    【使用工具】 TheOD,ImportREC v1.7c,PEiD0.94
    【破解平台】 WinXP SP3
    【破解软件】 Falco Icon Studio v3.2
    【软件介绍】 Falco.Icon.Studio是一款非常方便的图标制作和编辑工具,v3.2版拥有全新的用户界面,使工作流程简单化和工作区域安排更加合理;还具有非常容易上手的图形界面
    【保护方式】 EXECryptor壳,注册码
    【破解声明】 我是一只小菜鸟,偶得一点经验愿与大家分享,失误之处敬请各位大侠多多指教
    ================================================================================
    一、脱壳
    ================================================================================
    1.侦壳:用PEiD查壳 EXECryptor V2.2X-V2.4X -> StrongBit Technology   * Sign.By.fly *
    2.设置好OD及其插件,载入
    7C92120F    C3              retn<---------停在这里
    7C921210    8BFF            mov edi, edi
    7C921212 >  CC              int3
    7C921213    C3              retn
    7C921214    8BFF            mov edi, edi
    7C921216    8B4424 04       mov eax, dword ptr ss:[esp+4]
    7C92121A    CC              int3
    7C92121B    C2 0400         retn 4
    7C92121E >  64:A1 18000000  mov eax, dword ptr fs:[18]
    7C921224    C3              retn
    7C921225 >  57              push edi
    7C921226    8B7C24 0C       mov edi, dword ptr ss:[esp+C]

    Alt+M打开内存镜像
    地址       大小    ? 物主       区段       包含                                       
    0051E000   00001000  Falco_Ic  dmoa1e5l                                   
    0051F000   0000D000  Falco_Ic  .jasq.d2                                   
    005B0000   00084000  Falco_Ic  hhio8mvc    code,imports<---------下内存写入断点
    Shift+F9
    005ACFA1    E8 CDFFFFFF     call Falco_Ic.005ACF73
    005ACFA6  ^ 72 F2           jb short Falco_Ic.005ACF9A
    005ACFA8    C3              retn
    005ACFA9    8BE5            mov esp, ebp
    005ACFAB    5D              pop ebp
    005ACFAC    C3              retn<---------清除内存断点,F2,Shift+F9两次,取消断点


    打开内存code段下段,Shift+F9,
    0052C13E    AC              lods byte ptr ds:[esi]<---------走到这里
    0052C13F    D0E8            shr al, 1
    0052C141    80F8 74         cmp al, 74
    0052C144    75 0E           jnz short Falco_Ic.0052C154
    0052C146    8B06            mov eax, dword ptr ds:[esi]
    0052C148    0FC8            bswap eax
    0052C14A    01C8            add eax, ecx
    0052C14C    8906            mov dword ptr ds:[esi], eax
    0052C14E    83C6 04         add esi, 4
    0052C151    83E9 04         sub ecx, 4
    0052C154    49              dec ecx
    0052C155  ^ 7F E7           jg short Falco_Ic.0052C13E
    0052C157    59              pop ecx
    0052C158    5E              pop esi
    0052C159    C3              retn<---------F2,Shift+F9,取消断点,


    再次打开内存code段下段,Shift+F9加到OEP了。
    004841EC    E8 AD6A0000     call Falco_Ic.0048AC9E<---------OEP
    004841F1  ^ E9 17FEFFFF     jmp Falco_Ic.0048400D
    004841F6    55              push ebp
    004841F7    8BEC            mov ebp, esp
    004841F9    56              push esi
    004841FA    8B75 14         mov esi, dword ptr ss:[ebp+14]
    004841FD    57              push edi
    004841FE    33FF            xor edi, edi
    00484200    3BF7            cmp esi, edi
    00484202    75 04           jnz short Falco_Ic.00484208
    00484204    33C0            xor eax, eax
    00484206    EB 65           jmp short Falco_Ic.0048426D


    3.OD插件脱壳,把重建输入表取消选择,运行importREC修复指针。Fixdump。
    ================================================================================
    二、破解
    ================================================================================
    第一种方法:
    1.单步跟踪软件,遇到软件运行的call就进。
    0049BE45   /74 2A           je short 0_.0049BE71
    0049BE47   |8B06            mov eax, dword ptr ds:[esi]
    0049BE49   |8BCE            mov ecx, esi
    0049BE4B   |FF50 50         call dword ptr ds:[eax+50]              ; 第一次F7进
    0049BE4E   |85C0            test eax, eax
    0049BE50   |75 16           jnz short 0_.0049BE68
    0049BE52   |3946 20         cmp dword ptr ds:[esi+20], eax
    ================================================================================
    00409C69    68 0080CF00     push 0CF8000
    00409C6E    68 80000000     push 80
    00409C73    8BCF            mov ecx, edi
    00409C75    FFD2            call edx                              ; 第二次F7进
    00409C77    85C0            test eax, eax
    00409C79    0F84 CB000000   je 0_.00409D4A
    00409C7F    8D4C24 20       lea ecx, dword ptr ss:[esp+20]
    00409C83    897E 20         mov dword ptr ds:[esi+20], edi
    00409C86    E8 C9940500     call 0_.00463154
    ================================================================================
    0045AC0D    C645 FC 01      mov byte ptr ss:[ebp-4], 1
    0045AC11    FF75 F0         push dword ptr ss:[ebp-10]
    0045AC14    FF75 EC         push dword ptr ss:[ebp-14]
    0045AC17    FF90 34010000   call dword ptr ds:[eax+134]           ; 第三次F7进
    0045AC1D    85C0            test eax, eax
    0045AC1F    75 20           jnz short 0_.0045AC41
    0045AC21    8B4D F0         mov ecx, dword ptr ss:[ebp-10]
    0045AC24    83C1 F0         add ecx, -10
    0045AC27    E8 846FFAFF     call 0_.00401BB0
    0045AC2C    8B4D 08         mov ecx, dword ptr ss:[ebp+8]
    ================================================================================
    0045AD2F    FF75 08         push dword ptr ss:[ebp+8]
    0045AD32    FF75 20         push dword ptr ss:[ebp+20]
    0045AD35    FF57 5C         call dword ptr ds:[edi+5C]            ; 第四次F7进
    0045AD38    85C0            test eax, eax
    0045AD3A    5B              pop ebx
    0045AD3B    75 10           jnz short 0_.0045AD4D
    0045AD3D    3945 FC         cmp dword ptr ss:[ebp-4], eax
    0045AD40  ^ 74 9F           je short 0_.0045ACE1
    0045AD42    FF75 FC         push dword ptr ss:[ebp-4]
    ================================================================================
    0042F06E    8B48 04         mov ecx, dword ptr ds:[eax+4]
    0042F071    8DBE 0C080000   lea edi, dword ptr ds:[esi+80C]
    0042F077    894C24 10       mov dword ptr ss:[esp+10], ecx
    0042F07B    E8 D0530000     call 0_.00434450                      ; 第五次F7进
    0042F080    8B5424 10       mov edx, dword ptr ss:[esp+10]
    0042F084    8B86 D0030000   mov eax, dword ptr ds:[esi+3D0]
    0042F08A    389A 18010000   cmp byte ptr ds:[edx+118], bl
    0042F090    8B90 68010000   mov edx, dword ptr ds:[eax+168]
    ====================================================================================
    00434644    837F 04 00      cmp dword ptr ds:[edi+4], 0
    00434648    0F85 4E010000   jnz 0_.0043479C                          ;
    0043464E    8D5424 24       lea edx, dword ptr ss:[esp+24]
    00434652    52              push edx
    00434653    FF15 A8444A00   call dword ptr ds:[<&kernel32.GetSystemT>; 关键!!!!时间函数
    00434659    8B35 A4444A00   mov esi, dword ptr ds:[<&kernel32.System>; kernel32.SystemTimeToFileTime
    0043465F    8D4424 14       lea eax, dword ptr ss:[esp+14]
    00434663    50              push eax
    =====================================================================================
    0043468F    68 00C0692A     push 2A69C000
    00434694    52              push edx
    00434695    51              push ecx
    00434696    E8 05230500     call 0_.004869A0
    0043469B    8BF0            mov esi, eax
    0043469D    83FE 1E         cmp esi, 1E                        ; 关键时间1E=30
    004346A0    7D 16           jge short 0_.004346B8              ; 大于30就跳走了
    004346A2    E8 92760200     call 0_.0045BD39
    004346A7    8B48 04         mov ecx, dword ptr ds:[eax+4]
    004346AA    81C1 A4000000   add ecx, 0A4
    破解方法:十六进制1E等于十进制的30,我们可以把1E改成更大的数,也可以把jge给nop掉。
    ================================================================================
    第二种方法:
    ================================================================================
    F12暂停法
    找到这里
    004340FF    8B9424 2C010000 mov edx, dword ptr ss:[esp+12C]
    00434106    52              push edx
    00434107    E8 3E100500     call unpacked.0048514A
    0043410C    8B8C24 50010000 mov ecx, dword ptr ss:[esp+150]
    00434113    83C4 04         add esp, 4
    00434116    50              push eax
    00434117    E8 84010000     call unpacked.004342A0               ; 关键callF7进
    0043411C    85C0            test eax, eax
    0043411E    0F84 40010000   je unpacked.00434264
    00434124    8B8424 2C010000 mov eax, dword ptr ss:[esp+12C]
    到这里---算法部分
    004342A0    81EC 18020000   sub esp, 218
    004342A6    A1 38BC4C00     mov eax, dword ptr ds:[4CBC38]
    004342AB    33C4            xor eax, esp
    004342AD    898424 14020000 mov dword ptr ss:[esp+214], eax
    004342B4    DD05 70714B00   fld qword ptr ds:[4B7170]
    004342BA    53              push ebx
    004342BB    56              push esi
    004342BC    8BF1            mov esi, ecx
    004342BE    E8 2D7D0600     call unpacked.0049BFF0
    004342C3    D95C24 0C       fstp dword ptr ss:[esp+C]
    004342C7    8B0D F0094D00   mov ecx, dword ptr ds:[4D09F0]
    004342CD    D94424 0C       fld dword ptr ss:[esp+C]
    004342D1    B8 83DE1B43     mov eax, 431BDE83
    004342D6    F7E1            mul ecx
    004342D8    C1EA 13         shr edx, 13
    004342DB    69D2 80841E00   imul edx, edx, 1E8480
    004342E1    2BCA            sub ecx, edx
    004342E3    85C9            test ecx, ecx
    004342E5    894C24 0C       mov dword ptr ss:[esp+C], ecx
    004342E9    DB4424 0C       fild dword ptr ss:[esp+C]
    004342ED    7D 06           jge short unpacked.004342F5
    004342EF    D805 68714B00   fadd dword ptr ds:[4B7168]
    004342F5    DC35 60714B00   fdiv qword ptr ds:[4B7160]
    004342FB    DCC0            fadd st, st
    004342FD    DEC9            fmulp st(1), st
    004342FF    DC0D 58714B00   fmul qword ptr ds:[4B7158]
    00434305    E8 F62B0500     call unpacked.00486F00             ; 可以进去看看
    0043430A    99              cdq
    0043430B    33C2            xor eax, edx
    0043430D    2BC2            sub eax, edx
    0043430F    398424 24020000 cmp dword ptr ss:[esp+224], eax
    00434316    0F85 0E010000   jnz unpacked.0043442A                ; 关键跳

    注册文件在C:\WINDOWS\system32\win5.pkg
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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