首页
社区
课程
招聘
运行在WIN下的DOS状态的程序的破解
发表于: 2004-12-24 21:14 8395

运行在WIN下的DOS状态的程序的破解

2004-12-24 21:14
8395
此类程序运行在WINDOWS下的DOS,没有任何窗口。
要求输入密码,输入错误会在DOS状态显示文字“密码错误!”。
用TRW2000又没法拦截,无法设置断点。
请教大家,有什么好的经验?
比如我手头有个例子,是用Microsoft Visual C++的,设计得比较巧妙。
运行情况是,输入密码正确,会进入正文显示,否则退出。

很小的,33K,绝对没毒,只是DOS下的文字显示。

正确注册码是:239449359

我需要的是破解过程,我是菜鸟,我要学习。

请大家看看的最新回复。见后。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (24)
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
2
这个简单,用IDA分析,你看到

.text:00401149                 call    ??6ostream@@QAEAAV0@PBD@Z ; ostream::operator<<(char const *)

这个就是读取输入。

.text:00401174                 call    _atoi
.text:00401179                 add     esp, 4
.text:0040117C                 cmp     eax, 1

判断之一

方法:找到“密码”的引用,然后往上看就可以发现了。
2004-12-24 23:24
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我很菜,请您说得详细一点好吗?谢谢,便于我学习。
盼望中。。。。
2004-12-25 07:40
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
4
你有没有用ida分析呢?
请试一下.

查找特征字符串的引用,再向上找,可以看见对ostream::operator<<(char const *)的引用.这是输入流.取得输入以后,一定要atoi的,再在附近找cmp/je就看见了.

上一贴是说主菜单的.

一般你拦ostream::operator<<(char const *)的call肯定可以.注意在call里拦
2004-12-25 10:22
0
雪    币: 222
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
IDA不会用,用其他静态分析软件也可以。当然如果初学的话用静动结合比较好理解代码的执行情况
2004-12-25 10:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
帖张图,靠我连拦都不知道 怎么拦呀,你把他解开,我也学学


破解软件下了一大堆,就是不知怎么用???
2004-12-25 15:32
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我在摸索、试着破解。
但对IDA不熟练,困难很多。
请firstrose朋友就我1楼说的例子把破解过程说仔细一点,从中我们定会学到很多知识。
工具一大堆,但不懂门道,真是急死人。。。。
2004-12-25 20:19
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
firstrose你好,我用IDA试了,由于很菜,没看懂,不知道怎么做到“往上看就可以发现了”。
如下:
.text:00401149                 call    ??6ostream@@QAEAAV0@PBD@Z ; ostream::operator<<(char const *)
.text:0040114E                 mov     ecx, eax
.text:00401150                 call    sub_401005
.text:00401155
.text:00401155 loc_401155:                             ; CODE XREF: _main+661j
.text:00401155                                         ; _main+7DCj ...
.text:00401155                 mov     edx, 1
.text:0040115A                 test    edx, edx
.text:0040115C                 jz      loc_401866
.text:00401162                 lea     eax, [ebp+var_1C]
.text:00401165                 push    eax
.text:00401166                 mov     ecx, offset dword_42CA08
.text:0040116B                 call    ??5istream@@QAEAAV0@PAD@Z ; istream::operator>>(char *)
.text:00401170                 lea     ecx, [ebp+var_1C]
.text:00401173                 push    ecx             ; char *
.text:00401174                 call    _atoi
.text:00401179                 add     esp, 4
.text:0040117C                 cmp     eax, 1

请再次指点,盼望中。。。
再请告诉我关于IDA使用的教程,谢谢!
2004-12-26 09:18
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
破解的书上对IDA都讲得不详细,我们菜鸟没法领会。
请各位大侠赐教。
2004-12-26 09:24
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
请firstrose就本例写一个IDA的破解教程,好吗?我们菜鸟很需要学习呀。没有实际经验只能跟着高手学习、入门,才能谈进一步提高了。
十分感谢。盼望学习中。。。。
2004-12-26 11:03
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
在看雪和郭栋的几本书中对IDA都讲得比较深奥,我们菜鸟没能看懂,不会实际使用呀。
2004-12-26 11:05
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
仔细看看,
2004-12-26 14:22
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
请firstrose再指点一下,恳求
2004-12-26 18:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
指望他看来不行了,还要靠我们自己,我学会了我就给你一条一条加注解,不过我们还是去找本汇编书学学吧,他们是不会教我们这级菜鸟的,都是以高手自居,很牛的,我们一定会比他们强的,气死我了!!!哇哇哇
2004-12-26 22:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
最初由 firstrose 发布
你有没有用ida分析呢?
请试一下.

查找特征字符串的引用,再向上找,可以看见对ostream::operator<<(char const *)的引用.这是输入流.取得输入以后,一定要atoi的,再在附近找cmp/je就看见了.

........


我不爱你!!!!!!!!!
永远!!!!!!!
永远!!!!!!!
2004-12-26 22:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
狂找汇编书~~~~~~~~~~~~
2004-12-26 22:17
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不会吧,这里气氛很好的呀。
我不是指望破解一个完整的软件,我只是学习而已。
主要是对IDA不熟悉呀。
狂找也没用呀。
2004-12-27 10:38
0
雪    币: 223
活跃值: (105)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
先用W32Dasm反汇编,找到读取密码的那一句,记下地址,然后用TRW2000 load 该程序,进入程序后用CTRL+PGDN往后翻页,找到读取密码的那个地址,设置断点,然后就可以追进去看看程序是怎么处理密码的!
可以试试看
2004-12-27 13:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最初由 SubtWay+0 发布
先用W32Dasm反汇编,找到读取密码的那一句,记下地址,然后用TRW2000 load 该程序,进入程序后用CTRL+PGDN往后翻页,找到读取密码的那个地址,设置断点,然后就可以追进去看看程序是怎么处理密码的!
可以试试看

