首页
社区
课程
招聘
[讨论]学习破解的第4天!
发表于: 2006-7-3 00:07 5057

[讨论]学习破解的第4天!

2006-7-3 00:07
5057
以下是我所学4天 第一天所做的破文!(自称破文见笑了)

软件名称: 啊卡拉文件锁
软件大小:543KB
软件语言:简体中文
软件类别:未知
运行环境:Win9x/Me/NT/2000/XP
下载地址: http://free5.ys168.com/?lzmo123
破解级别:(菜鸟级)
破解工具:PEiD,OD

软件介绍:
是一款用于加密EXE文件的工具!

破解过程:
一、用PEiD是未知。
  既然查不出来就手工脱它。
    1.用OD载入

005EC7F2 >  9C              PUSHFD                                   ; 来到这里 F8一路向下
005EC7F3    60              PUSHAD
005EC7F4    E8 00000000     CALL 啊卡拉文.005EC7F9
005EC7F9    5D              POP EBP
005EC7FA    B8 07000000     MOV EAX,7
005EC7FF    2BE8            SUB EBP,EAX
005EC801    8DB5 5EFBFFFF   LEA ESI,DWORD PTR SS:[EBP-4A2]
005EC807    8B06            MOV EAX,DWORD PTR DS:[ESI]
005EC809    83F8 00         CMP EAX,0
005EC80C    74 11           JE SHORT 啊卡拉文.005EC81F
005EC80E    8DB5 86FBFFFF   LEA ESI,DWORD PTR SS:[EBP-47A]
005EC814    8B06            MOV EAX,DWORD PTR DS:[ESI]
005EC816    83F8 01         CMP EAX,1
005EC819    0F84 4B020000   JE 啊卡拉文.005ECA6A
005EC81F    C706 01000000   MOV DWORD PTR DS:[ESI],1
005EC825    8BD5            MOV EDX,EBP

005EC894   /EB 16           JMP SHORT 啊卡拉文.005EC8AC                  ; 向下跳转不管 继续F8
005EC896   |B9 01000000     MOV ECX,1
005EC89B   |033B            ADD EDI,DWORD PTR DS:[EBX]
005EC89D   |83C3 04         ADD EBX,4
005EC8A0   |833B 00         CMP DWORD PTR DS:[EBX],0

005EC901   /74 3F           JE SHORT 啊卡拉文.005EC942
005EC903   |8A07            MOV AL,BYTE PTR DS:[EDI]
005EC905   |47              INC EDI
005EC906   |2C E8           SUB AL,0E8
005EC908   |3C 01           CMP AL,1
005EC90A  ^|77 F7           JA SHORT 啊卡拉文.005EC903                   ; 这里要向上跳了,
005EC90C   |8B07            MOV EAX,DWORD PTR DS:[EDI]                   :在这里按F4运行到所选。

005EC932    2BC7            SUB EAX,EDI
005EC934    03C6            ADD EAX,ESI
005EC936    8907            MOV DWORD PTR DS:[EDI],EAX
005EC938    83C7 05         ADD EDI,5
005EC93B    80EB E8         SUB BL,0E8
005EC93E    8BC3            MOV EAX,EBX
005EC940  ^ E2 C6           LOOPD SHORT 啊卡拉文.005EC908                ; 又来了,不能往回跑!
005EC942    E8 2A010000     CALL 啊卡拉文.005ECA71                       :这里按F4,运行到所选

005ECA58    03C2            ADD EAX,EDX
005ECA5A    50              PUSH EAX
005ECA5B    FF95 BEFBFFFF   CALL DWORD PTR SS:[EBP-442]
005ECA61    5A              POP EDX
005ECA62    5B              POP EBX
005ECA63    59              POP ECX
005ECA64    5E              POP ESI
005ECA65    83C3 0C         ADD EBX,0C
005ECA68  ^ E2 E1           LOOPD SHORT 啊卡拉文.005ECA4B                ; 同样,不能回跳!
005ECA6A    61              POPAD                                    ; F4运行到 所选。 这里已经出现PDPAD说明快要到出口了!

0040038C    55              PUSH EBP                                  \\到达这里 个人认为这里不应该脱原因见下方。继续F8向下
0040038D    8BEC            MOV EBP,ESP
0040038F    6A FF           PUSH -1
00400391    68 00000000     PUSH 0
00400396    68 005F691E     PUSH 1E695F00
0040039B    00A1 00000000   ADD BYTE PTR DS:[ECX],AH
004003A1    50              PUSH EAX
004003A2    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
004003A9    83EC 68         SUB ESP,68
004003AC    53              PUSH EBX
004003AD    56              PUSH ESI
004003AE    57              PUSH EDI
004003AF    58              POP EAX
004003B0    58              POP EAX
004003B1    58              POP EAX
004003B2    83C4 68         ADD ESP,68
004003B5    58              POP EAX
004003B6    67:64:A3 0000   MOV DWORD PTR FS:[0],EAX
004003BB    58              POP EAX
004003BC    58              POP EAX
004003BD    58              POP EAX
004003BE    58              POP EAX
004003BF    8BE8            MOV EBP,EAX
004003C1  - E9 36D30900     JMP 啊卡拉文.0049D6FC
004003C6    0000            ADD BYTE PTR DS:[EAX],AL
004003C8    0000            ADD BYTE PTR DS:[EAX],AL
004003CA    0000            ADD BYTE PTR DS:[EAX],AL

