关于0xC06D007F未知软件异常
简介
0xC06D007F这个异常通常是在PE的延迟加载dll的时候发生的,加载器找不到对应的dll就会抛出这个异常。
说明
这个异常其实跟0xC06D007E异常差多,排查方法可以跟它一样。但0xC06D007F更偏向模块错误。
异常结构
ExceptionAddress: 7c812aeb (kernel32!RaiseException+0x00000053)
ExceptionCode: c06d007f
ExceptionFlags: 00000000
NumberParameters: 1
Parameter[0]: 0012f918
ExceptionCode: c06d007f
ExceptionFlags: 00000000
NumberParameters: 1
Parameter[0]: 0012f7b0
Python爬虫常用正则re.findall的使用
re.findall正则符说明
1、单字符表达
. : 除换行以外所有字符
[] :[aoe] [a-w] 匹配集合中任意一个字符
\d :数字 [0-9]
\D : 非数字
\w :数字、字母、下划线、中文
\W : 非\w
\s :所有的空白字符包,括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
\S : 非空白
2、数量修饰
* : 任意多次 >=0
+ : 至少1次 >=1
? : 可有可无 0次或者1次
{m} :固定m次 hello{3,}
{m,} :至少m次
{m,n} :m-n次
3、边界
$ : 以某某结尾
^ : 以某某开头
4、分组
(ab)
5、贪婪模式
.*
6、非贪婪惰性模式
.*?
7、re.findall 可以对多行进行匹配,并依据参数作出不同结果。
re.findall(取值,值,re.M)
- re.M :多行匹配
- re.S :单行匹配 如果分行则显示/n
- re.I : 忽略大小写
- re.sub(正则表达式, 替换内容, 字符串)
二、举例说明
1、提取出python
'''
key = 'javapythonc++php'
re.findall('python',key)
re.findall('python',key)[0] ###[0]代表打印的时候去掉中括号和引号
2、提取出 hello word
'''
key = '<html><h1>hello word</h1></html>'
print(re.findall('<h1>.*</h1>', key))
print(re.findall('<h1>(.*)</h1>', key))
print(re.findall('<h1>(.*)</h1>', key)[0])
'''
3、提取170
'''
key = '这个女孩身高170厘米'
print(re.findall('\d+', key)[0])
'''
4、提取出http://和https://
'''
key = 'http://www.baidu.com and https://www.cnblogs.com'
print(re.findall('https?://', key))
'''
5、提取出 hello
'''
key = 'lalala<hTml>hello</HtMl>hahaha' # 输出的结果<hTml>hello</HtMl>
print(re.findall('<[hH][tT][mM][lL]>(.*)</[hH][tT][mM][lL]>',key))
'''
6、提取hit. 贪婪模式;尽可能多的匹配数据
'''
key = 'qiang@hit.edu.com' # 加?是贪婪匹配,不加?是非贪婪匹配
print(re.findall('h.*?\.', key))
'''
7、匹配出所有的saas和sas
'''
key = 'saas and sas and saaas'
print(re.findall('sa{1,2}s',key))
'''
8、匹配出 i 开头的行
'''
key = """fall in love with you
i love you very much
i love she
i love her
"""
print(re.findall('^i.*', key, re.M))
'''
9、匹配全部行
'''
key = """
<div>细思极恐
你的队友在看书,
你的闺蜜在减肥,
你的敌人在磨刀,
隔壁老王在练腰.
</div>
"""
print(re.findall('.*', key, re.S))
'''
————————————————
版权声明:本文为CSDN博主「三颗草丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/icanflyingg/article/details/124128611
Windbg命令系列---#(汇编搜索)
#命令在反汇编代码里根据指定模式进行搜索。
语法
#[Pattern] [Address [ L Size ]]
参数
Pattern
指定要在反汇编代码中搜索的模式。模式可以包含各种通配符和说明符。如果要在模式中包含空格,则必须用引号将模式括起来。该模式不区分大小写。如果您以前使用过#命令并且省略了模式,则该命令将重用最近使用的模式。
Address
指定搜索开始的地址。
Size
指定要搜索的指令数。如果忽略大小,搜索将继续,直到出现第一个匹配。
环境
Modes |
User mode, kernel mode |
Targets |
Live, crash dump |
Platforms |
All |
备注
如果您以前使用过#命令并且省略了地址,则搜索将从上一次搜索结束的位置开始。此命令通过搜索反汇编文本中的指定模式来工作。可以使用此命令查找寄存器名称、常量或反汇编输出中显示的任何其他字符串。可以在不使用Address参数的情况下重复该命令。
您可以使用u(Unassemble)命令或WinDbg中的“反汇编”窗口查看反汇编说明。反汇编显示最多包含四个部分:地址偏移、二进制代码、汇编语言助记符和汇编语言详细信息。以下示例显示了可能的显示。
关于WinDbg/SOS如何快速转储堆上所有的.NET异常
由于.net异常与任何其他异常一样是一个.net对象,因此当您(或您调用的某些代码)调用new XXException()时,它会存储在GC堆中。这意味着,如果您有一个进程的内存转储,您可以转储所有最近发生的异常,或者更确切地说,所有尚未被垃圾收集的异常。
如果您在windbg中加载了sos(.loadby sos mscorwks),则执行此操作非常简单
0:015> !dumpheap -type Exception------------------------------Heap0Address MT Size
02ea6b0c 79330a807202ea75f0 7930eab476…
06f57aa4 7930eab47606f5829c 7930eab47606f58a94 7930eab47606f5928c 7930eab47606f59a84 7930eab47606f5a27c 7930eab47606f5aa74 7930eab47606f5b26c 7930eab47606f5ba64 7930eab47606f5c25c 7930eab47606f5ca54 7930eab47606f5d24c 7930eab476total319objects------------------------------total656objects
Statistics:
MT Count TotalSize Class Name
79333dc01 12System.Text.DecoderExceptionFallback
79333d7c1 12System.Text.EncoderExceptionFallback
793172f82 64System.UnhandledExceptionEventHandler
79330c301 72System.ExecutionEngineException
79330ba01 72System.StackOverflowException
79330b101 72System.OutOfMemoryException
79330a801 72System.Exception
79330cc02 144System.Threading.ThreadAbortException
7930eab4646 49096System.IO.DirectoryNotFoundException
Total656 objects
windbg dt 如何显示类的静态成员变量?
windbg的dt指令可以用来显示变量的结构和值,如果是一个C++类,那么它将以偏移的形式显示类里的成员地址和符号名。那类里的静态成员呢?如下:
可知,静态成员以=符号开始,紧跟地址、符号名和值。