zoukankan      html  css  js  c++  java
  • 豌豆荚逆向分析

      最近玩手机应用,听说创新工厂有个豌豆荚,然后到官方往去下载,结果发现运行要求那里写着系统要求.net 2.0,一见到这个就高兴了,原来用.net做桌面应用的软件还是不少的,而且可能还可以逆向看部分代码。

      装完豌豆荚,到安装目录里一看就看到几个关键的动态库了,其实豌豆荚用到了许多第三方开源库。就目前我知道的,有以下几个:

      1.ffmpeg(http://ffmpeg.org/)大名鼎鼎的视频编码解码库,,豌豆荚在应该是用来做视频格式转换的,从几个dll的名称就可以看出

      2.WebKit浏览器内核,豌豆荚是跟其它第三方应用市场合作的,基本上是通过web展示的,所以使用了WebKit的.net版本,具体可                    看http://github.com/webkitdotnet

      3.用到了C#压缩组建 SharpZipLib,具体可以自行google

      4.JavaScriptCore,javascript解析引擎,其实是WebKit的javascript引擎

      5.Json.Net,就一Json的.net实现

      接着对豌豆荚进行逆向,使用Reflector.exe逆向结果显示已经针对该工具加过壳,我一直从事.net应用程序的开发,对.net的保护常识还是知道的,因为我们的软件也需要保护。Reflector.exe不行最多就是换个逆向工具嘛,使用ILSpy把豌豆荚一拖进去,源码自然全部就出来了,结构如图

    ,只是由于使用了加壳和混淆工具,代码的一些核心都是使用一些奇怪的字符替换,要想分析经过混淆后的代码还是没那么容易的,只能通过代码逻辑来分析每个方法的作用了,至少可以看得到有些实现是什么做的。

      本人只出于对于.net爱好的研究目的,做了简单的分析,也做一个警示,.net代码的保护不容忽视,在做开发时要学会保护软件。

         注意经测试该文章只针对豌豆荚1的版本,豌豆荚2以上版本已变成使用C++。希望是豌豆荚看到我的这篇文章之后改的,哈哈

  • 相关阅读:
    地址栏访问Action,后来方法执行两次
    转:Android中的Selector的用法
    转:android 自定义RadioButton样式
    Android中@id与@+id区别
    INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 错误
    Supervisor
    mysql 赋予权限连接
    定时任务
    git 提交代码五部曲
    Mysql 之事物
  • 原文地址:https://www.cnblogs.com/eboard/p/2318894.html
Copyright © 2011-2022 走看看