野猫III 发表于 2006-5-20 11:05:07

PYG 5.4 Cracker 小组 课外练习7

相对简单的,呵呵..Delphi程序.猫给加了个壳.

ASPack 2.12 -> Alexey Solodovnikov

大鸟请让着点小菜嘛...呵呵.

+++++++++++++++++++++++++++++
要求
1)爆破
2)追码
3)内存注册机
4)算法分析(选做)
练习的目的只在于巩固学习成果.
希望大家积极相互交流相.互讨论.


+++++++++++++++++++++++++++
逍遥兄如果来了,请将以下这个Crackme改成:
PYG 5.4 Cracker 小组 课外练习6
https://www.chinapyg.com/viewthread.php?tid=4897&extra=page%3D1

[ 本帖最后由 野猫III 于 2006-5-20 16:09 编辑 ]

godhack 发表于 2006-5-20 12:44:03

猫哥,,,出CRACKME的速度真快啊,收下了,呵呵

晚枫 发表于 2006-5-20 17:07:28

跟出了注册码!

野猫III 发表于 2006-5-20 17:48:31

原帖由 晚枫 于 2006-5-20 17:07 发表
跟出了注册码!

晚枫兄弟进步神速呀!

fantasy 发表于 2006-5-20 18:05:50

贴个简单算法分析~~

00467893|.55            push    ebp
00467894|.68 5A794600   push    0046795A
00467899|.64:FF30       push    dword ptr fs:
0046789C|.64:8920       mov   fs:, esp
0046789F|.8D55 FC       lea   edx,
004678A2|.8B83 FC020000 mov   eax,
004678A8|.E8 E7BCFCFF   call    00433594               ;取第一个文本框
004678AD|.837D FC 00    cmp   dword ptr , 0   ;与0比较
004678B1|.74 7C         je      short 0046792F         ;是空的就挂~~~
004678B3|.8D55 F8       lea   edx,
004678B6|.8B83 FC020000 mov   eax,
004678BC|.E8 D3BCFCFF   call    00433594               ;在来取一次
004678C1|.8B45 F8       mov   eax,          ;把取到的内容放到eax中
004678C4|.E8 BFFEFFFF   call    00467788               ;看看是不是数字
004678C9|.84C0          test    al, al               ;测试低8位
004678CB|.74 58         je      short 00467925         ;是0就跳(不是数字就跳)(检查输入字符的格式)
004678CD|.8D55 F4       lea   edx,
004678D0|.8B83 00030000 mov   eax,
004678D6|.E8 B9BCFCFF   call    00433594               ;在来取一次(取第2个文本框的内容)
004678DB|.8B45 F4       mov   eax,          ;把取到的内容放到eax中
004678DE|.50            push    eax                  ;把eax压栈
004678DF|.8D55 EC       lea   edx,
004678E2|.8B83 FC020000 mov   eax,
004678E8|.E8 A7BCFCFF   call    00433594               ;在来取一次(取第1个文本框的内容)
004678ED|.8B45 EC       mov   eax,           ;把取到的内容放到eax中
004678F0|.E8 9305FAFF   call    00407E88               ;此call就是把 字符串 转成16进制码放到eax中
004678F5|.35 1DD20C05   xor   eax, 50CD21D         ;(这里就是唯一的算法)EAX_1=EAX XOR 0x50CD21D
004678FA|.8D55 F0       lea   edx,
004678FD|.E8 4A04FAFF   call    00407D4C               ;把计算好的16进制值转成10进制
00467902|.8B55 F0       mov   edx,           ;把转好的真码放到edx中
00467905|.58            pop   eax                  ;弹出 第2个文本框中的 假码
00467906|.E8 4DC9F9FF   call    00404258               ;比较call(经典)(内存注册机)
0046790B|.74 0C         je      short 00467919         ;相等就成功~~
0046790D|.B8 70794600   mov   eax, 00467970          ;重来撒....
00467912|.E8 A5FEFBFF   call    004277BC
00467917|.EB 16         jmp   short 0046792F
00467919|>B8 84794600   mov   eax, 00467984          ;做对了!!!
0046791E|.E8 99FEFBFF   call    004277BC
00467923|.EB 0A         jmp   short 0046792F
00467925|>B8 98794600   mov   eax, 00467998          ;输入的数据格试错误,请检查
0046792A|.E8 8DFEFBFF   call    004277BC
0046792F|>33C0          xor   eax, eax
00467931|.5A            pop   edx
00467932|.59            pop   ecx
00467933|.59            pop   ecx
00467934|.64:8910       mov   fs:, edx
00467937|.68 61794600   push    00467961
0046793C|>8D45 EC       lea   eax,
0046793F|.E8 08C5F9FF   call    00403E4C
00467944|.8D45 F0       lea   eax,
00467947|.E8 00C5F9FF   call    00403E4C
0046794C|.8D45 F4       lea   eax,
0046794F|.BA 03000000   mov   edx, 3
00467954|.E8 17C5F9FF   call    00403E70
00467959\.C3            retn

算法没什么好总结的:

就是把输入的用户名(要是整形的数字)转成16进制在与0x50CD21D异或结果转成10进制就是注册码
顺便来个内存注册机

godhack 发表于 2006-5-20 20:11:15

yeah:victory:,看看算法!

godhack 发表于 2006-5-20 20:13:08

厉害啊 ,会算法分析的都高手啊,哎...俺要好好学习喽...哎...

[ 本帖最后由 godhack 于 2006-5-20 20:14 编辑 ]

lwz864 发表于 2006-5-22 06:24:07

如果问我,今天有什么感受.我要说.谢谢了,猫哥,你让我不再停止不前,有人带着学,真好.
谢谢团结的PYG.

wuyuan 发表于 2006-5-22 22:00:50

我的注册机怎么做不了,fantasy 兄看看

中断地址:467906
中断次数:1
第一字节:E8
指令长度:5
内存方式->寄存器->edx

地久天长 发表于 2006-5-25 15:45:10

中断地址:00467905
中断次数:1
第一字节:58
指令长度:1
内存方式->寄存器->edx

我这样做的成功了
页: [1] 2 3
查看完整版本: PYG 5.4 Cracker 小组 课外练习7