你的位置:色情网站 > 欧美av女星 >


性爱巴士剧情 [原创]ReHPer KeyGenMe v1.0分析-CTF造反-看雪-安全社区|安全招聘|kanxue.com

发布日期:2024-11-03 05:52    点击次数:199


性爱巴士剧情 [原创]ReHPer KeyGenMe v1.0分析-CTF造反-看雪-安全社区|安全招聘|kanxue.com

【著述标题】: ReHPer KeyGenMe v1.0分析 【著述作家】: 隐者无疆[BCG] 【作家邮箱】: xxx@yahoo.com 【作家主页】: hxxp://www.xxxx.com 【软件称呼】: ReHPer KeyGenMe v1.0 【软件大小】: 372K 【下载地址】: 【加壳形貌】: 无壳 【保护形貌】: Name+SN 【编写话语】: Borland Delphi 【使用用具】: OD,IDA,DeDe 【操作平台】: Windows 【软件先容】: 2/10 - Needs a little brain (or luck) 【作家声明】: 我是一只小菜鸟,偶有所得,愿与各人共享。 -------------------------------------------------------------------------------- 【详备历程】   未必间,在crackmes.de上看到了这个CM,发现作家的想路有独有之处。现公布我的分析,失当之处宽容指正。   1.Peid侦壳,显现“Borland Delphi 6.0 - 7.0”。   2.用Dede分析,找到check按钮对应的代码;IDA分析该段代码。   3.贴出重要代码如下: .text:00454D0A mov     [ebp+NameOpRst], 1    ; initialize   .text:00454D11 lea     edx, [ebp+szName]   .text:00454D14 mov     eax, [ebp+hForm1]   .text:00454D17 mov     eax, [eax+36Ch]   .text:00454D1D call    Controls::TControl::GetText(void)   .text:00454D1D   .text:00454D22 mov     eax, [ebp+szName]   .text:00454D25 lea     edx, [ebp+szName_Lower]   .text:00454D28 call    Sysutils::LowerCase(System::AnsiString)   .text:00454D28   .text:00454D2D mov     eax, [ebp+szName_Lower]   .text:00454D30 test    eax, eax   .text:00454D32 jz      short NullName   .text:00454D32   .text:00454D34 sub     eax, 4   .text:00454D37 mov     eax, [eax]            ; eax<-- NameLen   .text:00454D37   .text:00454D39   .text:00454D39 NullName:                     ; CODE XREF: Button1Click+56j   .text:00454D39 add     al, 2                 ;谛视这个处所,用户名的长度加2,这里很重要   .text:00454D3B test    al, al   .text:00454D3D jbe     short _text_454D60   .text:00454D3D   .text:00454D3F mov     dl, 1   .text:00454D3F   .text:00454D41   .text:00454D41 GoOn:                         ; CODE XREF: Button1Click+82j   .text:00454D41 movzx   ecx, dl                   ;\ 这一部分代码用于顾问输入的Name 以及   .text:00454D44 mov     ebx, [ebp+szName_Lower]   ;| 内存中Name字符串后头的两个字节   .text:00454D47 movzx   ecx, byte ptr [ebx+ecx-1] ;| 作家在这里给咱们等着咱们   .text:00454D4C add     [ebp+NameOpRst], ecx      ;| 对于这一部分,底下有具体分析   .text:00454D4F mov     ecx, [ebp+NameOpRst]      ;|   .text:00454D52 ror     ecx, 6                    ;| 通过这个轮回的狡计,取得一个整数值   .text:00454D55 add     ecx, 1                    ;| 记作 val   .text:00454D58 mov     [ebp+NameOpRst], ecx      ;|   .text:00454D5B inc     edx                       ;|   .text:00454D5C dec     al                        ;|   .text:00454D5E jnz     short GoOn                ;/   .text:00454D5E   .text:00454D60   .text:00454D60 _text_454D60:                 ; CODE XREF: Button1Click+61j   .text:00454D60 not     [ebp+NameOpRst]   .text:00454D63 xor     eax, eax   .text:00454D65 pop     edx   .text:00454D66 pop     ecx   .text:00454D67 pop     ecx   .text:00454D68 mov     fs:[eax], edx   .text:00454D6B jmp     short GetText2      。。。      .text:00454DA1 GetText2:                     ; CODE XREF: Button1Click+8Fj   .text:00454DA1 lea     edx, [ebp+szText2]   .text:00454DA4 mov     eax, [ebp+hForm1]   .text:00454DA7 mov     eax, [eax+370h]   .text:00454DAD call    Controls::TControl::GetText(void)   .text:00454DAD   .text:00454DB2 mov     eax, [ebp+szText2]   .text:00454DB5 push    eax   .text:00454DB6 mov     eax, [ebp+NameOpRst]  ;前边狡计取得的val   .text:00454DB9 xor     edx, edx   .text:00454DBB push    edx   .text:00454DBC push    eax   .text:00454DBD lea     edx, [ebp+HexVal]     ;val十六进制值对应的字符串,记作sn1   .text:00454DC0 mov     eax, 8   .text:00454DC5 call    Sysutils::IntToHex(__int64,int)   .text:00454DC5   .text:00454DCA lea     eax, [ebp+HexVal]      .text:00454DCD push    eax   .text:00454DCE lea     eax, [ebp+szComputerName] ;狡计机名,记作 sn2   .text:00454DD1 call    _text_454C9C          ; GetComputerName   .text:00454DD1   .text:00454DD6 mov     edx, [ebp+szComputerName]   .text:00454DD9 pop     eax   .text:00454DDA call    System::__linkproc__ LStrCat(void) ; sn1+sn2   .text:00454DDA   .text:00454DDF mov     edx, [ebp+HexVal]     ; sn1+sn2   .text:00454DE2 pop     eax                   ; 输入的序列号   .text:00454DE3 call    System::__linkproc__ LStrCmp(void)   .text:00454DE3   .text:00454DE8 jnz     short Failed   .text:00454DE8   .text:00454DEA push    40h                   ; uType   .text:00454DEC mov     eax, ds:_bss_45C5A4   .text:00454DF1 call    System::__linkproc__ LStrToPChar(System::AnsiString)   .text:00454DF1   .text:00454DF6 push    eax                   ; lpCaption   .text:00454DF7 push    offset s_GoodWorkWrite ; "Good work! Write keygen! :)"   .text:00454DFC mov     eax, [ebp+hForm1]   .text:00454DFF call    _text_43E414   .text:00454DFF   .text:00454E04 push    eax                   ; hWnd   .text:00454E05 call    MessageBoxA_0   .text:00454E05   .text:00454E0A jmp     short End      4.转头一下性爱巴士剧情,注册考证的历程:通过一个轮回顾问输入的 用户名 和 在内存中紧跟自后的两个字节(!!),   取得一个整数值,这个整数十六进制数值转成字符串即为序列号的第一部分s1;取狡计机名为序列号的第二部分sn2    sn1和sn2平直连结,即得正确的序列号。   5. 问题是 在内存中紧跟用户名后的两个字节是什么?     领先,内存中紧跟用户名后的第一个字节为 “\0”,即字符串以0收尾。     那么,内存中紧跟用户名后的第二个字节呢? 很灾难,这个字节的值基本上是立时的。不外万幸的是咱们不错想   一个目标让它不得不取“定值”。     内存中的本色会按四字节对都,因此输入用户名的存储地址细目是4的倍数。读入的name被存放在一段闲置的内存   空间中,同期底本的数据被隐私。在OD中不雅察转存区发现,被隐私的部分要么底本即是"\0",要么是长度为三个字节   的内存地址。是以,淌若咱们实现用户名的长度为 4*n+2(n=0,1,2,3,4,5),则内存中紧跟用户名后的第二个字节   细目为"\0"。   6.对输入的用户名作上述规定后,注册机编写就相比简便了。      作家说:Needs a little brain (or luck),我想其中的luck即是输入的用户名长度偶合称心上述要求,呵呵          -------------------------------------------------------------------------------- 【版权声明】: 本文原创于看雪时代论坛, 转载请注明作家并保合手著述的竣工, 谢谢!                                                        2006年12月25日 12:28:37

最新四色米奇影视777在线看

[谛视]传递专科常识、拓宽行业东谈主脉——看雪讲师团队等你加入!性爱巴士剧情

上传的附件: rehper keygenme v1.0 keygen.rar (31.25kb,6次下载)

    热点资讯

    相关资讯