免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 网站相关 > 网站安全 > 一次艰难的渗透过程(涉及到内容很广)(10)

一次艰难的渗透过程(涉及到内容很广)(10)

时间:2012-04-16 20:47来源:未知 整理:寂涯网络 点击:


/*403ED3*/    CMP CL,DL
/*403ED5*/    JNZ SHORT superdic.00403EE5
/*403ED7*/    ADD ESI,2
/*403EDA*/    ADD EDI,2
/*403EDD*/    TEST AL,AL
/*403EDF*/    JNZ SHORT superdic.00403EBD
/*403EE1*/    XOR EAX,EAX
/*403EE3*/    JMP SHORT superdic.00403EEA
/*403EE5*/    SBB EAX,EAX
/*403EE7*/    SBB EAX,-1
/*403EEA*/    XOR EDX,EDX
/*403EEC*/    PUSH 476
/*403EF1*/    TEST EAX,EAX
/*403EF3*/    SETE DL
/*403EF6*/    MOV ECX,EBX
/*403EF8*/    MOV DWORD PTR DS:[EBX+90],EDX
 
这段代码即是:BqwITTcm8kG5lcEk 与 l6345q789 的对比过程,如果相等就注册成功。
作者的大题思路就是这样吧,如果爆破的话只需要把 403EF1 处改为下面的代码即可。
/*403EF1*/    MOV DL,1 但分析到这里,爆破已经满足不了我的欲望了,再说离我的两个小
时还差的远呢。接着看看作者算法的思路吧。
既然我分析的思路已经清晰,我在这里再稍作整理:、设 CALL superdic.004034E0 函数=f1()
CALL superdic.00403630 函数=f2()
如果 f1(申请号)=f2(注册码)     那么就注册成功。
看来 f2()函数是关键啊,需要写出它的逆函数,f7 进去一看,貌似还很长,如图 23:
图24
仅仅图 23 的一页,还显示不完,我再次像骆驼一样的 f7 走来走去,再加上 ida 的 f5,
终于对段代码有了初步的了解。
最终我使用了一种巧妙的办法写出了这段代码的逆函数如下。 有点基础的朋友自己看代码吧。我也不好在这里占用太大篇幅去深析这个算法的逆向过程。
 
void DicDecode(char *str)
{
char end[64]={0};
if (strlen(str) !=16) *str=0;
for(int i=0,j=0;i<16,j<64;i++,j=j+4)
{
if(str[i]<='9' && str[i]>='0')
{
end[j]=str[i]-22;
goto LABEL_a;
}
if(str[j]<='z' && str[i]>='a')
{
end[j]=str[i]-61;
goto LABEL_a;
}
if(str[i]<='Z' && str[i]>='A')
{

 
 
 
LABEL_a:
;
}

end[j]=str[i]-65;
}

for(i=0;i<64;i=i+4)
{
if(end[i]<=i)
{
end[i]=i-end[i];
}
}
int v10[16];
for(int k=0,n=0;k<16,n<64;k++,n=n+4)
{
v10[k]=(int)end[n];
}

 
for(i=0;i<16;i++)
{
if(v10[i] <= 25 && v10[i]>=0)
{
str[i]=v10[i]+ 65;
goto LABEL_bb;
}
if(v10[i] <= 35 && v10[i]>=26)
{
str[i]=v10[i]+ 22;
goto LABEL_bb;
}
if(v10[i] < 61 && v10[i]>=36)
{

 
} LABEL_bb:
;

str[i]=v10[i]+ 61;

}
char sigeliu[5]={0x36,0x36,0x36,0x36,0};
strcat(str,sigeliu);
}
 
总之最后累的跟骆驼似的终于还是凑出了这个半成品的注册机。如图 24:
图25
该注册机的用法是在 00403D5B 处,看堆栈得到 f1(申请号)= BqwITTcm8kG5lcEk.
把这个值写入密文框内,点击解密就得到其注册码。这时看了看表大概用了 110 分钟,好险,
差点损失 15 块钱。
 
 
discuz!提示问题也是浮云,碰撞 V5
 
字典生成器破解完后,我开始酝酿写这个 discuz! 提示问题的碰撞程序。由于 php 的易 用性,我选择用它来写。说白了也就是个穷举的过程。代码如下:
 
<?
/*discuz 提示问题答案暴力破解程序。by kyo327*/
error_reporting(0); if ($argc<2) { print_r('


------------------------------------------------------------------ Usage: php '.$argv[0].' hash
Example:
php '.$argv[0].' 91de8255
------------------------------------------------------------------
');
die;
}
$fd=fopen("pass.dic",r);
if(!$fd)
{
echo "error:打开字典文件错误"         ;
die;
}

本页地址 http://www.jybase.net/wangzhananquan/20120416827.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
50%
踩一下
(1)
50%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com