首页
社区
课程
招聘
[原创]简单RSA128的笔记
发表于: 2006-10-22 08:25 11701

[原创]简单RSA128的笔记

2006-10-22 08:25
11701

【文章标题】: [原创]简单RSA128的笔记
【文章作者】: rdsnow[BCG][PYG][D.4s]
【作者邮箱】: [email]rdsnow@163.com[/email]
【作者主页】: http://rdsnow.ys168.com
【作者QQ号】: 83757177
【软件名称】: 全能上网计费器 - GPRS版
【下载地址】: http://www.newhua.com/soft/16628.htm
【保护方式】: 序列号保护
【使用工具】: ODbyDYK v1.10[05.09]
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【软件介绍】:
--------------------------------------------------------------------------------
最近学习脱壳没有什么成果,帮朋友破解了一个软件,朋友跟我要笔记,才发现自己现在已经懒得整理笔记了,花时间整理了下,索性也放一份论坛上。程序的破解不是很复杂,给刚学破解的朋友参考吧。没有技术含量,高手不要看了。
注册码长度19位,程序对注册码的5、10、15位没有验证,估计注册码形式该是"XXXX-XXXX-XXXX-XXXX",所以输入用户名"rdsnow[BCG][PYG][D.4s]",注册码"9876-5432-ABCD-CDEF"

