LEG及BLUE2012编译去壳视频教程
LEG及BLUE2012编译去壳视频教程
游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0
提取码下载:
BLUE去壳教程
大家不要上当受骗,其实去壳很简单,不要相信所谓的“悟空”这种人能去壳,
妈的 源码是哪来研究的,不是拿来骗钱的
不足之处,欢迎大家一起补充,希望BLUE 相关教程越来越多!!!!!
废话不说了 开始,例子就选个加壳文件去壳
现在开始进文件
为了演示 找一个简单点的 文件少的编译去壳
大家仔细看,去壳在于细心, mSystemModule_Hero 我们找这个
这是M2 必备DLL 也是加壳了的
现在我们来去掉它 先编译试试 看了吗 在加壳
D:\Lingfeng2018\Release\版本\mSystemModule.dll 最后生成的地址路径
第一步进文件 删除 VMProtectSDK in '..\Common\VMProtectSDK.pas';
第二步 VMProtectDecryptStringA 所有显示的全部删除 为了确保无错 还是手动一个个删除保险
第三步 删除{$I '..\Common\Macros\VMPE.inc'} {$I '..\Common\Macros\VMPBM.inc'} 这种文件路径
仔细查找,细心删除
好 删除完毕 我们现在要对 文件的路径 进行处理,又不破坏其规则
注意看 D:\Lingfeng2018\Release\M2Server\dllautovmp.bat 用TXT文件打开
call VMProtect_Con.exe mSystemModule.dll
这句话的意思是 启动 VMProtect_Con.exe程序 去加壳mSystemModule.dll 我们就把这句删除
copy /y mSystemModule.vmp.dll ..\版本\mSystemModule.dll
这句话的意思就是 生成的文件 mSystemModule.vmp.dll 调用到..\版本\ 路径下面
这里已经没有 mSystemModule.vmp.dll 我们改为 mSystemModule.dll即可
我们来测试一下 测试正常现在编译一下 呵呵 完美 看到吧 其实脱壳 就这么简单
本教程针对小白,不足之处 希望高手能慢慢完善,不分享经验,不开源就不要装逼了 累
大家都来分享经验视频,学习的人会越来越多 ,骗子会越来越少 !
有点本事就装逼 看不起小白 骗子才容易有生存空间,因为骗子有时候能解决实际问题,
所谓的清高 高手 就会愤青 喷骗子喷小白 其实自己就是一陀!!!!
不说了,开源了就贡献点经验,没别的意思!大家开心就好 顺便说一下 不要信 悟空 骗了我2500 艹!
20180707 编译教程QQ:7951368 嘟嘟
===================================================================
VMProtect使用说明
一. 接口说明
//开始保护处标记(对应于功能设置:反调试、内存保护等等)
VMProtectBegin(const char *);
//开始虚拟化代码处标记(包括保护设置)
VMProtectBeginVirtualization(const char *);
//开始变异代码处标记(包括保护设置)
VMProtectBeginMutation(const char *);
//开始虚拟+代码变异标记处
VMProtectBeginUltra(const char *);
VMProtectBeginVirtualizationLockByKey(const char *);
VMProtectBeginUltraLockByKey(const char *);
//保护结束处标记
VMProtectEnd(void);
//检测调试
BOOL VMProtectIsDebuggerPresent(BOOL);
//检测虚拟机
BOOL VMProtectIsVirtualMachinePresent(void);
//映像文件CRC校验
BOOL VMProtectIsValidImageCRC(void);
//解密被保护的名为字符串A
char * VMProtectDecryptStringA(const char *value);
//解密被保护的名为字符串W
wchar_t * VMProtectDecryptStringW(const wchar_t *value);
二. 使用方法
1. 保护函数必须有始有终出现
VMProtectBegin、
VMProtectBeginVirtualization、
VMProtectBeginMutation、
VMProtectBeginUltra
必须有相对应的VMProtectEnd结束。
比如:
void FunName()
{
VMProtectBegin(“FunName”); //最好用函数名,否则会出现重名冲突
.....
VMProtectEnd();
}
2. 保护的单元是函数,而不是整个EXE代码
比如:
//不保护
void fun1(char* msg)
{
char* szmsg = "fun1 none vm";
OutputDebugString( szmsg );
}
//虚拟化保护
int fun2( int x, int y )
{
int n = x + y;
VMProtectBeginVirtualization("fun2");
OutputDebugString( "x+y= %d" );
VMProtectEnd();
return n;
}
//虚拟化和变异保护
void fun3()
{
VMProtectBeginUltra("fun3");
fun1("fun3 call fun1");
VMProtectEnd();
fun2( 2, 4 );
}
3. 保护嵌套情况
void main()
{
char* szMsg = "proxxb vm sapmle!"; //不被保护
VMProtectBegin("main"); //被保护
OutputDebugString( "vm protect test." ); //被保护
fun1(szMsg); //函数内部自己去保护
fun2( 2, 4 ); //函数内部自己去保护
fun1(szMsg); //函数内部自己去保护
fun3(); //不被保护
VMProtectEnd();
getchar(); //不被保护
}
4. 字符串保护
应使用VMProtectDecryptStringA或VMProtectDecryptStringW函数保护名为字符串,被保护后,明晚字符串不再出现在内存,除非被解密的那一刻!
char* Decrypt( char* key, char* buffer, long length )
{
VMProtectBeginUltra("Decrypt");
....
VMProtectEnd();
}
调用方法:
Decrypt(
VMProtectDecryptStringA(“DecryptKey”), //此时密文密钥被解密
buffer,
512
);
5. 其它函数,暂时不用
哪里错了,及时提出了,纠正!
|