0049D6FC      55            DB 55                                    ;  CHAR 'U'                \\来到这里 这里应该是OEP  在这里脱下来。
0049D6FD      8B            DB 8B
0049D6FE      EC            DB EC
0049D6FF      83            DB 83
0049D700      C4            DB C4
0049D701      F0            DB F0
0049D702      B8            DB B8
0049D703      F4D24900      DD 22222.0049D2F4
0049D707      E8            DB E8
0049D708   .  94            XCHG EAX,ESP
0049D709   .  8AF6          MOV DH,DH
0049D70B   .  FFA1 700C4A00 JMP DWORD PTR DS:[ECX+4A0C70]
0049D711      8B            DB 8B
0049D712      00            DB 00
0049D713      BA            DB BA
0049D714      60D74900      DD 22222.0049D760                        ;  ASCII "Akala EXE Lock"
0049D718      E8            DB E8
0049D719      DF            DB DF
0049D71A      DD            DB DD

脱下来后 程序可以运行,无须修复!PE深入扫描为Borland Delphi 6.0 - 7.0编写。
另外 个人经验,脱壳前在OD里面是看不到后面的注释 只有运行到所在位子才能看到。
脱壳后的文件在OD里面的注释是明文的 不是隐藏的
以这个程序为例:载入OD后在
005EC7F2 >  9C              PUSHFD
005EC7F3    60              PUSHAD
005EC7F4    E8 00000000     CALL 啊卡拉文.005EC7F9
005EC7F9    5D              POP EBP                                  ; 啊卡拉文.005EC7F9        \\这里的注释是隐藏的运行到这里才能看到。  

脱壳后:  
0049D6FC      55            DB 55                                    ;  CHAR 'U'                \\这里都是明文  没有隐藏
0049D6FD      8B            DB 8B
0049D6FE      EC            DB EC
0049D6FF      83            DB 83
0049D700      C4            DB C4
0049D701      F0            DB F0
0049D702      B8            DB B8
0049D703      F4D24900      DD 22222.0049D2F4
0049D707      E8            DB E8
0049D708   .  94            XCHG EAX,ESP
0049D709   .  8AF6          MOV DH,DH
0049D70B   .  FFA1 700C4A00 JMP DWORD PTR DS:[ECX+4A0C70]
0049D711      8B            DB 8B
0049D712      00            DB 00
0049D713      BA            DB BA
0049D714      60D74900      DD 22222.0049D760                        ;  ASCII "Akala EXE Lock"    \\这里都是明文 没有隐藏
0049D718      E8            DB E8
0049D719      DF            DB DF
0049D71A      DD            DB DD

好脱完壳,下面要注册了
软件注册有提示:注意!注册码错误!
有提示就OK,

用OD载入脱壳后的文件
右键→超级字符串参考  查找:注意!注册码错误!   的入口  鼠标双击进入。

0049D0B2   .  BA 40000000   MOV EDX,40
0049D0B7   .  E8 80D6FCFF   CALL 33333.0046A73C
0049D0BC   .  EB 0F         JMP SHORT 33333.0049D0CD
0049D0BE   >  BA 10000000   MOV EDX,10                                                        \\这里下断点
0049D0C3   .  B8 F0D14900   MOV EAX,33333.0049D1F0                   ;  注意!注册码错误!    \\来到这里
0049D0C8   .  E8 6FD6FCFF   CALL 33333.0046A73C
0049D0CD   >  33C0          XOR EAX,EAX
0049D0CF   .  5A            POP EDX

找到这里 关键跳应该在上面 那我门就在上面的一行 0049D0BE下断点F2
然后运行 F9 OD自动运行 程序,我门找到注册入口 并输入注册码 随便输。
当按下确定后OD就有反应了
在OD右下角出现 0012FC0C   00000000
0012FC10   00000000
0012FC14   00000000
0012FC18   00F06E20  ASCII "26002-16089"         \\正确注册码
0012FC1C   00F14DD0  ASCII "123456"              \\错误注册码
0012FC20   00F09D60  ASCII "lzmo123"             \\用户名
0012FC24   00000000
0012FC28   00F089B4  ASCII "8YI"
0012FC2C   00F19F40  ASCII "123456"
0012FC30   00F0A920  ASCII "lzmo123"

明文比较注册码
结果已经出现。
用户名:lzmo123
注册码:26002-16089