00412BB0   .  6A 04         push 4
00412BB2   .  50            push eax
00412BB3   .  8BCE          mov ecx,esi
00412BB5   .  E8 4B7C0500   call OnlineTi.0046A805                   ;  注册码的第 1 段
00412BBA   .  50            push eax
00412BBB   .  8D4D EC       lea ecx,dword ptr ss:[ebp-14]
00412BBE   .  C645 FC 02    mov byte ptr ss:[ebp-4],2
00412BC2   .  E8 8A9A0500   call OnlineTi.0046C651
00412BC7   .  8D4D F0       lea ecx,dword ptr ss:[ebp-10]
00412BCA   .  C645 FC 01    mov byte ptr ss:[ebp-4],1
00412BCE   .  E8 45990500   call OnlineTi.0046C518                   ;  ....
00412BD3   .  6A 04         push 4
00412BD5   .  8D45 F0       lea eax,dword ptr ss:[ebp-10]
00412BD8   .  6A 05         push 5
00412BDA   .  50            push eax
00412BDB   .  8BCE          mov ecx,esi
00412BDD   .  E8 117B0500   call OnlineTi.0046A6F3                   ;  注册码的第 2 段
00412BE2   .  50            push eax
00412BE3   .  8D4D EC       lea ecx,dword ptr ss:[ebp-14]
00412BE6   .  C645 FC 03    mov byte ptr ss:[ebp-4],3
00412BEA   .  E8 B89C0500   call OnlineTi.0046C8A7                   ;  注册码的第 1 段 + 第 2 段
00412BEF   .  8D4D F0       lea ecx,dword ptr ss:[ebp-10]
00412BF2   .  C645 FC 01    mov byte ptr ss:[ebp-4],1
00412BF6   .  E8 1D990500   call OnlineTi.0046C518                   ;  ....
00412BFB   .  6A 04         push 4
00412BFD   .  8D45 F0       lea eax,dword ptr ss:[ebp-10]
00412C00   .  6A 0A         push 0A
00412C02   .  50            push eax
00412C03   .  8BCE          mov ecx,esi
00412C05   .  E8 E97A0500   call OnlineTi.0046A6F3                   ;  注册码的第 3 段
00412C0A   .  50            push eax
00412C0B   .  8D4D EC       lea ecx,dword ptr ss:[ebp-14]
00412C0E   .  C645 FC 04    mov byte ptr ss:[ebp-4],4
00412C12   .  E8 909C0500   call OnlineTi.0046C8A7                   ;  注册码的第 1 段 + 第 2 段 + 第 3 段
00412C17   .  8D4D F0       lea ecx,dword ptr ss:[ebp-10]
00412C1A   .  C645 FC 01    mov byte ptr ss:[ebp-4],1
00412C1E   .  E8 F5980500   call OnlineTi.0046C518                   ;  ....
00412C23   .  6A 04         push 4
00412C25   .  8D45 E0       lea eax,dword ptr ss:[ebp-20]
00412C28   .  6A 0F         push 0F
00412C2A   .  50            push eax
00412C2B   .  8BCE          mov ecx,esi
00412C2D   .  E8 C17A0500   call OnlineTi.0046A6F3                   ;  注册码的第 4 段
00412C32   .  50            push eax
00412C33   .  8D4D EC       lea ecx,dword ptr ss:[ebp-14]
00412C36   .  C645 FC 05    mov byte ptr ss:[ebp-4],5
00412C3A   .  E8 689C0500   call OnlineTi.0046C8A7                   ;  注册码的第 1 段 + 第 2 段 + 第 3 段 + 第 4 段
00412C3F   .  8D4D E0       lea ecx,dword ptr ss:[ebp-20]            ;  相当于去掉注册码中的 "-" 得到 "98765432ABCDCDEF"
00412C42   .  C645 FC 01    mov byte ptr ss:[ebp-4],1
00412C46   .  E8 CD980500   call OnlineTi.0046C518                   ;  ....
00412C4B   .  53            push ebx
00412C4C   .  8D4D E4       lea ecx,dword ptr ss:[ebp-1C]
00412C4F   .  893D 94564A00 mov dword ptr ds:[4A5694],edi
00412C55   .  E8 F7990500   call OnlineTi.0046C651
00412C5A   .  8B75 E4       mov esi,dword ptr ss:[ebp-1C]
00412C5D   .  33DB          xor ebx,ebx                              ;  i = 0
00412C5F   .  8B46 F8       mov eax,dword ptr ds:[esi-8]
00412C62   .  3BC7          cmp eax,edi
00412C64   .  7E 31         jle short OnlineTi.00412C97
00412C66   .  8D85 E0FDFFFF lea eax,dword ptr ss:[ebp-220]
00412C6C   .  8975 F0       mov dword ptr ss:[ebp-10],esi
00412C6F   .  2945 F0       sub dword ptr ss:[ebp-10],eax
00412C72   >  8BC3          mov eax,ebx                              ;  while ( i < 22 ) 用户名的长度是 22
00412C74   .  6A 08         push 8
00412C76   .  99            cdq
00412C77   .  59            pop ecx
00412C78   .  8DBC1D E0FDFF>lea edi,dword ptr ss:[ebp+ebx-220]
00412C7F   .  F7F9          idiv ecx                                 ;  i mod 8
00412C81   .  0C FF         or al,0FF                                ;  al = 0xFF
00412C83   .  8BCA          mov ecx,edx
00412C85   .  D2E0          shl al,cl                                ;  0xFF << ( i mod 8 )
00412C87   .  8B4D F0       mov ecx,dword ptr ss:[ebp-10]
00412C8A   .  320439        xor al,byte ptr ds:[ecx+edi]             ;  UseName[i] = UseName[i] xor ( 0xFF << i )
00412C8D   .  43            inc ebx                                  ;  i = i + 1
00412C8E   .  8807          mov byte ptr ds:[edi],al
00412C90   .  3B5E F8       cmp ebx,dword ptr ds:[esi-8]
00412C93   .^ 7C DD         jl short OnlineTi.00412C72               ;  end loop
00412C95   .  33FF          xor edi,edi
00412C97   >  FF76 F8       push dword ptr ds:[esi-8]
00412C9A   .  8B4D E8       mov ecx,dword ptr ss:[ebp-18]
00412C9D   .  8D85 E0FDFFFF lea eax,dword ptr ss:[ebp-220]
00412CA3   .  50            push eax
00412CA4   .  E8 78000000   call OnlineTi.00412D21                   ;  写入注册表 HKLM\Software\GrassSoft\OnlineTime\ [RemoteName]
00412CA9   .  8B5D EC       mov ebx,dword ptr ss:[ebp-14]
00412CAC   .  397B F8       cmp dword ptr ds:[ebx-8],edi
00412CAF   .  7E 2F         jle short OnlineTi.00412CE0
00412CB1   .  8D85 E0FDFFFF lea eax,dword ptr ss:[ebp-220]
00412CB7   .  895D F0       mov dword ptr ss:[ebp-10],ebx
00412CBA   .  2945 F0       sub dword ptr ss:[ebp-10],eax
00412CBD   >  8BC7          mov eax,edi                              ;  while ( i < 16 ) 注册码的长度是 16
00412CBF   .  6A 08         push 8
00412CC1   .  99            cdq
00412CC2   .  59            pop ecx
00412CC3   .  8DB43D E0FDFF>lea esi,dword ptr ss:[ebp+edi-220]
00412CCA   .  F7F9          idiv ecx                                 ;  i mod 8
00412CCC   .  0C FF         or al,0FF                                ;  al = 0xFF
00412CCE   .  8BCA          mov ecx,edx
00412CD0   .  D2E0          shl al,cl                                ;  0xFF << ( i mod 8 )
00412CD2   .  8B4D F0       mov ecx,dword ptr ss:[ebp-10]
00412CD5   .  320431        xor al,byte ptr ds:[ecx+esi]             ;  RegCode[i] = RegCode[i] xor ( 0xFF << i )
00412CD8   .  47            inc edi
00412CD9   .  8806          mov byte ptr ds:[esi],al
00412CDB   .  3B7B F8       cmp edi,dword ptr ds:[ebx-8]
00412CDE   .^ 7C DD         jl short OnlineTi.00412CBD               ;  end loop
00412CE0   >  FF73 F8       push dword ptr ds:[ebx-8]
00412CE3   .  8B4D E8       mov ecx,dword ptr ss:[ebp-18]
00412CE6   .  8D85 E0FDFFFF lea eax,dword ptr ss:[ebp-220]
00412CEC   .  50            push eax
00412CED   .  E8 BA000000   call OnlineTi.00412DAC                   ;  写入注册表 HKLM\Software\GrassSoft\OnlineTime\ [Mac]
00412CF2   .  8B4D E8       mov ecx,dword ptr ss:[ebp-18]
00412CF5   .  E8 D61C0300   call OnlineTi.004449D0
00412CFA   >  8065 FC 00    and byte ptr ss:[ebp-4],0
00412CFE   .  8D4D EC       lea ecx,dword ptr ss:[ebp-14]
00412D01   .  E8 12980500   call OnlineTi.0046C518                   ;  ....
00412D06   .  834D FC FF    or dword ptr ss:[ebp-4],FFFFFFFF
00412D0A   .  8D4D E4       lea ecx,dword ptr ss:[ebp-1C]
00412D0D   .  E8 06980500   call OnlineTi.0046C518                   ;  ....
00412D12   .  8B4D F4       mov ecx,dword ptr ss:[ebp-C]
00412D15   .  5F            pop edi
00412D16   .  5E            pop esi
00412D17   .  5B            pop ebx
00412D18   .  64:890D 00000>mov dword ptr fs:[0],ecx
00412D1F   .  C9            leave
00412D20   .  C3            retn

