频道栏目
首页 > 安全 > 加密解密 > 正文

密码学CrackMe之RSA512算法CM分析

2007-10-07 08:07:16      个评论      
收藏   我要投稿

【文章标题】: RSACrackMe512分析过程及汇编注册机源码
【文章作者】: coolstar14
【使用工具】: IDA, BigInterCalc, RDLP
【软件名称】: RSACrackMe512
【软件大小】: 40KB
【下载地址】: http://bbs.pediy.com/attachment.php?attachmentid=7447&d=1187671766
【软件介绍】: 用RSA512作为校验算法的CrackMe。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
详细过程:
IDA反汇编, 字符串参考, 直接定位到关键代码:
.text:00402F18
.text:00402F18 loc_402F18:                             ; CODE XREF: DialogFunc+140j
.text:00402F18                 lea     eax, [ebp+dst_buffer]
.text:00402F1E                 lea     ecx, [ebp+rsa_n]
.text:00402F24                 push    eax             ; dst_buffer
.text:00402F25                 push    ecx             ; rsa_n
.text:00402F26                 lea     edx, [ebp+input_sn]
.text:00402F2C                 push    offset s_10001  ; "10001"
.text:00402F31                 push    edx             ; input_sn
.text:00402F32                 mov     [ebp+var_4], 0
.text:00402F39                 call    sub_402BC0      ;关键函数, 跟进
.text:00402F39
.text:00402F3E                 test    eax, eax
.text:00402F40                 jnz     short loc_402F68    ; eax不等于0, 跳转到后续判断, 否则就提示失败
.text:00402F40
.text:00402F42                 push    40h             ; uType
.text:00402F44                 push    offset Caption  ; "注册提示"
.text:00402F44
.text:00402F49
.text:00402F49 loc_402F49:                             ; CODE XREF: DialogFunc+1D8j  ;注册提示
.text:00402F49                 push    offset s_VSIAGm ; "注册码错误,继续加油!"
          ....
.text:00402F64                 mov     esp, ebp
.text:00402F66                 pop     ebp
.text:00402F67                 retn
.text:00402F67
.text:00402F68 ; ---------------------------------------------------------------------------
.text:00402F68
.text:00402F68 loc_402F68:                             ; CODE XREF: DialogFunc+190j
.text:00402F68                 lea     eax, [ebp+dst_buffer]
.text:00402F6E                 lea     ecx, [ebp+String2]
.text:00402F74                 push    eax             ; lpString1
.text:00402F75                 push    ecx             ; lpString2
.text:00402F76                 call    sub_402CE0      ;比较函数, 可以通过内存查看, eax, ecx分别为解密sn后获得的缓冲区和我们输入的用户名
.text:00402F76
.text:00402F7B                 add     esp, 8
.text:00402F7E                 cmp     eax, 1
.text:00402F81                 push    40h             ; uType
.text:00402F83                 push    offset Caption  ; "注册提示"
.text:00402F88                 jnz     short loc_402F49    ;前面比较函数返回值 eax不等于1跳转到失败, 否则注册成功.
.text:00402F88
.text:00402F8A                 push    offset s_ZUgmVSI ; "恭喜你,注册码正确!"
.text:00402F8F                 push    esi             ; hWnd
.text:00402F90                 call    ds:MessageBoxA
.text:00402F96                 xor     eax, eax

函数 402F39, 参数4个, 通过查看内存可以确定, 有一个为我们输入的序列号, 一个为10001的字符串, 它是RSA公钥对中最常用的e , 还有一个长度为128的字符串, 这个很容易就可以怀疑它是RSA公钥对中的n. 另外一个会在下面的比较函数中用它, 它就是结果输出缓冲区了.

函数:sub_402BC0
.text:00402BC0 ; Attributes: bp-based frame
.text:00402BC0
.text:00402BC0 ; int __stdcall sub_402BC0(int input_sn,int rsa_e_10001,int rsa_n,LPSTR dst_buffer)
.text:00402BC0 sub_402BC0      proc near               ; CODE XREF: DialogFunc+189p
.text:00402BC0
.text:00402BC0 String2  &

相关TAG标签 密码学 算法
上一篇:修改SoftIce使其在2000/xp下躲过检测
下一篇:卡巴6.0-7.0的永久免费激活的方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站