新手破解练习Crackme160之081 - tsc
-
暴力破解, OD载入程序, 搜索错误关键字Try Again定位到00402912,向上找到入口下面的第一个关键跳00402884,改为nop直接进入成功分支, 保存, 暴破成功~
-
正常破解, 从上一步可知按钮入口是00402840, 输入Name: abcde, Serial: 12345, 开始单步分析算法,
1. ecx有个固定值63617424先记录 2. 0040287D处是一个关键算法方法(004029B0)进去看到几个固定值常量, 9901, 12790891, 8483678, 5666933 3. 00402A30开始应该就是真正的算法处了, 我们认真盯住~^_^ 4. edx=系列号, esi = -1, edi = edx, ecx = esi, eax = 0, [0x660]=3 5. ecx = 系列号长度 不等于14则跳转 00402A49处, ecx = 9901, [0x660]=-1, eax=0跳到失败 6. 所以系列号必须是14位, 我们重新输入系列号:12345678901234, 重来一遍 7. 00402A49处不再跳转, 继续下一步, 开始循环读取系列号s, al = s[i], al ?= '0'~'9'就是判断是不是数字, 如果是数字, 就判断下一位 8. [0x17]=0, [0xF]=0, ecx = s[0~3], cx=s[4~5], ecx=s[6~9], al=s[6], [0x8]=ecx, [0x16]=al, eax=s[7~], ecx=s[0~6], dx=s[1~2], al=s[3], ecx='\r', [0x10]=dx, [0x12]=al 9. ecx = len(s[0~6])+1 = 8 shr 2 = 2, (00402AB2这个方法有点没看懂, 先跳过) 10. edx = 12790891, eax = 9901
后面的算法非常长, 决定放弃了, 其实对RSA算法了解的同学, 应该可以直接看出, 9901是RSA中的e值, 而12790891则是N值, 其实作者在about中也说明了用的是RSA24算法, 剩下两个常量都是7位, 则是系列号对应的对比密文, RSA算法还需要找出p, q, (p=1667, q=7673大佬算出来的), 继续取出r与d, r=(p-1)(q-1)=12781552, (ed % r = 1) => d=10961333; 明文=quick_pow(密文, d, N); 得到明文系列号为: 71676223196885, 跟踪过程中可发现, 两段密文只要其中一段正确都算成功, 所以, 系列号可以有三种:
1. 两段都对: 71676223196885
2. 只前段对: 7167622xxxxxxx (x为任意数字)
3. 只后段对: xxxxxxx3196885 (x为任意数字)
附上大佬代码:
#include <stdio.h>
#include "string.h"
long long quick_pow(long long x, long long n, long long m) {
long long res = 1;
while (n > 0) {
if (n & 1) res = res * x % m;
x = x * x % m;
n >>= 1;
}
return res;
}
int main() {
long long e = 9901;
long long N = 12790891;
long long encode1 = 8483678;
long long encode2 = 5666933;
long long end = N / 100;
long long p, q;
for (p = 3; p < end; p += 2)
{
for (q = 3; q < end; q += 2)
{
if (p * q == N) break;
}
if (p * q == N) break;
}
printf("p=%lld,q=%lld\n", p, q);
long long r= (p-1) * (q-1);
printf("r=%lld\n", r);
long long d = 1;
while (1)
{
if (e * d % r == 1) break;
d++;
}
printf("d=%lld\n", d);
long long decode1 = quick_pow(encode1, d, N);
long long decode2 = quick_pow(encode2, d, N);
printf("系列号为: %lld%lld", decode1, decode2);
getchar();getchar();
return 0;
}
1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~


浙公网安备 33010602011771号