吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9410|回复: 37
收起左侧

[第十课] 【交作业贴】吾爱破解培训第十课交作业专帖

 关闭 [复制链接]
回帖奖励 70 CB吾爱币 回复本帖可获得 5 CB吾爱币奖励! 每人限 1 次
Kido 发表于 2015-10-19 14:57
前提介绍:
《吾爱破解培训第十课:探寻逆向新航标---x64平台脱壳与破解实战》 讲师:Kido
http://www.52pojie.cn/thread-422192-1-1.html


请大家用课程学到的知识,对加壳的作业进行脱壳和编写脱壳脚本,并破解/逆出KEY,脱壳脚本可以直接上传,脱壳成品可以上传网盘贴地址,节省论坛空间就不要上传到论坛了。

作业截至到2015年10月25号00:00前提交算数,没有加报名群的同学也可以提交,后期会通过作业的提交情况,来淘汰没有交作业的,让交作业的新人加入。


对于作业的解答我已经更新到上面培训贴中,作业遇到问题的可以参考一下。

帖子我设置只有我可见,等一周后取消,切记不要回复和作业无关内容,否则会被扣分,前50个名交作业的同学有奖励。

免费评分

参与人数 3热心值 +3 收起 理由
凌云9 + 1 谢谢@Thanks!
蚯蚓翔龙 + 1 谢谢@Thanks!
WJJIahUa + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

太星 发表于 2015-10-20 11:10

回帖奖励 +5 CB吾爱币

脱壳很简单,和教程一样。
破解,运行下断点 bp MessgeBoxA,输入52PoJie.Cn,check
断在
00007FFD1C8236A0 | sub rsp,38                              |
00007FFD1C8236A4 | xor r11d,r11d                           |
00007FFD1C8236A7 | cmp dword ptr ds:[7FFD1C839104],r11d    |
00007FFD1C8236AE | je user32.7FFD1C8236DE                  |
00007FFD1C8236B0 | mov rax,qword ptr gs:[30]      

看堆栈返回到 00000001400010EB
00000001400010E6 | E8 15 FF FF FF           | call 140001000                          |
00000001400010EB | EB F1                    | jmp 1400010DE

重载,跟进call 140001000 ,找到key的计算

000000014000101B | call qword ptr ds:[<&GetDlgItemTextA>]  |
0000000140001021 | cmp byte ptr ds:[140015820],0           | ;比较长度是否=0
0000000140001028 | je 140001060                            |
000000014000102A | lea rdx,qword ptr ds:[140015820]        | ;140015820:"52KjEd`.>i"
0000000140001031 | mov cl,byte ptr ds:[rdx]                | ;取一字节
0000000140001033 | lea eax,dword ptr ds:[rcx-61]           |
0000000140001036 | cmp al,19                               | ;大于19则跳
0000000140001038 | ja 140001042                            |
000000014000103A | sub cl,5                                |
000000014000103D | cmp cl,7A                               |
0000000140001040 | jmp 14000104F                           |
0000000140001042 | lea eax,dword ptr ds:[rcx-41]           |
0000000140001045 | cmp al,19                               | ;大于19跳
0000000140001047 | ja 140001058                            |
0000000140001049 | sub cl,5                                |
000000014000104C | cmp cl,5A                               |
000000014000104F | mov byte ptr ds:[rdx],cl                |
0000000140001051 | jle 140001058                           | ;小于等于7A跳
0000000140001053 | sub cl,1A                               |
0000000140001056 | mov byte ptr ds:[rdx],cl                |
0000000140001058 | inc rdx                                 |
000000014000105B | cmp byte ptr ds:[rdx],0                 |
000000014000105E | jnz 140001031                           |

