小编Tho*_*ler的帖子

Google Breakpad示例

有没有人有任何谷歌破解配置的例子?我可以很好地构建它,但是,文档有限.我想看一些示例,例如如何修改崩溃报告发送到的位置.

c++ crash-reports crash-dumps google-breakpad

8
推荐指数
1
解决办法
3704
查看次数

MoveNext的前缀在堆栈中意味着什么?

.NET应用程序与堆栈跟踪崩溃:

调用堆栈:

Layouts!Layouts.Ribbon.SizeAndPositionControlViewModel+OnLayoutSelectionChanged>d__5.MoveNext() 
mscorlib_ni!System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(System.Object)
WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 
Run Code Online (Sandbox Code Playgroud)

callstack的其余部分是Windows代码并不重要.

这是第一个调用暗示的内容:在OnLayoutSelectionChanged()实例中的async方法SizeAndPositionControlViewModel失败的方法MoveNext().MoveNext()碰巧是LINQ方法中的Microsoft代码Any.

d__5表示什么?

.net c# crash debugging windbg

8
推荐指数
1
解决办法
4721
查看次数

如何识别阵列类型?

我有一个OutOfMemoryException,我想分析应该创建的数组的大小和类型.

我为这种情况创建了一个演示目的转储,我能够获得以下信息:

0:000> !pe
Exception object: 023f389c
Exception type: System.OutOfMemoryException
Message: <none>
InnerException: <none>
StackTrace (generated):
    SP       IP       Function
    0015EE44 0099007F OOM2!OOM2.Program.Main()+0xf

StackTraceString: <none>
HResult: 8007000e

0:000> !u 0099007F 
Normal JIT generated code
OOM2.Program.Main()
Begin 00990070, size 22
00990070 baffffff7f      mov     edx,7FFFFFFFh
00990075 b90241a478      mov     ecx,offset mscorlib_ni+0x4102 (78a44102)
0099007a e8192194ff      call    002d2198 (JitHelp: CORINFO_HELP_NEWARR_1_VC)
>>> 0099007f 8bc8            mov     ecx,eax
...
Run Code Online (Sandbox Code Playgroud)

所以我可以看到创建了一个新数组,大小为7FFFFFFF,这是20亿个项目.(请忽略这样一个事实:您甚至无法在32位.NET应用程序中创建该大小的byte [],因此在此示例中类型可能根本不重要.)

我现在已经读过数组的类型在ECX寄存器中,但遗憾的mscorlib_ni+0x4102 (78a44102)是不是很有帮助.

我尝试过!mln,!mdt甚至不切实际!ip2mt,但没有一个显示预期bytebyte[]输出.有没有办法从mscorlib的原生图像中获取类型?

.net il windbg sos sosex

8
推荐指数
1
解决办法
334
查看次数

getInstance()是否根据单例模式表示单例?

之前我曾与C#合作过,我考虑过了

Calendar cal = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)

根据GoF Singleton模式(维基百科)成为单身方法,我想知道如何创建两个日历,因为Date有些不赞成.

从文档中

使用默认时区和区域设置获取日历.

和重载

getInstance(TimeZone zone)
getInstance(Locale aLocale)
Run Code Online (Sandbox Code Playgroud)

在我看来,这是对单例模式的概括,以便为每个时区和语言环境创建单例.但是我想在同一时区里有两个日历.

但是,当我进行测试时

@Test
public void test()
{
    Calendar cal = Calendar.getInstance();
    Calendar cal2 = Calendar.getInstance();
    assertTrue(cal == cal2); 
}
Run Code Online (Sandbox Code Playgroud)

它失败了,告诉我这个getInstance()方法实际上不是单例模式getInstance()方法,而是其他方法.

那么,一般来说,是否getInstance()根据Java中的单例模式表示单例?如果是这样,Java文档中的关键措辞是什么,以找出它不是单身?如果没有,我如何识别Java中的单例模式?或者是Calendar唯一的例外?

我不想在每次getInstance()接听电话时都进行单元测试.

我读过这个答案"在Java中实现单例模式的有效方法是什么?" ,这与C#完全相同,这与Calendar实现相矛盾.

java design-patterns

8
推荐指数
1
解决办法
4504
查看次数

尝试读取转储时"无法加载符号"

我有一个应用程序,有时会在Win XP机器上导致BSOD.试图找到更多信息,我加载了生成的*.dmp文件(来自C:\ Windows\Minidump),但是在执行此操作的大部分读取时收到此消息:

*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
*                                                                   *
* The Symbol Path can be set by:                                    *
*   using the _NT_SYMBOL_PATH environment variable.                 *
*   using the -y <symbol_path> argument when starting the debugger. *
*   using .sympath and .sympath+                                    *
*********************************************************************
Run Code Online (Sandbox Code Playgroud)

这意味着什么,我该如何"修复"它?

windows bsod windows-xp crash-dumps

7
推荐指数
3
解决办法
3万
查看次数

用于连接到Bugzilla的.NET API

