飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6088|回复: 10

[原创] ScreenCapture算法分析

[复制链接]
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

    发表于 2015-3-15 11:40:20 | 显示全部楼层 |阅读模式
    本帖最后由 Dxer 于 2016-3-14 13:57 编辑

    【破文作者】[PDG]Dxer
    【作者邮箱】bbs.chinapyg.com
    【作者主页】www.chinapyg.com
    破解工具】OD,dede
    【破解平台】xp sp3
    【软件名称】ScreenCapture
    【软件大小】15MB
    【原版下载】www.mp4soft.cn
    【保护方式】注册码
    【软件简介】《超级屏幕录像专家》是一款非常容易上手的录制工具,其内容简单,易上手,只需按下录制键即可录制出高清视频,软件提供全屏录制和自定义范围录制功能,用户可以通过勾选是否录制声音,选择录制麦克风声音或混音立体声来录制出自己想要的视频音效。用户可通过《超级屏幕录像专家》录制自己演唱的歌曲、游戏视频、软件的操作过程、网络教学、网络电视以及网络电影等视频,软件为用户提供高清的视频素材,供用户后期制作。本软件使用简单,是录制视频的首选软件。
    1、支持长时间录像并且保证声音同步,在硬盘空间足够的情况下,可以进行不限时间录象。
    2、直接录制生成AVI动画,支持各种压缩方式。
    3、录制目标自由选取:可以是全屏、选定窗口或者选定范围。
    4、支持标准录制和高清录制,高清录制是别的软件没有的。
    5、支持麦克风混音效果录制。
    6、支持录制快捷的任意设置。
    7、可以用于录制软件操作教程、长时间录制网络课件、录制QQ/MSN等聊天视频、录制网络电视节目、录制电影片段等。
    8、软件界面美观,操作简单易上手、功能强大实用。
    【破解声明】只是兴趣爱好,大侠们看看飘过.顺便教育下我!
    ------------------------------------------------------------------------
    【破解过程】
    用户名:[PDG]Dxer

    注册码:Pict-2756ureRe-8744

    验证算法部分:

    用户名字符串:

    00574DA2    55              PUSH    EBP
    00574DA3    68 464F5700     PUSH    ScreenCa.00574F46
    00574DA8    64:FF30         PUSH    DWORD PTR FS:[EAX]                 ; FOW
    00574DAB    64:8920         MOV     DWORD PTR FS:[EAX], ESP
    00574DAE    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-0x4]
    00574DB1    E8 E2F5E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCl>
    00574DB6    8D55 F0         LEA     EDX, DWORD PTR SS:[EBP-0x10]
    00574DB9    8BC7            MOV     EAX, EDI
    00574DBB    E8 60FFFFFF     CALL    ScreenCa.00574D20                  ; 进入call
    00574DC0    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-0x10]
    00574DC3    E8 90F8E8FF     CALL    ScreenCa.00404658                  ; 用户名
    00574DC8    8BF0            MOV     ESI, EAX
    00574DCA    85F6            TEST    ESI, ESI
    00574DCC    7E 30           JLE     SHORT ScreenCa.00574DFE
    00574DCE    BB 01000000     MOV     EBX, 0x1                           ; 用户名循环开始
    00574DD3    8D55 E8         LEA     EDX, DWORD PTR SS:[EBP-0x18]       ; %
    00574DD6    8BC7            MOV     EAX, EDI                           ; L淌
    00574DD8    E8 43FFFFFF     CALL    ScreenCa.00574D20
    00574DDD    8B45 E8         MOV     EAX, DWORD PTR SS:[EBP-0x18]       ; 用户名
    00574DE0    0FB64418 FF     MOVZX   EAX, BYTE PTR DS:[EAX+EBX-0x1]     ; DS:[00CA83F4]=5B ('[')
    00574DE5    8D4D EC         LEA     ECX, DWORD PTR SS:[EBP-0x14]       ; L淌
    00574DE8    33D2            XOR     EDX, EDX
    00574DEA    E8 3145E9FF     CALL    <ScreenCa.<-UnitSysUtils@SysUtils.>
    00574DEF    8B55 EC         MOV     EDX, DWORD PTR SS:[EBP-0x14]       ; (ASCII "5B")
    00574DF2    8D45 F8         LEA     EAX, DWORD PTR SS:[EBP-0x8]        ; L淌
    00574DF5    E8 66F8E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCa>
    00574DFA    43              INC     EBX
    00574DFB    4E              DEC     ESI
    00574DFC  ^ 75 D5           JNZ     SHORT ScreenCa.00574DD3
    字符串:

    [ = 5B
    P = 50
    D = 44
    G = 47
    ] = 5D
    D = 44
    x = 78
    e = 65
    r = 72


    用户名转Unicode倒序循环:

    00574DFE    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-0x8]        ; (ASCII "5B5044475D44786572")
    00574E01    E8 52F8E8FF     CALL    ScreenCa.00404658                  ; 72
    00574E06    8BF0            MOV     ESI, EAX
    00574E08    85F6            TEST    ESI, ESI
    00574E0A    7E 2C           JLE     SHORT ScreenCa.00574E38            ; 转Unicode倒序循环
    00574E0C    BB 01000000     MOV     EBX, 0x1
    00574E11    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-0x8]        ; (ASCII "5B5044475D44786572")
    00574E14    E8 3FF8E8FF     CALL    ScreenCa.00404658
    00574E19    2BC3            SUB     EAX, EBX
    00574E1B    8B55 F8         MOV     EDX, DWORD PTR SS:[EBP-0x8]        ; 72
    00574E1E    8A1402          MOV     DL, BYTE PTR DS:[EDX+EAX]          ; DS:[00CB94B9]=32 ('2')
    00574E21    8D45 E4         LEA     EAX, DWORD PTR SS:[EBP-0x1C]
    00574E24    E8 57F7E8FF     CALL    ScreenCa.00404580
    00574E29    8B55 E4         MOV     EDX, DWORD PTR SS:[EBP-0x1C]       ; (UNICODE "2")
    00574E2C    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-0xC]        ; L淌
    00574E2F    E8 2CF8E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCa>
    00574E34    43              INC     EBX
    00574E35    4E              DEC     ESI
    00574E36  ^ 75 D9           JNZ     SHORT ScreenCa.00574E11

    S1:

    00574E38    8D45 F8         LEA     EAX, DWORD PTR SS:[EBP-0x8]
    00574E3B    50              PUSH    EAX
    00574E3C    B9 04000000     MOV     ECX, 0x4                                       ; 取前四位
    00574E41    BA 01000000     MOV     EDX, 0x1                                       ;从第一位开始取
    00574E46    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-0xC]        ; (ASCII "27568744D5744405B5")
    00574E49    E8 6AFAE8FF     CALL    <ScreenCa.<-TObject@System.@LStrCo>
    00574E4E    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-0xC]
    00574E51    50              PUSH    EAX
    00574E52    B9 04000000     MOV     ECX, 0x4                                       ;取四位
    00574E57    BA 05000000     MOV     EDX, 0x5                                       ;从第五位开始取
    00574E5C    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-0xC]        ; (ASCII "27568744D5744405B5")
    00574E5F    E8 54FAE8FF     CALL    <ScreenCa.<-TObject@System.@LStrCo>
    00574E64    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-0x8]        ; (ASCII "2756")
    00574E67    E8 ECF7E8FF     CALL    ScreenCa.00404658
    00574E6C    83F8 04         CMP     EAX, 0x4                           ;
    00574E6F    7D 2F           JGE     SHORT ScreenCa.00574EA0
    00574E71    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-0x8]
    00574E74    E8 DFF7E8FF     CALL    ScreenCa.00404658
    00574E79    8BD8            MOV     EBX, EAX
    00574E7B    83FB 03         CMP     EBX, 0x3
    00574E7E    7F 20           JG      SHORT ScreenCa.00574EA0
    00574E80    8D4D E0         LEA     ECX, DWORD PTR SS:[EBP-0x20]
    00574E83    8BC3            MOV     EAX, EBX
    00574E85    C1E0 02         SHL     EAX, 0x2
    00574E88    33D2            XOR     EDX, EDX                           ; 14
    00574E8A    E8 9144E9FF     CALL    <ScreenCa.<-UnitSysUtils@SysUtils.>
    00574E8F    8B55 E0         MOV     EDX, DWORD PTR SS:[EBP-0x20]       ; 10
    00574E92    8D45 F8         LEA     EAX, DWORD PTR SS:[EBP-0x8]
    00574E95    E8 C6F7E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCa>
    00574E9A    43              INC     EBX
    00574E9B    83FB 04         CMP     EBX, 0x4
    00574E9E  ^ 75 E0           JNZ     SHORT ScreenCa.00574E80

    S2:

    00574EA0    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-0xC]        ; 8744
    00574EA3    E8 B0F7E8FF     CALL    ScreenCa.00404658
    00574EA8    83F8 04         CMP     EAX, 0x4                           ;
    00574EAB    7D 2F           JGE     SHORT ScreenCa.00574EDC
    00574EAD    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-0xC]
    00574EB0    E8 A3F7E8FF     CALL    ScreenCa.00404658
    00574EB5    8BD8            MOV     EBX, EAX
    00574EB7    83FB 03         CMP     EBX, 0x3
    00574EBA    7F 20           JG      SHORT ScreenCa.00574EDC
    00574EBC    8D4D DC         LEA     ECX, DWORD PTR SS:[EBP-0x24]
    00574EBF    8BC3            MOV     EAX, EBX
    00574EC1    C1E0 02         SHL     EAX, 0x2
    00574EC4    33D2            XOR     EDX, EDX
    00574EC6    E8 5544E9FF     CALL    <ScreenCa.<-UnitSysUtils@SysUtils.>
    00574ECB    8B55 DC         MOV     EDX, DWORD PTR SS:[EBP-0x24]
    00574ECE    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-0xC]
    00574ED1    E8 8AF7E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCa>
    00574ED6    43              INC     EBX
    00574ED7    83FB 04         CMP     EBX, 0x4
    00574EDA  ^ 75 E0           JNZ     SHORT ScreenCa.00574EBC

    S3:

    00574EDC    8D45 D8         LEA     EAX, DWORD PTR SS:[EBP-0x28]       ;
    00574EDF    50              PUSH    EAX
    00574EE0    8B47 04         MOV     EAX, DWORD PTR DS:[EDI+0x4]        ; PictureRecording86v2013
    00574EE3    B9 04000000     MOV     ECX, 0x4                           ;取前四位
    00574EE8    BA 01000000     MOV     EDX, 0x1                           ; 从第一位取
    00574EED    E8 C6F9E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCo>
    00574EF2    FF75 D8         PUSH    DWORD PTR SS:[EBP-0x28]            ; Pict
    00574EF5    68 5C4F5700     PUSH    ScreenCa.00574F5C                  ; 联接符"-"
    00574EFA    FF75 F8         PUSH    DWORD PTR SS:[EBP-0x8]             ;  (ASCII "27568744D5744405B5")与(ASCII "27561014181C2024282C30")
    00574EFD    8D45 D4         LEA     EAX, DWORD PTR SS:[EBP-0x2C]
    00574F00    50              PUSH    EAX
    00574F01    8B47 04         MOV     EAX, DWORD PTR DS:[EDI+0x4]        ; PictureRecording86v2013
    00574F04    B9 05000000     MOV     ECX, 0x5                                         ;取五位
    00574F09    BA 05000000     MOV     EDX, 0x5                                         ;从第五位取
    00574F0E    E8 A5F9E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCo>
    00574F13    FF75 D4         PUSH    DWORD PTR SS:[EBP-0x2C]            ; ureRe
    00574F16    68 5C4F5700     PUSH    ScreenCa.00574F5C                  ;联接符:"-"
    00574F1B    FF75 F4         PUSH    DWORD PTR SS:[EBP-0xC]             ; 8744
    00574F1E    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-0x4]
    00574F21    BA 06000000     MOV     EDX, 0x6
    00574F26    E8 EDF7E8FF     CALL    <ScreenCa.<-TObject@System.@LStrCa>
    00574F2B    33C0            XOR     EAX, EAX
    00574F2D    5A              POP     EDX
    00574F2E    59              POP     ECX                                ; ScreenCa.00574F46
    00574F2F    59              POP     ECX
    00574F30    64:8910         MOV     DWORD PTR FS:[EAX], EDX
    00574F33    68 4D4F5700     PUSH    ScreenCa.00574F4D
    00574F38    8D45 D4         LEA     EAX, DWORD PTR SS:[EBP-0x2C]
    00574F3B    BA 0A000000     MOV     EDX, 0xA
    00574F40    E8 77F4E8FF     CALL    <ScreenCa.<-TObject@System.@LStrAr>
    00574F45    C3              RETN
    00574F46  ^ E9 91EDE8FF     JMP     <ScreenCa.<-TObject@System.@Handle>
    00574F4B  ^ EB EB           JMP     SHORT ScreenCa.00574F38
    00574F4D    5F              POP     EDI
    00574F4E    5E              POP     ESI
    00574F4F    5B              POP     EBX
    00574F50    8BE5            MOV     ESP, EBP
    00574F52    5D              POP     EBP
    00574F53    C3              RETN


    ------------------------------------------------------------------------
    【破解总结】初步猜测(由于本人刚接触算法很多不懂,错了.大家多多教育.)
    1.计算用户名转ascii码,然后倒序ascii码.
    2.固定字符串:PictureRecording86v2013,取前四位Pict,联接符:"-" .倒序前四位2756,从PictureRecording86v2013第五位起到第九位ureRe,联接符:"-"从27568744D5744405B5第五位到第八位8744
    3.串联:Pict-2756ureRe-8744注册表删除即可显示非注册:

    Windows Registry Editor Version 5.00


    [HKEY_LOCAL_MACHINE\SOFTWARE\mp4\Screen]
    "Date"=hex:00,00,00,00,a0,8b,e4,40
    "RegName"="[PDG]Dxer"
    "RegPass"="147852369"

    Sceen.png

    具体算法不知道,这都是在调试时自己看到的.求大家指教下,谢谢!
    ------------------------------------------------------------------------
    【版权声明】本文出自[PDG]Dxer,如需转载之类的.请注意说明本文来自飘云阁论坛.







    来自群组: 我们都爱月姐姐
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

     楼主| 发表于 2015-3-15 11:41:58 | 显示全部楼层
    沙发自己坐,免得被GG大哥抢了
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-2 16:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2015-3-15 11:49:14 | 显示全部楼层
    真厉害,膜拜。那几个疑问的地方前面的call难道不是strlen么,再前面是strsub,它是取验证码中的4个,但是如果验证码长度不足4,就取不了那么长了。。。于是就fail了

    点评

    刚google了一下,strsub()从什么位置开始截取字符段长度,strlen字符组 计数器。是这个意思吗?然后再重新走一次,看看是不是这样来进行的。  详情 回复 发表于 2015-3-15 11:58
    多谢F8大侠指导,我再去OD里调试看看。感激不尽  详情 回复 发表于 2015-3-15 11:52
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

     楼主| 发表于 2015-3-15 11:52:27 | 显示全部楼层
    F8LEFT 发表于 2015-3-15 11:49
    真厉害,膜拜。那几个疑问的地方前面的call难道不是strlen么,再前面是strsub,它是取验证码中的4个,但是 ...

    多谢F8大侠指导,我再去OD里调试看看。{:soso_e181:}感激不尽
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

     楼主| 发表于 2015-3-15 11:58:22 | 显示全部楼层
    F8LEFT 发表于 2015-3-15 11:49
    真厉害,膜拜。那几个疑问的地方前面的call难道不是strlen么,再前面是strsub,它是取验证码中的4个,但是 ...

    刚google了一下,strsub()从什么位置开始截取字符段长度,strlen字符组 计数器。是这个意思吗?然后再重新走一次,看看是不是这样来进行的。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-3-15 18:33:56 | 显示全部楼层
    这个算法眼熟。。。貌似还写过注册机

    点评

    大Z哥,必须有kegen的。  详情 回复 发表于 2015-3-15 19:20
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

     楼主| 发表于 2015-3-15 19:20:12 | 显示全部楼层
    zaas 发表于 2015-3-15 18:33
    这个算法眼熟。。。貌似还写过注册机

    {:soso_e121:}大Z哥,必须有kegen的。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2015-3-20 14:02:47 | 显示全部楼层
    算法都出来了  期待keygen

    点评

    我不会告诉你QS帮我写出来了  详情 回复 发表于 2015-3-20 18:36
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

     楼主| 发表于 2015-3-20 18:36:35 | 显示全部楼层
    wgz001 发表于 2015-3-20 14:02
    算法都出来了  期待keygen

    {:soso_e120:}我不会告诉你QS帮我写出来了

    点评

    上源码吧  让我也学习一下啊   详情 回复 发表于 2015-3-21 09:35
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2015-3-21 09:35:17 | 显示全部楼层
    Dxer 发表于 2015-3-20 18:36
    我不会告诉你QS帮我写出来了

    上源码吧  让我也学习一下啊 {:soso_e102:}
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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