能力值:
( LV2,RANK:10 )
|
-
-
51 楼
断点下不了
|
能力值:
( LV2,RANK:10 )
|
-
-
52 楼
用OD载入后,请问ncrackme.004040E8,FS:[0],DS:[EAX+EAX*4],DS:[<&USER32.MessageBoxA>]这些东东该怎么理解呢?WIN32下不是已经没有段的概念了吗?呵呵,新手的问题,先谢过大家了....
|
能力值:
(RANK:300 )
|
-
-
53 楼
段是需要的
举例说 :
SS 指向 stack 段, SS:ESP 是现在的 stack 位置
FS 指向 TIB (thread information block) , FS:[0] 是 SEH 的位置
CS 在保护模式下,它是当前程序的虚空间 (virtual space) 的 selector ,详细资料可以参考谈保护模式的文章
|
能力值:
( LV6,RANK:90 )
|
-
-
54 楼
很不错 适合我们菜鸟
|
能力值:
( LV2,RANK:10 )
|
-
-
55 楼
就这个程序而言,用OD载入后,把窗口向上卷,程序入口点00401368以上的00401000-00401368部分依然为程序ncrackme的领空,那个00401000应该就是程序的装载地址吧,我知道程序入口点就是指程序从这里开始执行,程序的装载地址就是指程序被映射到从00401000开始的内存地址,但对于这此个概念心里始终比较模糊,呵,哪个老大能讲一下他的理解不....thx....
|
能力值:
( LV2,RANK:10 )
|
-
-
56 楼
版主,我按照你所说的,"我们按右键选 Go to,在 expression 输入 00401230 这个位置",现在我们到了00401230这个位置,然后按F7单步跟踪,但我按F7的时候,却跑到了77E003D7(在我的机子上是这个位置,这是怎么搞的?呵呵,第一次用OD,问题多了点.
|
能力值:
(RANK:300 )
|
-
-
57 楼
最初由 freshman 发布 版主,我按照你所说的,"我们按右键选 Go to,在 expression 输入 00401230 这个位置",现在我们到了00401230这个位置,然后按F7单步跟踪,但我按F7的时候,却跑到了77E003D7(在我的机子上是这个位置,这是怎么搞的?呵呵,第一次用OD,问题多了点.
经过 API 的时候,改用 F8 便不会进入系统呼叫里
F7 : 会进入程序的 call
F8 : 同样是单步,但不会进入 call 里
如果走进了 API call ,可以按 Alt+ F9 返回 crackme
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
问一下
设置内存访问断点找到调用处,怎么找呢!?
|
能力值:
(RANK:300 )
|
-
-
59 楼
最初由 k99992002 发布 问一下 设置内存访问断点找到调用处,怎么找呢!?
在左下方,到达位置,按右键,选设置硬体断点
也可以命令行,用 hr (read ) , hw (write ) 或 he (execute) 来设硬体断点
例如 hr 1200ff
|
能力值:
( LV2,RANK:10 )
|
-
-
60 楼
我也是刚入门的~
我来说明一下
bp和bpx是不同的~
比如说bp MessageBoxA只会停在系统里面也就是MessageBoxA的真正代码(已经进入),而bpx MessageBoxA就只停在我们自己的程序调用MessageBoxA的地方(还没进入),它的下一步才会进到MessageBoxA的真正代码里面去.
|
能力值:
( LV2,RANK:10 )
|
-
-
61 楼
很完美哦
感谢版主的无私贡献
|
能力值:
(RANK:10 )
|
-
-
62 楼
收了
|
能力值:
( LV12,RANK:210 )
|
-
-
63 楼
楼主提供的破文有一处地方有问题:
假如a是一个32位的有符号整数,以下的四句(A,B句在破文中出现)
mov eax,a
cdq //A
xor eax,edx //B
mov a,eax
不是求a的绝对值
如果是正数,最后结果还是这个数
如果是负数,结果是这个数取反的结果,例如原来a是-5,执行后a是4
不过这不影响破解的结果,感谢楼主提供CrackMe和破文!
|
能力值:
( LV2,RANK:10 )
|
-
-
64 楼
厉害的说啊
|
能力值:
( LV2,RANK:10 )
|
-
-
65 楼
汇编太差了(是还没有学),只能看,学习ing
|
能力值:
( LV2,RANK:10 )
|
-
-
66 楼
好贴!
先下来试着做一次,有问题在请教!
谢谢!~~
|
能力值:
( LV2,RANK:10 )
|
-
-
67 楼
谢谢版主
让我学到了很多东西
|
能力值:
( LV2,RANK:10 )
|
-
-
68 楼
看完这个贴,俺哭了...
这贴太牛了,太适合我啦..
|
能力值:
( LV4,RANK:50 )
|
-
-
69 楼
学了一个下午
看懂了一部分
有的地方还是不太懂
以后努力
|
能力值:
( LV2,RANK:10 )
|
-
-
70 楼
斑竹,你的破文里面,把
在 OD 上方的 Plugins ,选 Commandline ,这里可以像 softice 一样输入命令行
设下一个断点 :
bp MessageBoxA
改成 bpx bp MessageBoxA 就可以省好几步了,
直接到
00401050 . 817C24 08 1101000>cmp dword ptr ss:[esp+8],111
00401058 . 75 74 jnz short ncrackme.004010CE
0040105A . 8B4424 0C mov eax,dword ptr ss:[esp+C]
0040105E . 66:3D EA03 cmp ax,3EA
00401062 . 75 42 jnz short ncrackme.004010A6
00401064 . E8 C7010000 call ncrackme.00401230
00401069 . 85C0 test eax,eax
0040106B . 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
0040106D . 68 80504000 push ncrackme.00405080 ; |Title = "ncrackme"
00401072 . 75 1B jnz short ncrackme.0040108F ; |
00401074 . A1 B8564000 mov eax,dword ptr ds:[4056B8] ; |
00401079 . 68 64504000 push ncrackme.00405064 ; |Text = "Registration successful."
0040107E . 50 push eax ; |hOwner => 003609CE ('Newbie smallsize crackme - v1',class='myWindowClass')
0040107F . FF15 C0404000 call dword ptr ds:[<&USER32.Message>; \MessageBoxA
00401085 . E8 A6020000 call ncrackme.00401330
0040108A . 33C0 xor eax,eax
0040108C . C2 1000 retn 10
0040108F > 8B0D B8564000 mov ecx,dword ptr ds:[4056B8] ; |
00401095 . 68 50504000 push ncrackme.00405050 ; |Text = "Registration fail."
0040109A . 51 push ecx ; |hOwner => 003609CE ('Newbie smallsize crackme - v1',class='myWindowClass')
0040109B . FF15 C0404000 call dword ptr ds:[<&USER32.Message>; \MessageBoxA
|
能力值:
( LV2,RANK:10 )
|
-
-
71 楼
学习,,,,,,,,,,,,,,,,,,
|
能力值:
( LV2,RANK:10 )
|
-
-
72 楼
我断点截下来后就这样了
77D504EA U> 8BFF mov edi,edi
77D504EC 55 push ebp
77D504ED 8BEC mov ebp,esp
77D504EF 833D BC04D777 0>cmp dword ptr ds:[77D704BC],0
77D504F6 74 24 je short USER32.77D5051C
77D504F8 64:A1 18000000 mov eax,dword ptr fs:[18]
77D504FE 6A 00 push 0
77D50500 FF70 24 push dword ptr ds:[eax+24]
77D50503 68 240BD777 push USER32.77D70B24
77D50508 FF15 C812D177 call dword ptr ds:[<&KERNEL32.Interlocke>; kernel32.InterlockedCompareExchange
77D5050E 85C0 test eax,eax
77D50510 75 0A jnz short USER32.77D5051C
77D50512 C705 200BD777 0>mov dword ptr ds:[77D70B20],1
77D5051C 6A 00 push 0
77D5051E FF75 14 push dword ptr ss:[ebp+14]
77D50521 FF75 10 push dword ptr ss:[ebp+10]
77D50524 FF75 0C push dword ptr ss:[ebp+C]
77D50527 FF75 08 push dword ptr ss:[ebp+8]
77D5052A E8 2D000000 call USER32.MessageBoxExA
77D5052F 5D pop ebp
77D50530 C2 1000 retn 10
77D50533 90 nop
77D50534 90 nop
|
能力值:
(RANK:300 )
|
-
-
73 楼
最初由 hahaCrack 发布 我断点截下来后就这样了 77D504EA U> 8BFF mov edi,edi 77D504EC 55 push ebp 77D504ED 8BEC mov ebp,esp 77D504EF 833D BC04D777 0>cmp dword ptr ds:[77D704BC],0 ........
当你看见自己身处在位置 7xxxxxxx 那些地方的时候,其实你身处在系统 dll 的领空
你可以用 Alt + F9 返回
|
能力值:
( LV2,RANK:10 )
|
-
-
74 楼
看不懂看不懂
|
能力值:
( LV2,RANK:10 )
|
-
-
75 楼
什么我用bp MessageBoxA中断后,按ctrl+f9运行到retn,然后f4,f7 跟进就来到这里的004010A1。
004010A1 . 33C0 xor eax,eax
004010A3 . C2 1000 retn 10
004010A6 > 66:3D EB03 cmp ax,3EB
004010AA . 75 22 jnz short ncrackme.004010CE
004010AC . A1 C0564000 mov eax,dword ptr ds:[4056C0]
004010B1 . 85C0 test eax,eax
004010B3 . 74 19 je short ncrackme.004010CE
004010B5 . 8B15 B8564000 mov edx,dword ptr ds:[4056B8]
然后按f8就由004010A3的retn跳到了
77D3647D /0F85 885B0100 jnz USER32.77D4C00B
77D36483 |6A 00 push 0
77D36485 |FF7424 14 push dword ptr ss:[esp+14]
77D36489 |FF7424 14 push dword ptr ss:[esp+14]
77D3648D |FF7424 14 push dword ptr ss:[esp+14]
77D36491 |FF7424 14 push dword ptr ss:[esp+14]
77D36495 |E8 03000000 call USER32.MessageBoxExA
77D3649A |C2 1000 retn 10
77D3649D U> |55 push ebp
77D3649E |8BEC mov ebp,esp
77D364A0 |6A FF push -1
好象是又回到了user32.dll的领域!!
lnn1123
lnn1123
查看公开的个人资料
给lnn1123发送Email
查找lnn1123更多帖子
列出lnn1123的精华帖
初级会员
资 料:
注册日期: Nov 2004
来自:
帖子: 158
精华: 1 26楼 2004-12-06,13:05
--------------------------------------------------------------------------------
好,不错,是精辟啊,多写给小菜们看看
_____________________________@
Cracker+programmer+hacker=lnn1123
HillCat
HillCat
查看公开的个人资料
给HillCat发送Email
查找HillCat更多帖子
初级会员
资 料:
注册日期: Apr 2004
来自:
帖子: 51
精华: 0 27楼 2004-12-06,13:47
--------------------------------------------------------------------------------
说实话,都要分析比较复杂的算法了,不太像是给刚入门的初学者的吧
_____________________________@
没必要跟生活一般见识,
就当是与现实开开玩笑。
riijj
riijj
查看公开的个人资料
给riijj发送Email
查找riijj更多帖子
列出riijj的精华帖
『CrackMe & ReverseMe』版主
资 料:
注册日期: May 2004
来自:
帖子: 655
精华: 3 28楼 2004-12-06,15:22
--------------------------------------------------------------------------------
引用:
--------------------------------------------------------------------------------
最初由 布丁 发布
为什么我用bp MessageBoxA中断后,按ctrl+f9运行到retn,然后f4,f7 跟进就来到这里的004010A1。
004010A1 . 33C0 xor eax,eax
004010A3 . C2 1000 retn 10
004010A6 > 66:3D EB03 cmp ax,3EB
004010AA . 75 22 jnz short ncrackme.004010CE
........
--------------------------------------------------------------------------------
004010A3的retn 是这段程序的完结
你在 retn 后继续跟踪的话, crackme 停止工作,返回系统,所以你会走进 user32.dll
( 这段程序的开始是源于使用者按下按钮 ,产生 WM_COMMAND 系统信息,系统依照 crackme 窗口的信息处理程序位置 (winproc 的位置),呼叫 crackme 的信息处理程序。当这段程序执行完毕,便返回系统。)
_____________________________@
好网页
http://www.securityfocus.org
easyweng
easyweng
查看公开的个人资料
给easyweng发送Email
查找easyweng更多帖子
初级会员
资 料:
注册日期: Dec 2004
来自:
帖子: 5
精华: 0 29楼 2004-12-08,17:44 好
--------------------------------------------------------------------------------
楼主牛,菜鸟就需要这样的文章,哈哈
987654321
987654321
查看公开的个人资料
给987654321发送Email
查找987654321更多帖子
初级会员
资 料:
注册日期: Aug 2004
来自:
帖子: 45
精华: 0 30楼 2004-12-08,19:25
--------------------------------------------------------------------------------
向你学习 谢谢你
|
|
|