我正在寻找一个连接到与C#一起使用的Bugzilla的库.我确实找到了Bugzilla C#Proxy,但它并不是我想要的.我无法通过Google搜索找到任何其他内容.有人有任何其他建议吗?谢谢.

.net c# api bugzilla

7
推荐指数
1
解决办法
3984
查看次数

如何构建谷歌breakpad

我完全迷失了如何构建Google的破解版.有一个sln文件,但它取决于一个似乎没有相关sln的库.它似乎使用了一种叫做gyp的东西,我还没弄清楚如何开始工作.我试过了

 python gyp  ..\breakpad\src\client\windows\breakpad_client.gyp
Run Code Online (Sandbox Code Playgroud)

这只是给出以下错误

Traceback (most recent call last):
File "gyp", line 18, in <module>
sys.exit(gyp.main(sys.argv[1:]))
 File "pylib\gyp\__init__.py", line 445, in main
options.circular_check)
 File "pylib\gyp\__init__.py", line 84, in Load
depth, generator_input_info, check, circular_check)
 File "pylib\gyp\input.py", line 2165, in Load
VerifyNoGYPFileCircularDependencies(targets)
 File "pylib\gyp\input.py", line 1429, in VerifyNoGYPFileCircularDependencies
' '.join(bad_files)
gyp.input.CircularException: Some files not reachable, cycle in .gyp file dependency     
graph detected involving some or all of:   
..\breakpad\src\client\windows\sender\crash_report_sender.gyp   
..\breakpad\src\client\windows\h
andler\exception_handler.gyp ..\breakpad\src\client\windows\breakpad_client.gyp           
..\breakpad\src\client\windows\unittests\client_tests.gyp   
..\breakpad\src\client\windows\crash_generation\crash_generation.gyp
Run Code Online (Sandbox Code Playgroud)

这是我无法理解的.我似乎也找不到任何文件.任何帮助,将不胜感激.

gyp google-breakpad

7
推荐指数
1
解决办法
8150
查看次数

代码签署可执行文件两次

简短的问题

如何从可执行文件(.EXE/.DLL)获取有关多个代码签名证书的信息?

预期答案

最终接受的答案应该提出一种方法来获得C#中的所有证书.概念/伪代码是可以的,我不指望你写完整的源代码.

有关建议工具的中间答案,请参阅Security.StackExchange上的问题.

很长的问题

我正在研究是否可以在插件(.DLL)上使用多个代码签名证书来检查它是否已经过官方测试.这是程序:

  • 插件DLL由供应商签名,就像任何其他应用程序一样
  • 插件DLL进入测试实验室并进行一系列测试
  • 测试实验室再次对插件DLL进行签名,以便使用DLL的应用程序可以查看是否使用了经过测试的插件

似乎可以使用第二次签署DLL

 signtool /v /f <pfx> /as <dll>
Run Code Online (Sandbox Code Playgroud)

这可能有用的迹象:

  • 文件大小增加
  • 该工具打印成功消息

但是,有一些问题显示第二个签名:

  • 虽然Windows资源管理器说"签名列表",但它只显示一个证书
  • C#X509Certificate.CreateFromSignedFile()方法只能返回一个证书

目前我实际上是在EXE文件而不是DLL文件上尝试我的代码,但这应该不重要.EXE已使用受信任的根证书和时间戳签名.第二个签名是使用我自己的证书创建的,遵循这些步骤,目前没有时间戳.

在问这个问题之前我做了些什么:

  • 在Stackoverflow上搜索现有答案
  • 在Google上搜索工具

到目前为止我发现的唯一相关问题是如何使用时间戳正确地进行双重签名,但它没有答案.

.net c# code-signing

7
推荐指数
1
解决办法
2404
查看次数

taskkill和taskkill/f之间的区别

Microsoft Technet上,我可以读到taskkill有一个/f参数来强制终止进程.我想知道这在内部是做什么的,以了解这种行为的影响.

taskkill(没有/f)不只是向进程发送WM_CLOSE消息,否则我的应用程序会询问是否保存打开的文档.这使我假设它已经在TerminateProcess(MSDN)级别上运行.但是,TerminateProcess没有强制kill的参数.

那么,内部做什么taskkilltaskkill /f做什么?

我读了相关的问题C#Process.Kill()和Taskkill之间的差异,但它没有答案.

windows winapi internals

7
推荐指数
1
解决办法
2989
查看次数

当.NET不在垃圾收集(GC)中时,如何捕获.NET进程的进程内存转储

当捕获转储文件并对其进行分析时(例如在WinDbg中),我经常会收到警告:数据可能不准确,或者命令可能无法访问,因为当收集转储文件时,进程位于GC的中间.

在进行内存分析时,我们经常这样做是因为进程中的内存很高而且内存压力很高,我猜这会强制.NET到GC.

如何在GC期间避免转储?有没有办法知道何时可以安全地捕获转储文件?

.net c# garbage-collection memory-leaks dump

7
推荐指数
1
解决办法
2577
查看次数