以上是将输入的用户名和注册码经过简单的异或加密后保存到注册表中,那么他以后必定会读取这两个注册键,搜索文本串"RemoteName"

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
2
学习...
2006-10-22 08:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
也来支持一下。。美文。。
2006-10-22 09:48
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
4
欣赏一下。
2006-10-22 12:24
0
雪    币: 175
活跃值: (2501)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个算法有点难,看的头疼。
2006-10-22 20:28
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
6
在我认为,现在很多软件下断很关键,找到关键断,算法是迟早的事情。

最讨厌高手们一开始不写如何下断,直接就是一堆代码。

写出来不就是要给人家看,给人家学习的吗!?

每个人都懂的看来你也懒得写吧!
2006-10-22 21:50
0
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
最初由 binbinbin 发布
在我认为,现在很多软件下断很关键,找到关键断,算法是迟早的事情。

最讨厌高手们一开始不写如何下断,直接就是一堆代码。

写出来不就是要给人家看,给人家学习的吗!?
........

大实话。希望楼主能补充下软件下断的过程。
2006-10-24 17:39
0
雪    币: 225
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
欣赏欣赏欣赏
2006-10-25 01:43
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
9
最初由 binbinbin 发布
在我认为,现在很多软件下断很关键,找到关键断,算法是迟早的事情。

最讨厌高手们一开始不写如何下断,直接就是一堆代码。

写出来不就是要给人家看,给人家学习的吗!?
........


bp GetWindowTextA
常规方法就能断下。单步几下看堆栈就能看到对用户名的处理了。
2006-10-25 11:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
欣赏一下.....
2006-10-25 13:33
0
游客
登录 | 注册 方可回帖
返回
//