码迷,mamicode.com
首页 > 其他好文 > 详细

<<Crack!> > 爆破“Password”

时间:2015-11-16 00:42:31      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

Date-2015/11/15 Sunday

 YPP

                                                             初学破解,往往都是从“爆破”开始。

                               本文没有多少技术含量,仅仅对以前的学习做一个简单的回顾;

文中尚有不妥之处,恳请各位同行不吝赐教!谢谢。

 

C实现的简单密码验证,图1:

 技术分享

//Crack_1.cpp

#include <stdio.h>

#include <string.h>

#define PASSWORD "1234567"

int ypp(char *);

int main()

{

         char password[1024];

         int n=0;

         while(1)

         {

                   printf("Please input PASSWORD:\t");

                   scanf("%s",password);

                   n=ypp(password);

                   if(n)

                            printf("Error!\n\n");

                   else

                   {

                            printf("Congratulation!\n\n");

                            break;

                   }

         }

         return 0;

}

int ypp(char *password)

{

         int num;

         num=strcmp(password,PASSWORD);

         return num;

}

在VC6.0下编译运行,再用IDA对其反汇编,如图2

 技术分享

从反汇编信息中很容易识别出main的地址0x00401020

下一步Ollydbg载入, 暂且在这个地方下断点:

图3

 技术分享

 图4

 技术分享

F9让程序“跑”起来!中断在此处。

F8单步至0040106A.scanf  此时程序正在等待我们输入“密码”

输入假密码(20151115),回车:

图5

 技术分享

继续单步……至00401079 CALL crack_1.00401005

图6

技术分享

F7单步步入,就会来到ypp()的领空:

图7

 技术分享

图8

 技术分享

想知道密码的具体验证过程,就要仔细观察上面这段反汇编;

当单步到00401111 时,OD已识别出该C库函数strcmp()

存有真密码的参数值也被暴露出来! 

图9

 技术分享

图10 (EAX的值为1,即局部变量num值为真,密码判定失败!)

技术分享

莫急,关键在后面。

当步过RETN时,走出ypp()又回到了0040107E

图11

 技术分享

“Jump is NOT taken”意为“不执行跳转!” 那么就继续往下执行(输出error!)

 

<爆破的关键就在于此>

<JE SHORT Crack_1.0040109F    ;将“JE”改为“JNE”即完成爆破!>

汇编指令JEJNE作用是相反的

JE: 相等转移

JNE:不相等转移

 

双击“Disassembly”栏中的JE指令,修改后单击“Assemble

图12

 技术分享

图13

 技术分享

图14

技术分享 

图15

 技术分享

需要注意的是,这种修改是“临时”的。

若想永久保留,请继续往下看:

 1.鼠标右键选中“JNZ SHORT……”这一行:Follow in Dump——Selection

图16

 技术分享

2.同样的方法,选中数据面板……Copy to executable file

图17

  技术分享

3.Save File……

图18

 技术分享

图19

 技术分享 

验证

 技术分享

 

END.

(YPP)2015/11/15.

yppshell@outlook.com

<<Crack!> > 爆破“Password”

标签:

原文地址:http://www.cnblogs.com/yppsniper/p/4967761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!