反编译Egress Switch客户端记录

2017年4月4日 | 分类: 日志 | 标签:

 

去年工作中需要使用Egress switch客户端打开加密的pdf文档,而且pdf文档只能用自带的文档浏览器查看,相比adobe reader非常难用,不让复制、而且一旦窗口处于非激活状态就不显示文档内容了,研究了一下发现该客户端使用C#开发,于是尝试反汇编出来、加了两句代码把pdf文件直接提取出来。由于之前电脑被偷,原始switch文件已经找不到了,下面是凭记忆总结反编译的过程,供参考:

 

首先运行ILSpy,打开C:\Program Files (x86)\Egress\Switch\DocumentViewer.exe

image

按Ctrl + S即可保存反编译后的工程和代码文件

使用Visual Studio打开反编译后的csproj文件后,直接编译肯定是编译不过的

 

首先需要解决引用的问题

image

右键添加应用,选择安装文件夹里相应的Dll文件:

image

再次编译会发现JSBrowserHelper.cs里有很多编译错误,其实完全不用自己修改,我选择打开另外一个反编译软件.NET Reflector 点开对应的类,把反汇编的代码替换上去就行了

image

 

image

下面这种错误直接根据Resharper的提示(应该是吧)替换为完整的类名即可:

System.Windows.Controls.DocumentViewer

image

然后是这个错误:

CS0596  C# The Guid attribute must be specified with the ComImport attribute

[System.Runtime.CompilerServices.CompilerGenerated, System.Runtime.InteropServices.ComEventInterface(typeof(HTMLDocumentEvents), typeof(HTMLDocumentEvents)), TypeIdentifier("3050f1c5-98b5-11cf-bb82-00aa00bdce0b", "mshtml.HTMLDocumentEvents_Event")]
[System.Runtime.InteropServices.ComImport]
public interface HTMLDocumentEvents_Event
{
}

image

这个错误我也不知道应该怎么处理,把ComImport注视掉或者添加Guid特性都可以 编译过。

其他编译错误都比较简单,根据实际情况修改即可。

 

编译完成后,修改相关代码,替换二进制文件,剩下的事情就不用多说了~image

  1. 2017年5月14日16:45

    受教了!呵呵!

    [回复]

[cusFace:84] [cusFace:83] [cusFace:82] [cusFace:79] [cusFace:67] [cusFace:66] [cusFace:65] [cusFace:54] [cusFace:53] [cusFace:52] [cusFace:51] [cusFace:50] [cusFace:49] [cusFace:48] [cusFace:47] [cusFace:44] [cusFace:43] [cusFace:42] [cusFace:41] [cusFace:40] [cusFace:39] [cusFace:38] [cusFace:37] [cusFace:36] [cusFace:35] [cusFace:34] [cusFace:33] [cusFace:32] [cusFace:31] [cusFace:30] [cusFace:29] [cusFace:28] [cusFace:27] [cusFace:26] [cusFace:25] [cusFace:24] [cusFace:23] [cusFace:22] [cusFace:21] [cusFace:20] [cusFace:19] [cusFace:18] [cusFace:17] [cusFace:16] [cusFace:15] [cusFace:14] [cusFace:13] [cusFace:12] [cusFace:11] [cusFace:10] [cusFace:09] [cusFace:08] [cusFace:07] [cusFace:06] [cusFace:05] [cusFace:04] [cusFace:03] [cusFace:02] [cusFace:01] [cusFace:00]