java 的 exe脱壳_[已解决]求教如何使用java编写加壳程序对PE文件进行加壳
20
2017-5-8 15:15
这个问题就需要来谈谈壳的架构问题了。
壳的三大架构
1.最早的壳几乎都是virus演化来的,大部分都是汇编直接写的。
好处就是直接可以把汇编代码复制出来当作壳的loader代码添加(感染)到程序上
知名的比如aspack,upx,telock,PESpin
2.随着对于反调试要求越来越高,功能越来越多,代码一多就难以维护。
于是诞生了新的壳架构,功能采用DLL开发,使用loader来加载
这里有两个变种:
ShellCode Loader + DLL ASProtect。Themida,ACProtect等等你所熟悉的加密壳绝大部分都是这样的架构
memory loader + DLL bigfoot为代表的bambam,ZProtect,eXPressor,npack,ChinaProtect等等
这种架构简单,好维护,更好调试。其实许多其他壳或多或少的都使用这两种架构
3.对于一些纯VM的保护壳,由于没有固定代码(VMProtect等)
所以对于这样的需求首先你需要一个codegen(这个东东将陪伴你写壳的一生)
而且对于codegen其实完全可以构造一个完整的壳代码(调试比较麻烦)
不管什么语言开发的加壳软件最终都要回到opcode操作上,而对于opcode其实用神马语言都差不多
这三种架构介绍完了。那么谈谈java写壳的问题吧,我没有用java写过壳,但是我用C#写过~
楼主的问题其实可以简单的从语言优势上来解答:
如果说开发第三种壳用啥其实都差不多,Java和C#说不定更有优势。
上面我们说到codegen的问题,真正不适合开发的地方其实主要是在各种地址转换上面,
反汇编引擎反汇编的都是opcode结构,然后再将这些opcode串联起来构造出AST,省下的就是mutation,vm,还是其他等等操作了,
如果单纯为了解决opcode--->AST(Abstract Syntax Tree抽象语法树)解决了地址转换这个问题的话其实汇编,C\C++还是Java都差不多。
反而由于Java和C#这些语言有很好的容器可以更好的来控制对象
opcode生成其实也不是难事,这些用Java还是C++其实都差不多。
真正的难点就在于上面所说的壳Loader的开发上,不管是汇编,C\C++,Delphi(不管在国内外特别是国外其实许多壳都是Delphi开发的)
都可以直接开发DLL,直接拿来变形后塞进原始程序当作壳的Loader Main部分。
而Java就只能从codegen来构造壳代码了。。。
这是一件很痛苦的事情(相信我~如果你用过Java写过c语言编译器-带连接器的那种你就会明白痛苦了)
综上所述~介于楼主的语言选择问题,估计多数是只会Java,或者需要在web层调用。
那么最好的办法还是壳主体ASM,C\C++来开发,然后开发成命令行版本,然后Java调用这个模块。
架构就这样了,省下的就是动手操作了~祝君好运~
java 的 exe脱壳_[已解决]求教如何使用java编写加壳程序对PE文件进行加壳相关推荐
- 已解决ubuntu虚拟机安装java/jdk
已解决ubuntu虚拟机安装java/jdk 文章目录 报错代码 报错翻译 报错原因 解决方法 帮忙解决 报错代码 粉丝群里面的一个小伙伴想在ubuntu虚拟机中用yum安装java,但是发生了报错( ...
- Java EE 7公共草案已发布。 我需要Java EE Light Profile!
2012年12月20日,Java EE 7的公共草案已上载. 乍一看,新规范是对Java EE 6中后续规范的改进.例如,我真的很喜欢Web Profile的想法. 遗憾的是它不是Java EE 6 ...
- 已解决FileNotFoundError: [WinError 2] 系统找不到指定的文件。
已解决FileNotFoundError: [WinError 2] 系统找不到指定的文件. 文章目录 报错问题 解决方法 PS 报错问题 之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针 ...
- Nginx相关 解决nginx反向代理后页面上的js/css文件无法加载
解决nginx反向代理后页面上的js/css文件无法加载 location ~ \.php$ {proxy_pass http://127.0.0.1:8000;include naproxy.con ...
- java怎么通过坐标定位控件_[已解决] 可以定位到控件, 但每次执行 click () 方法会报空指针错误 java.lang.NullPointerException...
问题描述: 正常启动 appium 服务, 在 eclipse 中右键 Run as TestNG Test 之后, apk 可以正常安装并启动, 但是总会在 btn.click();处报错, 错误为 ...
- eclipse中文乱码解决_已解决-解决IntelliJ IDEA控制台输出中文乱码问题
作者:宜春 原文链接:https://zhuanlan.zhihu.com/p/94412052 IntelliJ IDEA 真的是一款很方便的Java开发工具,但是关于中文乱码这个问题我不得不吐槽, ...
- Eclipse之java虚拟机初始化失败问题已解决
1.问题现象: 前段时间在用eclipse部署项目过程中出现java虚拟机初始化失败,如图: 版本是:eclipse-jee-helios-SR1-win32.zip JDK版本是:1.6.0_24 ...
- java字符乱码问题_怎么解决java中的字符乱码问题
怎么解决java中的字符乱码问题 发布时间:2020-06-28 14:53:09 来源:亿速云 阅读:108 作者:Leah 怎么解决java中的字符乱码问题?相信很多没有经验的人对此束手无策,为此 ...
- 【已解决】Caused by: java.lang.ClassNotFoundException: com.sun.istack.Pool
最近遇到一个报错,记录一下解决的过程: 报错: 22-03-18.10:16:33.718 [JSF-FileRegistry-Back-Load-2-T-1] ERROR FileRegistry ...
最新文章
- 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | 实序列的幅频特性偶对称 | 实序列相频特性奇对称 | 示例说明 )
- 构造函数初始化结构体
- Canvas实现文字粒子化,并且绕轴旋转(完善)
- 10款交互设计原型开发工具(转)
- graph slam tutorial :从推导到应用3
- 全局变量定义的时候左侧加了static_c语言中static 用法
- [CF920G]List Of Integers
- LibreOJ #6014. 「网络流 24 题」最长 k 可重区间集
- (十)洞悉linux下的Netfilteriptables:网络地址转换原理之SNAT
- 刘铁猛挨踢人感言:做一个高情商的程序员
- Xcode 使用手册之01 欢迎使用Xcode(Xcode中文文档手册)
- CAD2008 启动慢 卡住
- ios 获取相机胶卷_电影胶片相机的工作原理
- 网易2019年实习生招聘笔试题
- 【前端】用百度BAE和express部署自己的node后台
- 同一网段两个主机通信(交换机) 不同网段两个主机通信(路由器)
- php上传文件自动解压,PHP自动解压上传的rar文件
- 洛谷 P2404 自然数的拆分问题(搜索、保证顺序进行搜索)
- 2019 微信公开课 Pro 开幕:干货依旧满满,但张小龙去哪儿了?
- mysql数据库巡检工作内容_数据库巡检