能力值:
( LV2,RANK:10 )
|
-
-
26 楼
[QUOTE=sessiondiy]pediy
C56D5110-B3A5B645-F63D42DA-7CA48DB2[/QUOTE]
[quote=patnt]petnt
C56D5110-B3A550E5-F63D493A-7CA48EE2[/quote]
好多一样的~~是因为都有pe么?等吃完饭回来OD再跟一遍……唉唉,小菜的杯具
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
还是不懂,看着那些东西 头晕了……突然看到小强在我的屏幕上 摸了一下 原来是大侠的头像
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
多谢S大大的指点,终于跟到了00401820里面……脑袋已经抽筋了,不玩这个了,还是先从简单点的练起吧
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
我服了,
我根本OD没法运行,用OD运行直接就没了,
下了硬件断点吧,
找到为什么结束的CALL,
又不知道怎么弄,又记不住,每次走都那,啪的一下,关了,
|
能力值:
( LV5,RANK:69 )
|
-
-
30 楼
完全不懂啊
|
能力值:
( LV13,RANK:760 )
|
-
-
31 楼
动静结合对付思路要简单些,只用一种工具比较麻烦
|
能力值:
( LV9,RANK:160 )
|
-
-
32 楼
弄不了,想爆破一下也弄不出来
如果直接改跳转的话,提示“离注册成功还差一小步,再试试”指令如下:
00405E54 FF15 5C344300 call dword ptr [<&USER32.MessageBoxA>] ; user32.MessageBoxA 00433458 >77D3156A user32.GetLastActivePopup 0043345C >77D50702 user32.MessageBoxA 00433460 >77D1BF40 user32.SetCursor
如果输入正确的注册码,指令变为如下:
00405E54 FF15 5C344300 call dword ptr [<&USER32.MessageBoxA>]; CrackMeV.00401820 call dword ptr [43345C] 00433458 >77D3156A user32.GetLastActivePopup 0043345C >00401820 CrackMeV.00401820 00433460 >77D1BF40 user32.SetCursor
完全不明白这是如何实现的。。
|
能力值:
( LV3,RANK:30 )
|
-
-
33 楼
我根本都没改任何跳转,一路修改flag,就到这边,大S说的那个,我已经搞定了,他们都把提示给到位了,各位自己想吧,你们还需要多加强内功修炼哈!
|
能力值:
( LV15,RANK:1673 )
|
-
-
34 楼
好象偶的ID没有注册码?
|
能力值:
( LV9,RANK:490 )
|
-
-
35 楼
好像溢出了,我再看看。谢谢
|
能力值:
( LV13,RANK:410 )
|
-
-
36 楼
我也来发表一个回复:
for (i=0;1<lstrlen(Username);i++)
{ sum+=Username[i]*7;}
wsprintf &sn,"%08X-%08X-%08X-%08X",25^0xC56D5109,(50*sum)^0xB3A6D473,(6*sum)^0xF63D2528,sum^0xF63D2528;
针对3.0版本,2点了,3.1版本就不看了。应该没写错吧....
另外C学的不好,如果有语法错误,请见谅...
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
还是有那么点难度的
1.rar
00401522 90 nop
00401523 90 nop
00401524 90 nop
00401525 90 nop
00401526 90 nop
00401527 90 nop
0040152E 90 nop
0040152F 90 nop
00401530 90 nop
00401531 90 nop
00401532 90 nop
00401533 90 nop
0040153A 90 nop
0040153B 90 nop
0040153C 90 nop
0040153D 90 nop
0040153E 90 nop
0040153F 90 nop
00401551 90 nop
00401552 90 nop
00401553 90 nop
00401554 90 nop
00401555 90 nop
00401556 90 nop
004015F8 90 nop
004015F9 90 nop
00405E64 E8 C7B9FFFF call CrackMeV.00401830
00405E69 90 nop 004018B6 90 nop
004018B7 90 nop
004018C5 90 nop
004018C6 90 nop 0040192D call 77D507EA
随手写的改了哪 不知道有没有遗漏 睡觉了=。=!
|
能力值:
( LV9,RANK:490 )
|
-
-
38 楼
[QUOTE=无聊的菜鸟;764447]我也来发表一个回复:
for (i=0;1<lstrlen(Username);i++)
{ sum+=Username[i]*7;}
wsprintf &sn,"%08X-%08X-%08X-%08X",25^0xC56D5109,(50*sum)^0xB3A6D473,(6*sum)^...[/QUOTE]
佩服一下!
虽然有点小差错,已经无关紧要了,几乎和我写的注册机一模一样。
看看我的注册机源码:
void CKeyGenDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
char pUsername[41];
CString csSn;
int hname=0;
GetDlgItemText(IDC_USERNAME,pUsername,40);
for (int i=0;pUsername[i]!=0;i++)
{
hname +=(pUsername[i]<<3)^pUsername[i];
}
if (hname<=0)
{
MessageBox("用户名不能为空!");
}
else
{
csSn.Format("%8X-%8X-%8X-%8X",0xC56d5109^25,0xb3a6d473^(50*hname),0xF63d2528^(6*hname),0x7ca49ce1^hname);
SetDlgItemText(IDC_SN,csSn);
}
return;
}
同样佩服一下ls!
我想看看你的附件,360却不让,不知道为什么经你一改就变的那么神奇。
只要能显示注册成功,我想爆破就不会有问题,只不过改的地方多一点而已。
|
能力值:
( LV13,RANK:760 )
|
-
-
39 楼
这是一个什么公式?想找出逆算法实在是不容易啊! 没办法,数学学得不好!
|
能力值:
( LV9,RANK:490 )
|
-
-
40 楼
你在说crackme里的,还是注册机里的?
|
能力值:
( LV13,RANK:760 )
|
-
-
41 楼
我是说CM里OnOk()之间计算的代码和注册机之间的联系……,既然有注册机,那证明算法是可逆的,我搞半天也没看出是这么简易的一个逆算法
|
能力值:
( LV9,RANK:490 )
|
-
-
42 楼
呵呵,其实也不复杂,可能变量有点多,把你的头绪弄乱了。
其实是一个一元二次方程,无意中看到就把它放在了crackme里!
|
能力值:
( LV13,RANK:760 )
|
-
-
43 楼
我看出是一个方程组……想不出逆算法来……
|
能力值:
( LV9,RANK:490 )
|
-
-
44 楼
设注册码四部分与四个常数XOR之后分别记为 a,b,c,d;
设由用户名计算出来的值为X;
则需要满足:
第一部分验证:
1. aX^2-bX+(c-d)^2=0;
2. b=2aX;(a,b != 0)
第二部分验证:
c-d=5X
c+d=7X
可解出 a=25 , b=50X , c=6X, d=X。
|
能力值:
( LV13,RANK:760 )
|
-
-
45 楼
强大的方程组……
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
od插件,设od hide aoto就可以运行了。
楼主给点提示么,为什么先压注册码,再读用户名呢?这里多少有点什么,关键在这地方么?
|
能力值:
( LV9,RANK:490 )
|
-
-
47 楼
不太明白你在问什么
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
LZ能把源码贡献出来给我们参考么?
|
|
|