首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
付费问答
发新帖
0
0
[旧帖]
[原创]介绍一个写代码的好工具及破解
0.00雪花
发表于: 2007-7-12 11:54
6461
[旧帖]
[原创]介绍一个写代码的好工具及破解
0.00雪花
wthbbs
2007-7-12 11:54
6461
偶学电子,本与计算机无缘,但用单片机写代码多了,也就有了程序的概念和破解的基础.偏偏没有计算机理论,高级语言应用很少,于是对写注册机就不敢有要求,追出注册码就不错了.
偶写代码,最初是用记事本,后来用台湾的汉书(HE),觉得不错就一直用下来.虽然再后来用过UE,但因汉书(HE)编辑功能让偶这些写代码的人很方便,而且偶用熟了汉书(HE),也就放弃UE.
下面是汉书HE编辑功能的简介:
. 行复制(Alt-X)加
上下换行(Ctrl-↑、Ctrl-↓)
这可以省去传统的「复制、贴上」繁杂过程。
. 好用的搜寻(Ctrl-F)、代换(Alt-R)
多种选项可以精准的搜寻、代换。
可以搜寻、代换多档,包括整个硬盘。
. Undo/Redo(Ctrl-Z/CtrlY)
只要尚未存档、或是将档案移出,就能一步步的还原回原来的状态。
也能对还原再作恢复。
. 颜色变化、字型变化
可以设定画面各部位的颜色,显示的字型、大小
可以设定条件让某些文字变色,对于撰写程序语言特别有用
。
汉书HE默认Tab键仅仅是将光标跳格,不是连同光标后的内容一起跳格,这点与其它编辑软件不同.
前段时间上大方广网站找了个汉书XP8.4简体正式版(
6aaK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4@1L8$3&6W2i4K6u0W2j5$3!0E0i4K6u0W2N6s2N6Q4x3V1k6K6N6r3!0F1k6g2)9J5c8X3k6A6L8r3g2Q4x3V1k6t1c8e0S2Q4x3X3c8s2b7W2)9J5k6i4A6A6M7q4)9J5z5g2)9J5b7#2!0q4y4g2!0m8c8g2)9^5z5g2!0q4z5q4!0m8x3#2)9^5y4g2)9J5b7#2!0q4z5q4!0n7c8W2)9&6x3q4!0q4z5q4!0m8x3g2)9^5b7#2)9J5b7#2!0q4z5q4!0m8y4W2)9^5x3g2!0q4z5q4!0n7c8g2)9&6x3#2!0q4y4g2)9^5y4g2!0m8y4g2!0q4y4g2!0n7b7g2)9^5c8W2!0q4y4g2)9^5z5q4)9&6y4#2!0q4y4g2)9^5c8W2!0n7y4#2)9J5k6g2!0q4z5q4!0n7c8g2)9&6x3#2!0q4y4g2)9^5y4g2!0m8y4g2!0q4y4g2!0n7b7g2)9^5c8W2!0q4y4g2)9^5z5q4)9&6y4#2!0q4y4g2)9^5c8W2!0n7y4#2!0q4y4g2)9&6x3q4)9^5c8g2!0q4y4#2!0m8x3g2!0m8c8g2!0q4y4g2!0m8c8g2)9&6b7g2)9J5b7#2!0q4y4W2)9^5c8W2)9&6x3q4!0q4y4#2!0m8y4q4!0n7b7g2!0q4y4g2)9^5y4#2!0n7b7g2!0q4z5g2)9&6y4q4)9&6z5g2)9J5k6g2!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4W2)9&6z5q4!0m8c8W2!0q4z5q4!0m8y4W2)9^5x3g2!0q4y4W2!0n7x3#2!0m8z5q4!0q4y4g2)9^5y4W2)9^5b7#2!0q4y4#2)9&6b7g2)9^5y4q4)9J5b7#2!0q4y4q4!0n7b7g2)9^5c8g2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4q4!0n7z5q4)9^5b7W2!0q4z5g2)9&6c8q4!0m8x3W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4#2!0m8x3q4!0n7y4q4!0q4z5q4!0m8y4#2!0m8x3#2)9J5k6b7`.`.
查壳:无,VC++6.0,偶不懂高级语言,不知道不同的编程语言对于破解有哪些不一样,求高人指点.
用OD,按惯例,先查出错提示的字串,失望.
查函数参考,还好,有GetdlgitemtextA,就它,在每人参考上设置断点.哇,18个.F9,输入姓名,序号和流水号,确定,断下后前面的几个断点可不管,到45E3B3处的断点后慢慢分析(实际上只需断这里即可).
0045E3B2 |. 50 push eax ; |hWnd
0045E3B3 |. FF15 48434A00 call dword ptr [<&USER32.GetDlgItemTe>; \GetDlgItemTextA 中断点
0045E3B9 |. 0FBE8D 6CFCFF>movsx ecx, byte ptr [ebp-394] ;检查输入S/N是否为空
0045E3C0 |. 85C9 test ecx, ecx
0045E3C2 |. 74 16 je short 0045E3DA
0045E3C4 |. 0FBE95 A0FBFF>movsx edx, byte ptr [ebp-460]
0045E3CB |. 85D2 test edx, edx ;检查输入EMAIL是否为空
0045E3CD |. 74 0B je short 0045E3DA
0045E3CF |. 0FBE85 40FCFF>movsx eax, byte ptr [ebp-3C0]
0045E3D6 |. 85C0 test eax, eax ;检查输入流水号是否为空
0045E3D8 |. 75 27 jnz short 0045E401
0045E3DA |> 6A 00 push 0
0045E3DC |. 68 B8754B00 push 004B75B8 ; error
0045E3E1 |. 68 C0754B00 push 004B75C0 ; /register/fieldempty-
0045E3E6 |. E8 FAAEFBFF call 004192E5 ; \He8.004192E5
0045E3EB |. 83C4 04 add esp, 4
0045E3EE |. 50 push eax ; |Text
0045E3EF |. 6A 00 push 0 ; |hOwner = NULL
0045E3F1 |. FF15 88434A00 call dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
0045E3F7 |. B8 01000000 mov eax, 1
0045E3FC |. E9 9C020000 jmp 0045E69D
0045E401 |> 8B0D 74DA4A00 mov ecx, dword ptr [4ADA74] ; He8.004ADBB0
0045E407 |. 51 push ecx
0045E408 |. 8D95 4CFCFFFF lea edx, dword ptr [ebp-3B4]
0045E40E |. 52 push edx
0045E40F |. E8 9C810300 call 004965B0
0045E414 |. 83C4 08 add esp, 8
0045E417 |. 68 D4754B00 push 004B75D4 ; -
0045E41C |. 8D85 4CFCFFFF lea eax, dword ptr [ebp-3B4]
0045E422 |. 50 push eax
0045E423 |. E8 98810300 call 004965C0
0045E428 |. 83C4 08 add esp, 8
0045E42B |. 8D8D 6CFCFFFF lea ecx, dword ptr [ebp-394] ;输入的S/N
0045E431 |. 51 push ecx
0045E432 |. 8D95 4CFCFFFF lea edx, dword ptr [ebp-3B4]
0045E438 |. 52 push edx
0045E439 |. E8 82810300 call 004965C0 ;连接HE8-和S/N作为新的S/N
0045E43E |. 83C4 08 add esp, 8
0045E441 |. 8D85 4CFCFFFF lea eax, dword ptr [ebp-3B4]
0045E447 |. 50 push eax ; /Arg1
0045E448 |. E8 51F4FFFF call 0045D89E ; \He8.0045D89E 关键,F7进去看看
0045E44D |. 83C4 04 add esp, 4
0045E450 |. 83F8 03 cmp eax, 3
0045E453 |. 75 27 jnz short 0045E47C ;跳走就OK
0045E455 |. 6A 00 push 0
0045E457 |. 68 D8754B00 push 004B75D8 ; error
0045E45C |. 68 E0754B00 push 004B75E0 ; /register/snoerr%s\reg
0045E461 |. E8 7FAEFBFF call 004192E5 ; \He8.004192E5
0045E466 |. 83C4 04 add esp, 4
0045E469 |. 50 push eax ; |Text
0045E46A |. 6A 00 push 0 ; |hOwner = NULL
0045E46C |. FF15 88434A00 call dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
0045E472 |. B8 01000000 mov eax, 1
0045E477 |. E9 21020000 jmp 0045E69D
0045E47C |> 68 E0564E00 push 004E56E0
0045E481 |. 68 F0754B00 push 004B75F0 ; %s\reg
0045E486 |. 8D8D 7CFCFFFF lea ecx, dword ptr [ebp-384]
0045E48C |. 51 push ecx
0045E48D |. E8 188F0300 call 004973AA
0045E492 |. 83C4 0C add esp, 0C
0045E495 |. 8D95 A0FDFFFF lea edx, dword ptr [ebp-260]
0045E49B |. 52 push edx ; /pHandle
0045E49C |. 68 06000200 push 20006 ; |Access = KEY_WRITE
0045E4A1 |. 6A 00 push 0 ; |Reserved = 0
0045E4A3 |. 8D85 7CFCFFFF lea eax, dword ptr [ebp-384] ; |
0045E4A9 |. 50 push eax ; |Subkey
0045E4AA |. 68 02000080 push 80000002 ; |hKey = HKEY_LOCAL_MACHINE
0045E4AF |. FF15 28404A00 call dword ptr [<&ADVAPI32.RegOpenKey>; \RegOpenKeyExA
45E448处的Call:
0045D89E /$ 55 push ebp
0045D89F |. 8BEC mov ebp, esp
0045D8A1 |. 83EC 14 sub esp, 14
0045D8A4 |. C745 F0 00000>mov dword ptr [ebp-10], 0
0045D8AB |. C745 FC 00000>mov dword ptr [ebp-4], 0
0045D8B2 |. C745 F4 00000>mov dword ptr [ebp-C], 0
0045D8B9 |. C705 AC584E00>mov dword ptr [4E58AC], 0
0045D8C3 |. A1 68DA4A00 mov eax, dword ptr [4ADA68]
0045D8C8 |. 8945 F4 mov dword ptr [ebp-C], eax
0045D8CB |. E8 D977FDFF call 004350A9
0045D8D0 |. 85C0 test eax, eax
0045D8D2 |. 74 11 je short 0045D8E5
0045D8D4 |. C705 AC584E00>mov dword ptr [4E58AC], 4
0045D8DE |. 33C0 xor eax, eax
0045D8E0 |. E9 B9000000 jmp 0045D99E
0045D8E5 |> C745 FC 00000>mov dword ptr [ebp-4], 0
0045D8EC |. 8B4D 08 mov ecx, dword ptr [ebp+8]
0045D8EF |. 51 push ecx
0045D8F0 |. E8 CB960300 call 00496FC0 ;计算新S/N长度
0045D8F5 |. 83C4 04 add esp, 4
0045D8F8 |. 8945 EC mov dword ptr [ebp-14], eax
0045D8FB |. 837D EC 11 cmp dword ptr [ebp-14], 11 ;比较新S/N长度是否为11h,即是否为17个ASCII码
0045D8FF |. 74 0A je short 0045D90B ;跳走就OK,不跳则完蛋
0045D901 |. B8 03000000 mov eax, 3
0045D906 |. E9 93000000 jmp 0045D99E
0045D90B |> C745 F0 00000>mov dword ptr [ebp-10], 0
0045D912 |. EB 09 jmp short 0045D91D
0045D914 |> 8B55 F0 /mov edx, dword ptr [ebp-10]
0045D917 |. 83C2 01 |add edx, 1
0045D91A |. 8955 F0 |mov dword ptr [ebp-10], edx
0045D91D |> 8B45 EC mov eax, dword ptr [ebp-14]
0045D920 |. 83E8 01 |sub eax, 1
0045D923 |. 3945 F0 |cmp dword ptr [ebp-10], eax
0045D926 |. 73 13 |jnb short 0045D93B
0045D928 |. 8B4D 08 |mov ecx, dword ptr [ebp+8]
0045D92B |. 034D F0 |add ecx, dword ptr [ebp-10]
0045D92E |. 0FBE11 |movsx edx, byte ptr [ecx]
0045D931 |. 8B45 FC |mov eax, dword ptr [ebp-4]
0045D934 |. 03C2 |add eax, edx ;计算新S/N前16个ASCII码之和
0045D936 |. 8945 FC |mov dword ptr [ebp-4], eax
0045D939 |.^ EB D9 \jmp short 0045D914 (initial cpu selection)
0045D93B |> 8B45 FC mov eax, dword ptr [ebp-4]
0045D93E |. 99 cdq
0045D93F |. B9 1A000000 mov ecx, 1A
0045D944 |. F7F9 idiv ecx ;前16个ASCII码之和除以1Ah
0045D946 |. 83C2 41 add edx, 41 ;取余数加41h,调整为大写字母
0045D949 |. 8855 F8 mov byte ptr [ebp-8], dl
0045D94C |. 0FBE55 F8 movsx edx, byte ptr [ebp-8]
0045D950 |. 83FA 49 cmp edx, 49
0045D953 |. 74 09 je short 0045D95E
0045D955 |. 0FBE45 F8 movsx eax, byte ptr [ebp-8]
0045D959 |. 83F8 4F cmp eax, 4F
0045D95C |. 75 0A jnz short 0045D968
0045D95E |> 0FBE4D F8 movsx ecx, byte ptr [ebp-8]
0045D962 |. 83C1 01 add ecx, 1
0045D965 |. 884D F8 mov byte ptr [ebp-8], cl
0045D968 |> C705 AC584E00>mov dword ptr [4E58AC], 4
0045D972 |. 8B55 08 mov edx, dword ptr [ebp+8]
0045D975 |. 52 push edx
0045D976 |. E8 45960300 call 00496FC0
0045D97B |. 83C4 04 add esp, 4
0045D97E |. 83E8 01 sub eax, 1
0045D981 |. 8945 F0 mov dword ptr [ebp-10], eax
0045D984 |. 8B45 08 mov eax, dword ptr [ebp+8]
0045D987 |. 0345 F0 add eax, dword ptr [ebp-10]
0045D98A |. 0FBE08 movsx ecx, byte ptr [eax] ;取新S/N的最后一位
0045D98D |. 0FBE55 F8 movsx edx, byte ptr [ebp-8] ;取前面计算得到的大写字母
0045D991 |. 3BCA cmp ecx, edx ;比较这两个数是否相等
0045D993 |. 74 07 je short 0045D99C ;相等就OK,不相等则完蛋
0045D995 |. B8 03000000 mov eax, 3
0045D99A |. EB 02 jmp short 0045D99E
0045D99C |> 33C0 xor eax, eax
0045D99E |> 8BE5 mov esp, ebp
0045D9A0 |. 5D pop ebp
0045D9A1 \. C3 retn
算法很简单,上面的注解都有了.姓名和流水号任意,序号须为13位.先将HE8-和序号连接成17位作为新的序号,再将前16的ASCII取和并除以26,余数加41h作为序号的最后一位.注册后在注册表HKEY_MACHINE\SOFTWARE\大方广\汉书XP\reg下写入相关内容,同时会将注册信息发到大方广.偶试过将注册表send项数据由0改为1,便不发送注册信息了,改为0则在每次启动汉书时均会提示发送注册信息.偶就不再去破解这点了,哪位有兴趣可试试.
偶是小菜鸟,作为对新手的鼓励,现将破解分享给各位,同时将好工具介绍给大家.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
yingyue
雪 币:
1844
活跃值:
(35)
能力值:
( LV3,RANK:30 )
在线值:
发帖
16
回帖
2593
粉丝
3
关注
私信
yingyue
2
楼
HE8-AAAAAAAAAANNJ
破解所得
2007-7-12 13:24
0
firefly
雪 币:
260
活跃值:
(102)
能力值:
( LV9,RANK:170 )
在线值:
发帖
15
回帖
321
粉丝
0
关注
私信
firefly
4
3
楼
有机会试试vim或者emacs吧
2007-7-12 15:11
0
wthbbs
雪 币:
200
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
19
粉丝
0
关注
私信
wthbbs
4
楼
Sorry. 楼上的,偶孤陋寡闻,没见过vim和emacs,不知是啥东东,请解答.如果好用,请介绍给大家.
2007-7-12 18:00
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
wthbbs
1
发帖
19
回帖
10
RANK
关注
私信
他的文章
[原创]介绍一个写代码的好工具及破解
6462
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部