您现在的位置: 捷凌网安 >> 文章中心 >> 注册破解 >> 正文
破解StarForce之一:StarForce分析总览篇

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-2-17 0:06:16

//我们对应一下:
004099DF  |.  C74424 1C 002>mov     dword ptr [esp+1C], 2000   ;  wndclass.style    
004099E7  |.  895424 20     mov     dword ptr [esp+20], edx    ;  wndclass.lpfnWndProc    
004099EB  |.  896C24 24     mov     dword ptr [esp+24], ebp    ;  wndclass.cbClsExtra      
004099EF  |.  896C24 28     mov     dword ptr [esp+28], ebp    ;  wndclass.cbWndExtra        
004099F3  |.  894424 2C     mov     dword ptr [esp+2C], eax    ;  wndclass.hInstance      
004099F7  |.  894C24 30     mov     dword ptr [esp+30], ecx    ;  wndclass.hIcon    
004099FB  |.  FF15 74278400 call    dword ptr [842774]         ;  wndclass.hCursor
//可以看的明白大家轮一轮到:)简单吧!
---------------------------------------------------------------*/
00409A24  |.  66:85C0       test    ax, ax
00409A27  |.  75 26         jnz     short 00409A4F
00409A29  |.  6A 53         push    53
00409A2B  |.  68 8C3F8A00   push    008A3F8C                         ;  ASCII "D:\PAL4\project\Sourcecode\RwCasing\rwc_Windows.cpp"
00409A30  |.  68 303F8A00   push    008A3F30                         ;  ASCII "FILE:  [%s]
LINE:  [%d]
INFO:  Error[rwcWindows::createWindows failed <RegisterClassEx>]
"
00409A35  |.  E8 F686FFFF   call    00402130
00409A3A  |.  50            push    eax                              ;  根据上面的文字就知道是要做什么了注册窗口了.
00409A3B  |.  E8 8089FFFF   call    004023C0
00409A40  |.  83C4 10       add     esp, 10
00409A43  |.  33C0          xor     eax, eax
00409A45  |.  5F            pop     edi
00409A46  |.  5E            pop     esi
00409A47  |.  5D            pop     ebp
00409A48  |.  5B            pop     ebx
00409A49  |.  83C4 30       add     esp, 30
00409A4C  |.  C2 1C00       retn    1C                               ;注册失败就从这里回家了
00409A4F  |>  8DBE 08010000 lea     edi, dword ptr [esi+108]         ;这里是干吗的呢?不知道了吧糊涂了吧!呵呵!
00409A55  |.  89AE 0C010000 mov     dword ptr [esi+10C], ebp
00409A5B  |.  55            push    ebp                              ;PUSH EBP说明这个函数只有一个参数,但是拿OD跟来看看,EBP=1或0
00409A5C  |.  892F          mov     dword ptr [edi], ebp             ;参数为1或0的就很少了,很有可能是BOOL性的参数,只有1和0的,当然
00409A5E  |.  8B0D 980E8E00 mov     ecx, dword ptr [8E0E98]          ;也有2的,可是这里用了两次,发现了么?两次说明了什么参数1和0的
00409A64  |.  8B2D 6C278400 mov     ebp, dword ptr [84276C]          ;结果不一样的,那我们看看什么函数需要一个参数,而且返回值却不同
00409A6A  |.  898E 10010000 mov     dword ptr [esi+110], ecx         ;用的几率最高的是那个呢?GetSystemMetrics,我怎么知道是它呢?
00409A70  |.  8B15 9C0E8E00 mov     edx, dword ptr [8E0E9C]          ;首先,这个时候用的最多的就是GetSystemMetrics,其次,SM_CXSCREEN
00409A76  |.  8996 14010000 mov     dword ptr [esi+114], edx         ;SM_CYSCREEN两个参数让它返回了不同的值,其次是一个参数,我们再验证一下
00409A7C  |.  FFD5          call    ebp                              ;如果,CreateWindowExA这个函数的长和宽没定那就肯定是了,要问为什么的
00409A7E  |.  6A 01         push    1                                ;只能说是需要多研究,经验了:)
00409A80  |.  FFD5          call    ebp
00409A82  |.  A1 F8088E00   mov     eax, dword ptr [8E08F8]
00409A87  |.  85C0          test    eax, eax
00409A89  |.  75 14         jnz     short 00409A9F
00409A8B  |.  8A4424 50     mov     al, byte ptr [esp+50]
00409A8F  |.  BD 00000A80   mov     ebp, 800A0000
00409A94  |.  84C0          test    al, al
00409A96  |.  74 09         je      short 00409AA1
00409A98  |.  BD 0000CA80   mov     ebp, 80CA0000
00409A9D  |.  EB 02         jmp     short 00409AA1
00409A9F  |>  33ED          xor     ebp, ebp
00409AA1  |>  6A 00         push    0                                ; /HasMenu = FALSE
00409AA3  |.  55            push    ebp                              ; |Style    这个函数是最不好估计的但是,幸好它没加密的,但是分析的话可以
00409AA4  |.  57            push    edi                              ; |pRect    从这几个参数入手,毕竟大家可以很容易的得到EDI是RECT类型指针
00409AA5  |.  FF15 68278400 call    dword ptr [842768]               ; \AdjustWindowRect 三个参数的RECT类函数就不多了,GetWindowsRect,GetClientRect
00409AAB  |.  8B46 68       mov     eax, dword ptr [esi+68]          ; 在窗口没创建之前用它们是不可能的,而FrameRect这类函数却很少见,最常见的
00409AAE  |.  8B8E 14010000 mov     ecx, dword ptr [esi+114]         ; 只有它了哦!可以根据参数数量和内容确定的
00409AB4  |.  8B96 10010000 mov     edx, dword ptr [esi+110]
00409ABA  |.  6A 00         push    0                                ; /lParam = NULL这个不用看了吧!注册这么长时间的窗口,还不创建要等到什么时候,
00409ABC  |.  50            push    eax                              ; |hInst        数数参数够,PUSH 0/PUSH EAX/PUSH 0符合CreateWindowExA函数的最后三个
00409ABD  |.  8B86 0C010000 mov     eax, dword ptr [esi+10C]         ; |             参数,PUSH 0就是lParam通常是NULL/PUSH EAX就是句柄/PUSH 0就是不要菜单,
00409AC3  |.  6A 00         push    0                                ; |hMenu = NULL 这类游戏程序要什么菜单当然是0了
00409AC5  |.  2BC8          sub     ecx, eax                         ; |
00409AC7  |.  6A 00         push    0                                ; |hParent = NULL
00409AC9  |.  8B4424 58     mov     eax, dword ptr [esp+58]          ; |             PUSH ECX 和PUSH EDX算算正好是长和宽的位置
00409ACD  |.  51            push    ecx                              ; |Height
00409ACE  |.  8B0F          mov     ecx, dword ptr [edi]             ; |
00409AD0  |.  2BD1          sub     edx, ecx                         ; |
00409AD2  |.  52            push    edx                              ; |Width
00409AD3  |.  6A 00         push    0                                ; |Y = 0        数数就是坐标嘛!
00409AD5  |.  6A 00         push    0                                ; |X = 0
00409AD7  |.  55            push    ebp                              ; |Style
00409AD8  |.  50            push    eax                              ; |WindowName    OD跟过来看到窗口标题没问题了肯定是CreateWindowExA
00409AD9  |.  53            push    ebx                              ; |Class
00409ADA  |.  6A 00         push    0                                ; |ExtStyle = 0
00409ADC  |.  FF15 64278400 call    dword ptr [842764]               ; \CreateWindowExA 
00409AE2  |.  85C0          test    eax, eax
00409AE4  |.  8946 6C       mov     dword ptr [esi+6C], eax
00409AE7  |.  75 0A         jnz     short 00409AF3
00409AE9  |.  5F            pop     edi
00409AEA  |.  5E            pop     esi
00409AEB  |.  5D            pop     ebp
00409AEC  |.  5B            pop     ebx
00409AED  |.  83C4 30       add     esp, 30
00409AF0  |.  C2 1C00       retn    1C
........................................省略吧!要这样下去什么时候才完呀!
恩!....下回给大家带来破解防拷的方法! 
我这里用的是PAL4的反汇编代码!下会我真的想和大家共享破解方法,但是我实在怕这样做会影响的仙剑正版,基本上都破了,也修的差不多了,现在只是BUG修复,还有就是我的破解不支持2003和VISTA.我真的为难了,发与不发一直在考虑,所以,我和大家都希望下会把破防拷的方法带给大家,但是我看了游侠论坛的朋友的意见,真的想留着自己玩了,至于我是否能够再发关于破防拷的文章,我也很难说,我现在很困惑了,如果,发了也许我从今以后都不会在破防拷了,也看不到仙5了.正如软星解散的时候说的一样:随缘!......
给大家一个我破的图:
001.JPG
                                                                 -By EasyStudy For PhantomNet

