WIN7下不能断下CreateFileA的秘密
玩破解的朋友用WIN7系统的多吗?我是一直在用WIN7的。用过的朋友应该知道在WIN7系统下,用OD破解或者脱壳的时候,BP CreateFileA无论怎么样都断不下来。但这个断点对我们来说太重要了,去文件自校验,你得用到它吧,破解KEYFILE验证你还得用到它吧,WIN7下下不了这个断点是很纠结的事情。我们先在OD里CTRL+G来定位一下CreateFileA这个API
75EB62D1 > 8BFF mov edi,edi 来到这里
75EB62D3/.55 push ebp
75EB62D4|.8BEC mov ebp,esp
75EB62D6|.51 push ecx
75EB62D7|.51 push ecx
75EB62D8|.FF75 08 push dword ptr ss:
75EB62DB|.8D45 F8 lea eax,dword ptr ss:
75EB62DE|.50 push eax
75EB62DF|.E8 3127FDFF call KERNELBA.75E88A15
75EB62E4|.85C0 test eax,eax
75EB62E6|.75 05 jnz short KERNELBA.75EB62ED
75EB62E8|.83C8 FF or eax,FFFFFFFF
75EB62EB|.EB 2A jmp short KERNELBA.75EB6317
75EB62ED|>56 push esi
75EB62EE|.FF75 20 push dword ptr ss: ; /hTemplateFile
75EB62F1|.FF75 1C push dword ptr ss: ; |Attributes
75EB62F4|.FF75 18 push dword ptr ss: ; |Mode
75EB62F7|.FF75 14 push dword ptr ss: ; |pSecurity
75EB62FA|.FF75 10 push dword ptr ss: ; |ShareMode
75EB62FD|.FF75 0C push dword ptr ss: ; |Access
75EB6300|.FF75 FC push dword ptr ss: ; |FileName
75EB6303|.E8 6044FDFF call KERNELBA.CreateFileW ; \CreateFileW
我们来在OD的模块窗口看一下这个地址是属于哪里的。
基址 大小 ? 入口 名称 (系统) 文件版本 路径
00400000 000AC000 00447BEF 运行我 1.0.0.0 C:\Users\yangan\Desktop\运行我.exe
714E0000 00032000 714E37F1 WINMM (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\WINMM.dll
72330000 00051000 7235988C WINSPOOL (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\WINSPOOL.DRV
72390000 00084000 723919A9 COMCTL32 5.82 (win7_rtm.090713-1255) C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.dll
75E80000 0004A000 75E87E30 KERNELBA (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\KERNELBASE.dll
760D0000 0007B000 760D1AEE comdlg32 (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\comdlg32.dll
76270000 000D4000 762BCD6F kernel32 (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\kernel32.dll
763E0000 000A1000 76412433 RPCRT4 (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\RPCRT4.dll
766D0000 0000A000 766D136C LPK (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\LPK.dll
766E0000 00035000 766E145D WS2_32 (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\WS2_32.dll
76720000 000AC000 7672A472 msvcrt (系统) 7.0.7601.17744 (win7sp1_gdr.C:\Windows\system32\msvcrt.dll
767D0000 00057000 767E9BA6 SHLWAPI(系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\SHLWAPI.dll
769A0000 000C9000 769BD711 USER32 (系统) 6.1.7601.17514 (win7sp1_rtm.C:\Windows\system32\USER32.dll
76A70000 000CC000 76A7168B MSCTF (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\MSCTF.dll
76B40000 000A0000 76B549E5 ADVAPI32 (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\ADVAPI32.dll
76BE0000 0009D000 76C13FD7 USP10 (系统) 1.0626.7601.17514 (win7sp1_rC:\Windows\system32\USP10.dll
76C80000 00C4A000 76D015C1 SHELL32(系统) 6.1.7601.17514 (win7sp1_rtm.C:\Windows\system32\SHELL32.dll
778D0000 0004E000 778D9C09 GDI32 (系统) 6.1.7601.17514 (win7sp1_rtm.C:\Windows\system32\GDI32.dll
77AE0000 0015C000 77B2BA3D ole32 (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\ole32.dll
77C40000 0013C000 ntdll (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\SYSTEM32\ntdll.dll
77D90000 0001F000 77D91355 IMM32 (系统) 6.1.7601.17514 (win7sp1_rtm.C:\Windows\system32\IMM32.DLL
77DB0000 00006000 77DB1782 NSI (系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\system32\NSI.dll
77DC0000 00019000 77DC4975 sechost(系统) 6.1.7600.16385 (win7_rtm.090C:\Windows\SYSTEM32\sechost.dll
77DE0000 0008F000 77DE3FB1 OLEAUT32 (系统) 6.1.7601.17676 C:\Windows\system32\OLEAUT32.dll
我们发现这个地址是属于KERNELBASE.dll,也就是我们在下BP CreateFileA断点的时候,实际上是断在了kernelbase.dll的CreateFileA函数了。学过一般脱壳的人都知道,一般程序调用里模块里是没有kernelbase.dll的。而只调用kernel32的CreateFileA. 我在XP环境下,用OD加载同一个程序,就没有kernelbase.dll这个模块。这里其实是在OD里,kernel32.dll里的CreateFileA被kernelbase.dll的CreateFileA给屏蔽掉了。其实不只CreateFileA, CreateThread也被屏蔽掉了。我相信还有其它的N多个,不过我还没发现,因为我今天才发现这个秘密。
其它OD里被他屏蔽掉,我们还是一样可以下断点的。我在NOOBY给别人回帖中找到了答案。
只要Ctrl+G, 输入"kernel32.CreateFileA",我们就可以定位到kernel32的CreateFileA了,在这里下断,我们就可以拦下程序了。同理一样可以定位CreateThread.
希望此文能给在WIN7系统下玩脱壳破解的朋友带来一点帮助。
在此膜拜大牛前辈NOOBY。
原来如此 , 感谢,今天确实碰到这个问题,自带的API断点函数没有断错地方,而BP CreateFileA确实会出问题。 谢谢了
试试看~~ 用的ollyice带的断点插件。。还一直没注意这个问题。 论坛需要这样的网友大力支持。。。 先记下这个,我也是win7,遇到过的软件都能断下来,还没碰到过这种情况,说不定以后会用到 {:301_986:}
又学到了一点点哟 感谢原创的探索 这种探索很有意义,谢谢分享 支持。终于找到原因了。不过我为什么可以给CreateFileW下断呢。不过条件断点还是有问题。 原来这样,俺是初学者,也遇到这个问题.
百度之,又回到了俺们论坛...