计算完,比较
0000000140001060 | lea rdx,qword ptr ds:[140015820]        | ;140015820:"52KjEd`.>i"
0000000140001067 | lea rcx,qword ptr ds:[1400112F0]        | ;1400112F0:"52PoJie.Cn"
000000014000106E | call 14000B900                          | ;与计算后的比较
0000000140001073 | mov rcx,rbx                             |
0000000140001076 | test eax,eax                            |
0000000140001078 | jnz 14000108D                           | ;不等跳走
000000014000107A | xor r9d,r9d                             |
000000014000107D | lea r8,qword ptr ds:[1400112FC]         | ;1400112FC:"Boom!"
0000000140001084 | lea rdx,qword ptr ds:[140011308]        | ;140011308:"Congratulations! You have successfully Registered"
000000014000108B | jmp 1400010A1                           |
000000014000108D | mov r9d,10                              |
0000000140001093 | lea r8,qword ptr ds:[140011340]         | ;140011340:"Boomshakalaka"
000000014000109A | lea rdx,qword ptr ds:[140011350]        | ;140011350:"You Failed!"

通过计算得出注册码:52UtOnj.Hs


附上易语言计算代码
.版本 2
.子程序 逆向key
.局部变量 i, 整数型
.局部变量 pass, 字节集
.局部变量 x, 整数型
.局部变量 al, 字节型
.局部变量 rcx, 整数型
.局部变量 cl, 字节型
.局部变量 key, 文本型
pass = 到字节集 (“52PoJie.Cn”)
.计次循环首 (10, i)
    .计次循环首 (255, x)
        rcx = 十六进制 (“FFFFFF00”) + x
        cl = rcx
        al = rcx - 十六进制 (“61”)
        .如果真 (al ≤ 十六进制 (“19”))
            cl = cl - 5
            .如果真 (al > 十六进制 (“7A”))
                al = al - 十六进制 (“1A”)
            .如果真结束
        .如果真结束
        al = rcx - 十六进制 (“41”)
        .如果真 (al ≤ 十六进制 (“19”))
            cl = cl - 5
            .如果真 (cl > 十六进制 (“5A”))
                cl = cl - 十六进制 (“1A”)
            .如果真结束
        .如果真结束
        .如果真 (pass [i] = cl)
            pass [i] = x
            跳出循环 ()
        .如果真结束
    .计次循环尾 ()