DOS程序也可以用动态跟踪吗???我XP上可是运行不了ICE 我TRW的,郁闷
人家都说ICE能运行,可是我怎么设置也没用
2004-12-27 14:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
最初由 qwert 发布
不会吧,这里气氛很好的呀。
我不是指望破解一个完整的软件,我只是学习而已。
主要是对IDA不熟悉呀。
狂找也没用呀。

解开也过时了,当然要学着破了,我也是
2004-12-27 14:40
0
雪    币: 223
活跃值: (105)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
21
最初由 夏雨 发布

DOS程序也可以用动态跟踪吗???我XP上可是运行不了ICE 我TRW的,郁闷
人家都说ICE能运行,可是我怎么设置也没用


还操作系统,用win2000和win9x,
2004-12-27 15:45
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
进一步补充自己的汇编知识,没办法了!
2004-12-27 19:14
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
9X+SICE
王者无敌
2004-12-27 23:05
0
雪    币: 239
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
最初由 鸡蛋壳 发布
9X+SICE
王者无敌


我还是感觉9X+TRW是最好
2004-12-28 00:47
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
我根据楼上各位的意思,试验了好多次。

我注重破解的过程。

其实该程序的正确密码为:239449359

我是这样操作的:

1、运行TRW2000
2、输入文件名 c:\2004.exe
3、从右下角调出TRW2000,点LOAD进入
4、通过多次分析,直接输入
   G 004015DC
5、来到了DOS界面的程序运行状态,按1,再回车
6、提示:<请输入您的验证密码,898989按回车>
   输入假的密码:89898989  回车
7、来到TRW下

   有这么一段:

   * Possible StringData Ref from Code Obj ->"檐
"
                                  |
:004015C8 680F104000              push 0040100F
:004015CD 68C4804200              push 004280C4
:004015D2 B958CA4200              mov ecx, 0042CA58
:004015D7 E804170000              call 00402CE0
:004015DC 8BC8                    mov ecx, eax
:004015DE E822FAFFFF              call 00401005
:004015E3 8D4DAC                  lea ecx, dword ptr [ebp-54]
:004015E6 51                      push ecx
:004015E7 B908CA4200              mov ecx, 0042CA08
:004015EC E87F0D0000              call 00402370              ;来到此处,按F8追入,看下面
:004015F1 6A00                    push 00000000
:004015F3 E8D8380000              call 00404ED0

===========

* Referenced by a CALL at Addresses:
|:0040116B   , :004011B7   , :004015BC   , :004015EC   , :004016CD   
|
:00402370 55                      push ebp                      ;来到这里
:00402371 8BEC                    mov ebp, esp
:00402373 83EC10                  sub esp, 00000010
:00402376 894DF0                  mov dword ptr [ebp-10], ecx
:00402379 6A00                    push 00000000
:0040237B 8B4DF0                  mov ecx, dword ptr [ebp-10]
:0040237E E8EDFDFFFF              call 00402170                 
:00402383 85C0                    test eax, eax                 ;判断密码不对,就玩完,提示“密码错误!”
:00402385 0F8448010000            je 004024D3
:0040238B 8B45F0                  mov eax, dword ptr [ebp-10]
:0040238E 8B08                    mov ecx, dword ptr [eax]
:00402390 8B5104                  mov edx, dword ptr [ecx+04]
:00402393 8B45F0                  mov eax, dword ptr [ebp-10]
:00402396 8B4C1030                mov ecx, dword ptr [eax+edx+30]
:0040239A 83E901                  sub ecx, 00000001
:0040239D 894DF4                  mov dword ptr [ebp-0C], ecx
:004023A0 8B55F0                  mov edx, dword ptr [ebp-10]
:004023A3 8B02                    mov eax, dword ptr [edx]
:004023A5 8B4804                  mov ecx, dword ptr [eax+04]
:004023A8 8B55F0                  mov edx, dword ptr [ebp-10]
:004023AB C7440A3000000000        mov [edx+ecx+30], 00000000
:004023B3 837D0800                cmp dword ptr [ebp+08], 00000000
:004023B7 7526                    jne 004023DF
:004023B9 8B45F0                  mov eax, dword ptr [ebp-10]
:004023BC 8B08                    mov ecx, dword ptr [eax]
:004023BE 8B5104                  mov edx, dword ptr [ecx+04]
:004023C1 8B45F0                  mov eax, dword ptr [ebp-10]
:004023C4 8B4C1008                mov ecx, dword ptr [eax+edx+08]
:004023C8 83C902                  or ecx, 00000002
:004023CB 8B55F0                  mov edx, dword ptr [ebp-10]
:004023CE 8B02                    mov eax, dword ptr [edx]
:004023D0 8B5004                  mov edx, dword ptr [eax+04]
:004023D3 8B45F0                  mov eax, dword ptr [ebp-10]
:004023D6 894C1008                mov dword ptr [eax+edx+08], ecx
:004023DA E9EC000000              jmp 004024CB

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

请教怎么判断正确密码?

假如高手能写出教程就好了。
2005-1-6 17:05
0
游客
登录 | 注册 方可回帖
返回
//