======================================================================
【工程作者】深海游侠[CZG][OCN]
【作者邮箱】shenhaiyouxia@163.com
【作者主页】http://86.22.cn/
======================================================================
【软件名称】私人保险箱 V5.50
【下载地址】http://www4.skycn.com/soft/14176.html
【加壳保护】ASPack加壳
【软件介绍】
为了不使自己的文件能被他人随意使用,你可能会使用一些加密软件来对文件进行加密,但在这种情况下,在文件较大或文件很多的情况下需要花费较多的时间,而且当要使用这些文件的时候,还需要对其进行解密,而使用完毕后,又要重新加密,十分麻烦。其实只要能将这些文件彻底隐藏起来不就行了。本软件就能帮您实现这个功能。
软件能够帮助您方便快捷彻底地隐藏文件。无论有多少个文件,只要把这些文件或这些文件所在的文件夹存放到所设置的私人保险箱中,又或者直接将这些文件所在的目录设置为私人保险箱,即可实现文件的彻底隐藏。本软件在使用上非常简单。第一次运行的时候请以管理员的身份登录,至少创建一个用户,然后以用户的身份登录,设置该用户的私人保险箱。设置完成后,当要使用私人保险箱时,只需在\\\"我的电脑\\\"或任何一个文件夹上单击右键,选取\\\"进入私人保险箱\\\",输入正确的密码即可使用属于你的所有私人保险箱。
======================================================================
【工程平台】Win ME
【调试工具】TRW2000系列
【脱壳方式】专用工具脱壳
======================================================================
【破解过程】
首先下断点,程序顺利断下,我们来到这里!
016F:004DACC0 50 PUSH EAX //EAX=假码
016F:004DACC1 6A03 PUSH BYTE +03
016F:004DACC3 8D45F8 LEA EAX,[EBP-08]
016F:004DACC6 50 PUSH EAX
016F:004DACC7 8D45F4 LEA EAX,[EBP-0C]
016F:004DACCA E891AEFEFF CALL 004C5B60 //猜的没错的话应该是读取机器码,具体没跟。
016F:004DACCF 8B45F4 MOV EAX,[EBP-0C] //EAX=机器码
016F:004DACD2 B902000000 MOV ECX,02
016F:004DACD7 BA01000000 MOV EDX,01
016F:004DACDC E857AFFEFF CALL 004C5C38 //毫无疑问,算法CALL,跟进!
016F:004DACE1 8B55F8 MOV EDX,[EBP-08] //EDX=真码
016F:004DACE4 58 POP EAX //EAX=假码
016F:004DACE5 E8A2A3F2FF CALL 0040508C //经典比较
016F:004DACEA 7566 JNZ 004DAD52 //关键跳
016F:004DACEC B201 MOV DL,01
016F:004DACEE A1847A4600 MOV EAX,[00467A84]
016F:004DACF3 E88CCEF8FF CALL 00467B84
016F:004DACF8 8BD8 MOV EBX,EAX
016F:004DACFA BA01000080 MOV EDX,80000001
016F:004DACFF 8BC3 MOV EAX,EBX
016F:004DAD01 E81ECFF8FF CALL 00467C24
016F:004DAD06 B101 MOV CL,01
016F:004DAD08 BAACAD4D00 MOV EDX,004DADAC
016F:004DAD0D 8BC3 MOV EAX,EBX
016F:004DAD0F E854D0F8FF CALL 00467D68
016F:004DAD14 8D55F0 LEA EDX,[EBP-10]
016F:004DAD17 8B8604040000 MOV EAX,[ESI+0404]
016F:004DAD1D E846ACF6FF CALL 00445968
016F:004DAD22 8B4DF0 MOV ECX,[EBP-10]
016F:004DAD25 BAC8AD4D00 MOV EDX,004DADC8
016F:004DAD2A 8BC3 MOV EAX,EBX
016F:004DAD2C E863D5F8FF CALL 00468294
016F:004DAD31 8BC3 MOV EAX,EBX
016F:004DAD33 E8CC91F2FF CALL 00403F04
016F:004DAD38 6A00 PUSH BYTE +00
016F:004DAD3A B9D0AD4D00 MOV ECX,004DADD0
016F:004DAD3F BADCAD4D00 MOV EDX,004DADDC
016F:004DAD44 A1541C4E00 MOV EAX,[004E1C54]
016F:004DAD49 8B00 MOV EAX,[EAX]
016F:004DAD4B E898B9F8FF CALL 004666E8 //成功CALL
016F:004DAD50 EB18 JMP SHORT 004DAD6A
016F:004DAD52 6A00 PUSH BYTE +00
016F:004DAD54 B9D0AD4D00 MOV ECX,004DADD0
016F:004DAD59 BAE8AD4D00 MOV EDX,004DADE8
016F:004DAD5E A1541C4E00 MOV EAX,[004E1C54]
016F:004DAD63 8B00 MOV EAX,[EAX]
016F:004DAD65 E87EB9F8FF CALL 004666E8 //出错CALL
016F:004DAD6A 33C0 XOR EAX,EAX
016F:004DAD6C 5A POP EDX
016F:004DAD6D 59 POP ECX
016F:004DAD6E 59 POP ECX
016F:004DAD6F 648910 MOV [FS:EAX],EDX
016F:004DAD72 689CAD4D00 PUSH DWORD 004DAD9C
016F:004DAD77 8D45F0 LEA EAX,[EBP-10]
016F:004DAD7A E8119FF2FF CALL 00404C90
016F:004DAD7F 8D45F4 LEA EAX,[EBP-0C]
016F:004DAD82 BA02000000 MOV EDX,02
016F:004DAD87 E8289FF2FF CALL 00404CB4
016F:004DAD8C 8D45FC LEA EAX,[EBP-04]
016F:004DAD8F E8FC9EF2FF CALL 00404C90
016F:004DAD94 C3 RET 016F:004DACDC E857AFFEFF CALL 004C5C38
|
016F:004C5C38 55 PUSH EBP
016F:004C5C39 8BEC MOV EBP,ESP
016F:004C5C3B 83C4F0 ADD ESP,BYTE -10
016F:004C5C3E 53 PUSH EBX
016F:004C5C3F 56 PUSH ESI
016F:004C5C40 57 PUSH EDI
016F:004C5C41 33DB XOR EBX,EBX
016F:004C5C43 895DF0 MOV [EBP-10],EBX
016F:004C5C46 894DF8 MOV [EBP-08],ECX
016F:004C5C49 8BF2 MOV ESI,EDX
016F:004C5C4B 8945FC MOV [EBP-04],EAX
016F:004C5C4E 8B7D08 MOV EDI,[EBP+08]
016F:004C5C51 33C0 XOR EAX,EAX
016F:004C5C53 55 PUSH EBP
016F:004C5C54 68CB5C4C00 PUSH DWORD 004C5CCB
016F:004C5C59 64FF30 PUSH DWORD [FS:EAX]
016F:004C5C5C 648920 MOV [FS:EAX],ESP
016F:004C5C5F 8BC7 MOV EAX,EDI
016F:004C5C61 E82AF0F3FF CALL 00404C90
016F:004C5C66 8B45FC MOV EAX,[EBP-04] //EAX=机器码
016F:004C5C69 E8DAF2F3FF CALL 00404F48 //取位数
016F:004C5C6E 84C0 TEST AL,AL
016F:004C5C70 7643 JNA 004C5CB5 //总的来说就是看是否有机器码!
016F:004C5C72 8845F7 MOV [EBP-09],AL
016F:004C5C75 B301 MOV BL,01
016F:004C5C77 8D45F0 LEA EAX,[EBP-10]
016F:004C5C7A 33D2 XOR EDX,EDX
016F:004C5C7C 8AD3 MOV DL,BL
016F:004C5C7E 8B4DFC MOV ECX,[EBP-04] //ECX=机器码
016F:004C5C81 8A5411FF MOV DL,[ECX+EDX-01] //取1位(主要看是第几次循环)
016F:004C5C85 8BCE MOV ECX,ESI //ESI算是个累加器
016F:004C5C87 C1E908 SHR ECX,08 //逻辑右移2位
016F:004C5C8A 32D1 XOR DL,CL //DL xor Dl
016F:004C5C8C E8DFF1F3FF CALL 00404E70 //DL结果转为ASCII码表示出来!
016F:004C5C91 8B55F0 MOV EDX,[EBP-10] //表示出来
016F:004C5C94 8BC7 MOV EAX,EDI
016F:004C5C96 E8B5F2F3FF CALL 00404F50 //应该是排位用
016F:004C5C9B 33C0 XOR EAX,EAX
016F:004C5C9D 8AC3 MOV AL,BL
016F:004C5C9F 8B17 MOV EDX,[EDI] //表示出来
016F:004C5CA1 0FB64402FF MOVZX EAX,BYTE [EDX+EAX-01]
016F:004C5CA6 03F0 ADD ESI,EAX //ESI=EAX+ESI
016F:004C5CA8 0FAF75F8 IMUL ESI,[EBP-08] //下命令可看到[ebp-08]寄存器的值是2
016F:004C5CAC 03750C ADD ESI,[EBP+0C] //[EBP+0C]寄存器的值是3
016F:004C5CAF 43 INC EBX //计数器+1(看是否把每位机器码都计算了)
016F:004C5CB0 FE4DF7 DEC BYTE [EBP-09] //计算完了一个?去掉一个吧!
016F:004C5CB3 75C2 JNZ 004C5C77 //这里到4C5C77就是一个经典的循环计算!要计算每一位的数!
016F:004C5CB5 33C0 XOR EAX,EAX
016F:004C5CB7 5A POP EDX
016F:004C5CB8 59 POP ECX
016F:004C5CB9 59 POP ECX
016F:004C5CBA 648910 MOV [FS:EAX],EDX
016F:004C5CBD 68D25C4C00 PUSH DWORD 004C5CD2
016F:004C5CC2 8D45F0 LEA EAX,[EBP-10]
016F:004C5CC5 E8C6EFF3FF CALL 00404C90
016F:004C5CCA C3 RET //返回
1)破解总结:
1>注册码和机器码位数是大概相对的,(除非遇上比较大的数).
2>注册码利用了循环每位机器码的计算方式!
2)破解推算: (我的机器码是:0383FBFF)
计算过程(先取每位机器码)
第1位 30 xor (0 shr 8) = 30(0)
第2位 33 xor ((31*2+3) shr 8) = 33(3)
第3位 38 xor ((98*2+3) shr 8) = 39(9)
第4位 33 xor ((16C*2+3) shr 8) = 31(1)
第5位 46 xor ((30C*2+3) shr 8) = 40(@)
第6位 42 xor ((65B*2+3) shr 8) = 4E(N)
第7位 46 xor ((D07*2+3) shr 8) = 5C(\)
第8位 46 xor ((1A6D*2+3) shr 8)= 72(r)
总结:我的注册码就是: 0391@N\r
3)内存注册机:
中断地址:4DACE4
中断次数:1
第一字节:58
字节长度:1
寄存器:EDX(内存型)
4)注册信息保存位置:
HKEY_USERS\.DEFAULT\Software\SafeBox\RegNum: "0391@N\r"
5)感评:
其实像这类软件算法已经是十分十分简单,但我认为是比较典型的循环计算,而且是小循环,对小鸟们一定很有帮助!毕竟我们不是为破解别人软件而学破解的,我们想得到的是技术!另外有朋友如果写出VB注册机请帮忙把原码发给我,先谢谢了!
如果我这篇拙文对大家哪怕有一点点帮助,那么我的目的也就达到了。
最后我要感谢[CZG][OCN]的兄弟们和许许多多朋友给我的许多帮助!也感谢你能耐心看完这篇文章!收工!
======================================================================
【工程声明】本过程只供内部学习之用!如要转载请保持过程完整!
======================================================================
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)