.计次循环尾 ()
key = 取字节集数据 (pass, #文本型, )
输入框 (“获取的注册码是:”, “提示”, key, key, , )


脱壳成品
链接:http://pan.baidu.com/s/1pJ5VFBl 密码:01yw

第十课作业脚本.txt

253 Bytes, 下载次数: 5, 下载积分: 吾爱币 -1 CB

Roi 发表于 2015-10-24 16:44

回帖奖励 +5 CB吾爱币

x64位平台下的Mpress壳的脱壳破解笔记:
===========
1.指令起始部分:
000000014001B0C0 | 57                       | push rdi                                |
000000014001B0C1 | 56                       | push rsi                                |
000000014001B0C2 | 53                       | push rbx                                |
000000014001B0C3 | 51                       | push rcx                                |
000000014001B0C4 | 52                       | push rdx                                |
000000014001B0C5 | 41 50                    | push r8                                 |
-------------------------------------------------------------------------------
那么指令结束部分:
                                            | pop r8
                                            | pop rdx
                                            | pop rcx
                                            | pop rbx
                                            | pop rsi
                                            | pop rdi
-------------------------------------------------------
单步后发现指令结束部分与上面一毛一样:
0000000140011D12 | 41 58                    | pop r8                                  |
0000000140011D14 | 5A                       | pop rdx                                 |
0000000140011D15 | 59                       | pop rcx                                 |
0000000140011D16 | 5B                       | pop rbx                                 |
0000000140011D17 | 5E                       | pop rsi                                 |
0000000140011D18 | 5F                       | pop rdi                                 |

二进制:41585A595B5E5F
------------------------------------------------------------------------------
2.
000000014001BB9A | 41 5F                    | pop r15                                 |
000000014001BB9C | 41 5E                    | pop r14                                 |
000000014001BB9E | 41 5D                    | pop r13                                 |
000000014001BBA0 | 41 5C                    | pop r12                                 |
000000014001BBA2 | 5F                       | pop rdi                                 |
000000014001BBA3 | 5E                       | pop rsi                                 |
000000014001BBA4 | 5D                       | pop rbp                                 |
000000014001BBA5 | 5B                       | pop rbx                                 |
000000014001BBA6 | C3                       | ret                                     |
二进制:415F415E415D415C5F5E5D5BC3

OEP:0000000140001180 | 48 83 EC 28              | sub rsp,28                              |
search references:you failed
0000000140001078 | 75 13                    | jnz 14000108D                           | ------------->nop

脚本编写:
//Script to Unpack MPress On x64 dbg
//Author:Roi


find rip,"415F415E415D415C5F5E5D5BC3"
mov first_jmp,$result
add first_jmp,D
bp first_jmp
erun
bc
sti
find rip,"41585A595B5E5F"
mov second_jmp,$result
add second_jmp,7
bp second_jmp
erun
sti
msg "this is oep"
ret

链接: http://pan.baidu.com/s/1pJ1SkWj 密码: 9d93
eg:只爆破了,key应该是52PoJie.Cn

呲花哥c 发表于 2015-10-19 15:02

回帖奖励 +5 CB吾爱币

本帖最后由 呲花哥c 于 2015-10-19 15:03 编辑

虽然我看不懂作业 学的语言不通 但还是顶下楼主
头像被屏蔽
1049556901 发表于 2015-10-19 15:06

回帖奖励 +5 CB吾爱币

提示: 作者被禁止或删除 内容自动屏蔽
胡99 发表于 2015-10-19 15:48

回帖奖励 +5 CB吾爱币

支持一下,正在做
蚯蚓翔龙 发表于 2015-10-19 17:06

回帖奖励 +5 CB吾爱币

64位的脚本母鸡怎么写呀,K洞大也没教我们。。。
Unpack:
http://yunpan.cn/cFrd6easxuV6S  访问密码 1c66
只有一个虚拟机64位的所以也没测试跨平台了,感觉应该OK的才是
Key:Fuck L4   好像是这个
苏紫方璇 发表于 2015-10-19 18:37

回帖奖励 +5 CB吾爱币

交作业啦先上注册码
52UtOnj.Hs
算法,"52PoJie.Cn"每位ascii码+5
QQ截图20151019183738.png
脚本,最后一点单步按说应该一个即可,但是我这里x64dbg可能存在一些问题,需要两个,为了通用,故加了个判断。
[Asm] 纯文本查看 复制代码
sti
bphws rsp,"r"
erun
bphwc rsp-8
mov old,rip
loop:
sti
cmp old,rip
jz loop
ret

niuniu919 发表于 2015-10-19 19:08

回帖奖励 +5 CB吾爱币

本帖最后由 niuniu919 于 2015-10-19 19:43 编辑

第八九课由于电脑原因没有仔细研究,所以写脚本还很吃力,先破解了再研究写脚本。使用爆破的方法。

000.png

爆破版成品:http://pan.baidu.com/s/1mgkxeHU




凌云9 发表于 2015-10-19 19:33

回帖奖励 +5 CB吾爱币

英文太差x64用着太坑了
链接:http://pan.baidu.com/s/1i3tW8Zz 密码:i8zc
蚯蚓翔龙 发表于 2015-10-19 19:52
看了下群里,才知道原来作业更新了。。。
不过脱法还是类似的没啥好说
Key:52UtOnj.Hs
黑的思想 发表于 2015-10-19 20:15

回帖奖励 +5 CB吾爱币

本帖最后由 黑的思想 于 2015-10-20 19:14 编辑

注册码:52UtOnj.Hs
爆破版(已经脱壳)作业地址:http://pan.baidu.com/s/1mgISZDQ
没有一份脚本命令的帮助文件,还真是难写
[Actionscript3] 纯文本查看 复制代码
sti
BPHWS rsp,"r"
erun
bphwc
sti
sti
MSG "THIS IS OEP !"
RET




您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 15:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表