yangand 发表于 2012-5-17 23:20

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。


ziv 发表于 2015-3-13 21:26

原来如此               ,

骇客之技术 发表于 2015-3-11 23:33

感谢,今天确实碰到这个问题,自带的API断点函数没有断错地方,而BP CreateFileA确实会出问题。

lp123sun 发表于 2012-5-17 23:36

谢谢了


试试看~~

WinArc 发表于 2012-5-17 23:46

用的ollyice带的断点插件。。还一直没注意这个问题。

332595 发表于 2012-5-18 01:19

论坛需要这样的网友大力支持。。。

1206248470 发表于 2012-5-18 07:39

先记下这个,我也是win7,遇到过的软件都能断下来,还没碰到过这种情况,说不定以后会用到

xie83544109 发表于 2012-5-18 20:45

{:301_986:}
又学到了一点点哟

fuxz2010 发表于 2012-5-26 23:05

感谢原创的探索

mlwy 发表于 2012-5-27 21:45

这种探索很有意义,谢谢分享

toor 发表于 2012-9-25 10:57

支持。终于找到原因了。不过我为什么可以给CreateFileW下断呢。不过条件断点还是有问题。

winxx 发表于 2013-1-30 02:08

原来这样,俺是初学者,也遇到这个问题.
百度之,又回到了俺们论坛...
页: [1] 2 3
查看完整版本: WIN7下不能断下CreateFileA的秘密