好友
阅读权限10
听众
最后登录1970-1-1
|
太星
发表于 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
|
|