首页
社区
课程
招聘
[求助]不懂。真的不懂。。。
发表于: 2009-2-10 00:30 5607

[求助]不懂。真的不懂。。。

2009-2-10 00:30
5607
先看看代码:
#include <stdio.h>
void CrackMe()
{
        char password[200];
        memset(password,0,200);
        gets(password);
        if (strcmp(password,"8%%*4858-hklzt")!=0)
        {
                printf("password is invalid!\n");
        }
        else
        {
                printf("password is ok!\n");
        }
       
}
int main()
{
        CrackMe();
        return 0;
}
                   然后编译成kk.exe文件咯。然后用debuger去加载他,就是debug那个kk.exe.
                 在不知道源代码的情况下。把密码找出来。。。!可以吗?具体步骤怎样,,,,大侠?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (22)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
表达的不是很清楚,你再想想要表达个什么意思
2009-2-10 03:03
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
你想说什么?源码级调试?

只要程序中带有调试信息,而且调试信息指向的源文件存在,就可以用调试器进行源码级的调试,OD也可以的(不过源代码文件存放路径不能有中文)。
2009-2-10 07:57
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看什么地方调用了strcmp函数,检查函数参数就能知道缓冲区password和真正的密码字串
2009-2-10 11:30
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
bpx a
OD会列出当前程序已知的API调用表,找到CrackMe()函数调用的strcmp函数,检查strcmp的参数就可以了
2009-2-10 11:34
0
雪    币: 158
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
8%%*4858-hklzt
找到了..
2009-2-10 16:40
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
具体一点啊。。我还是不会呀。。。最好把过程也写出来。。。。
2009-2-11 09:27
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
用od加载 查看所有字符串参考 不就看见密码了.
或者直接反汇编就可以看见, 这么简单的程序 调试都不用
2009-2-11 09:41
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
如果是负责点的呢????
2009-2-12 10:42
0
雪    币: 240
活跃值: (26)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
LZ的程序貌似是C,生成后的EXE是十六位的……用OD好像不行……
可以换为TASM里的调试器,或者改静态分析~
2009-2-12 12:08
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
strcmp
直接就是源码比较哦
2009-2-12 12:32
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
如果是OD的话,在strcmp上下断点,比较参数(栈里面)就一目了然了
2009-2-12 14:09
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个``这个~ 第一个cmp附近下断吧.....strcmp
2009-2-12 14:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个实现起来估计不好实现吧!
2009-2-12 16:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
应该可以吧,不过你没有表述清楚,是不是说源码是一个人写的,Debugger由你来操作,你只能得到这个kk.exe,对吗?
2009-2-12 20:50
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
安装IDA Pro和Hex-Rays,打开那个kk.exe然后按F5,这个世界清静了……
2009-2-12 21:01
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
对啊。我只有一个exe文件。。。
             我只是打个比方。如果是由更加复杂的代码编译成的exe文件如何用debug搞出来。。。。
2009-2-12 23:06
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我刚才试了一下。
Ms vc 8

bp strcmp 可以断到

:)
2009-2-13 00:15
0
雪    币: 234
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼上一些答复其实说的挺清楚了,看你用什么DEBUGER,一般我们都用OD,或者ASM静态分析。这么小的一个KK.EXE,在OD单步走就行了,代码没几行,找到CMP对比的代码就行了,看内存信息,直接会显示密码的。如果是比较大的程序,那么方法有查找字符串,STRCMP下断点(通常我们会在输入任意密码后暂停看堆栈调用找到代码)等等。 要是实在不懂加QQ直接做给你看。
2009-2-13 09:13
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
20
楼上的这么热心啊,看样有必要加你qq一起讨论了 ,不过最近公司太忙了,看样周末要努力了
2009-2-13 09:48
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
太感谢你们了。。。
                我又有问题。就是不知道设置断点都什么用。怎么设。怎么调试??
呵呵
2009-2-13 13:19
0
雪    币: 234
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
OD设置断点可以右键菜单里选 快捷键是F2 设置断点的作用就是让程序执行到设置断点的代码时暂停执行 方便后续跟踪和分析及更改代码达到破解目的等等
建议看一些破解初级教程,有一定计算机基础、编程基础的很容易上手,推荐看天草和黑鹰的教程,网上容易找到相关资源。
2009-2-13 14:21
0
雪    币: 234
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
呵呵 请多指教 找不到你的Q 我的Q在我的信息里有
2009-2-13 14:28
0
游客
登录 | 注册 方可回帖
返回
//