这是我学习破解的第4天。这是我第一篇破解文章 漏洞百出。望前辈指点。
另:不解1“在脱壳过程中 为什么有的CALL 必须按F7 有的就不用。”
    不解2“在脱壳过程中 为什么有的JMP要让他往回跳 有的者不能往回跳”
    不解3“在脱壳过程中 为什么有的时候OD被关闭,这是什么原因?”
    不解4“在脱壳过程中下断点有和意义,我还没弄明白。但是我没下断点 一些程序也可以脱下来”
    不解5“F7与SHIFT+F7 F8与SHIFT+F8 的区别在何处”
望前辈指点上面几个问题。谢谢!

学习不能讨价还价实事求是!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看雪的第一次沙发~!!!!!!!
另:不解1“在脱壳过程中 为什么有的CALL 必须按F7 有的就不用。”
    不解2“在脱壳过程中 为什么有的JMP要让他往回跳 有的者不能往回跳”
    不解3“在脱壳过程中 为什么有的时候OD被关闭,这是什么原因?”
    不解4“在脱壳过程中下断点有和意义,我还没弄明白。但是我没下断点 一些程序也可以脱下来”
    不解5“F7与SHIFT+F7 F8与SHIFT+F8 的区别在何处”

这里先引用一下,人记不住
1:进CALL F7,远CALL F8...这些都是经验之谈,当你脱一些壳的时候,刚开始是这样的 CALL XXXXXXXX JMP XXXXXXXX ,反正都是大同小异,在这里呢,CALL里面有陷阱的,具体的自己分析一下代码就看出来了

2:JMP回跳的时候是让某个条件成立,成立之后在JMP上面有个指令会让你跳过这个JMP,偶也喜欢脱壳,脱壳经验是不可少的,还有,高手们的教程中说哪个JMP要跳,哪个不要跳,都是他们试过好几回了的,脱壳有时候不是一次成功的

3:OD关闭的原因很多,有INT3检测,有反调试等等...可以用穿了马甲的OD或者用插件HIDEOD 1.3

4:如2点所说,你现在还只是一些简单的压缩壳,一些压缩壳向来都是秒脱,向你的问题2中,JMP回跳的问题上,在他回跳之前下断点,下次重新来的话又省下不少步骤,比如有的地方不能F4过去,要下断点用F9过去,其中的原因可参考回答2...

5.不知道你遇到过异常否....

在此赘叙了,还请楼下的斧正
2006-7-3 09:01
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
peid显示
nSPack 2.2 -> North Star/Liu Xing Ping
并且peid直接就可以脱壳
2006-7-3 12:27
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了。。。。。
8错8错
2006-7-3 18:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虽然你说的 我不是很理解。但是也谢谢你。。。
我总有一天会明白的!
2006-7-3 20:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
实践才是最重要的,经验来自于实践..多了你就明白了
破解实例信息-通往高手必经之路 这书不错,有实例,有视频,不过还是推荐看破文的好
2006-7-3 22:16
0
雪    币: 436
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
文章不错!!
本人看了那么久了!!
可现在还是不会搞那东西!
2006-7-3 22:24
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
NB 才学四天,就这么强!!!
2006-7-3 22:41
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
人家只学了4天破解, 但是可能学了N 年程序员
2006-7-3 23:30
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
10
仅仅第4天
很有进展了
学习
2006-7-3 23:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
破解是我给自己安排的 第3门自学课程
我并不是学编程的
学的和这些毫无挂钩。医学
破解 是我一直想学的 拖了一年了
5天前才开始学!
每天没那么多时间学习,所以就拿休息时间学。
关于破解心中有无数个问题,希望有心人能开导。。
在这里 我在提几个问题 希望前辈门 解答!
1.在脱壳后 不能运行 或运行后无反应 或提示缺少**.DLL文件 这是什么原因
是不是需要修复什么?
2.在脱壳后的修复过程 我不知道哪个过程叫什么名字 就是输入入口点,然后获取什么表的 ,过程中 所以的都为 “是” 就最后一项是否  这是什么原因。 修复什么技巧?
3.输入入口点 输入的是几位?4位还是5位 为什么我看别人的破文有的是5位  有的是4位。
2006-7-4 12:00
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
12
先学习PE知识
脱壳进步会更快
2006-7-4 12:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
“先学习PE知识
脱壳进步会更快”
其实我也想 但是不知道 重那里开始学!
脱壳基础知识入门(2006年版) 中 的PE知识点 并没说清楚!
WinHex,
Stud_PE,里面说到的这两个工具 不知道从那里开始学!(好象狗咬乌龟-无从下口)
能说下 PE知识点吗?
学习PE 分几个步骤!
2006-7-4 18:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
有时候计算机大多靠自己的...看雪的坛子有,你还是自己找下先
2006-7-4 19:35
0
游客
登录 | 注册 方可回帖
返回
//