上一页  [1] [2] [3] [4] 

  • 上一篇文章:

  • 下一篇文章:
  •  
    最进更新
    普通文章瑞星公司06月04日发布 每日计06-04
    普通文章陕西省地震局网站两次遭到"黑06-04
    普通文章谨防"Flash蛀虫"病毒 已感染06-04
    普通文章安全预警:“肉鸡猎人”抓肉06-04
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章微软:Safari浏览器存在安全06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章微软建议用户暂停用苹果Safa06-04
    普通文章台北世贸中心官网被挂马06-04
    普通文章电脑身份验证无处不在 让黑客06-04
     
    推荐文章
    推荐文章触目惊心 专家解读黑色产业链06-04
    推荐文章网络黑色产业链日渐成型 奥运06-04
    推荐文章保护DNS服务器十大技巧06-04
    推荐文章Vista在非常规状态下数据备份06-04
    推荐文章Linux IPv6环境下DNS服务器配05-01
    推荐文章信息安全:阻止SSH口令尝试工05-01
    推荐文章解决网内终端无法通信故障05-01
    推荐文章熟透各种特殊IP地址 将IP藏一05-01
    推荐文章IE用户减少,黑客盯上Safari 05-01
    推荐文章我国网络安全形势非常严峻 应04-30
     
    热点文章 
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章电脑身份验证无处不在 让黑客06-04
    推荐文章触目惊心 专家解读黑色产业链06-04
    普通文章Windows系统用户摆脱黑客攻击06-04
    普通文章病毒导致输入法无法切换的处06-04
    普通文章Informix注入整理05-23
    普通文章Cookies的注入方法和原理05-23
    普通文章SQL注射修改难猜解的MD505-23
    普通文章黑客眼中的OpenSSL:强大的密05-05

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号