首页
社区
课程
招聘
[旧帖] [求助]关于maxtocode壳的能发吗? 0.00雪花
发表于: 2011-12-26 19:48 2729

[旧帖] [求助]关于maxtocode壳的能发吗? 0.00雪花

2011-12-26 19:48
2729
最近手头有个c#软件以前数据没加密的,前两天软件更新了,我比较了一下以前版本和现在的版本发现多了两个dll文件,其中1个dll是MRuntime3.dll还有一个FileDecryptor.dll是软件用的,用Reflector.exe反不出东西,提示数组越界,用ildasm.exe破解版看了一下,是用maxtocode这软件加密的。但是网上找了蛮多相关脱这个壳的资料都是07年以前的,各位老大能不能推荐点最新的脱这个壳的思路啊。还有一点很奇怪,按道理来说我能直接调用加壳后的FileDecryptor.dll,但是我自己写了个调用的程序老是调用不成功,说是初始化异常,实在是找不到原因了。来论坛求助啊!附件是文件 麻烦各位路过的给点思路啊 本人刚出道学c++的 对。net不怎么熟悉 公司要求的没办法硬着头皮上啊

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (27)
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
有意思,,有時間搞搞它
2011-12-27 07:41
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
谢谢LS咯 主要是最新的maxtocode貌似没教程 对c#下面点的东西不熟   来求教了
2011-12-27 08:37
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
继续补充以下 好象还多了个updater.exe的本地文件 我怀疑maxtocode在加壳的时候 判断调用此dll的进程 如果不是特定的程序就报异常不让调用 着就是为什么我自己写一个程序调用这个加壳了的dll失败的原因 不知道有没理由 望大家来指正
2011-12-27 14:26
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
一整天没进度了 自己顶 望各位老大给意见啊 这样下去好纠结 rick老大以前的文章确实看过了 但是感觉现在maxtocode加密变了满多 求意见教程思路...
2011-12-28 16:22
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
继续顶 想过去Hook函数 但是我想maxtocode应该会hook掉很多函数 所以我觉得hook着应该会很难的 还有就是调试找OEP 小弟汇编学得实在是烂 用OD找到OEP我都不认识他 因为是学c++的 问下能否hook掉readmemory()和writememory()着两个函数 把这个库调用这两个方法读写的内容都保存下来 可以吗? 还有就是maxtocode生成的本地dll也是加壳的 我到底应该从去RUNTIME.DLL壳下手还是 直接从maxtocode加密的dll下手啊
2011-12-28 18:44
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
L_0039: brtrue.s L_0046
L_003b: ldstr "Unlicensed!"
L_0040: newobj instance void [mscorlib]System.Exception::.ctor(string)
L_0045: ret

在被加密的dll初始化get_Install()中发现了这样的语句 确定就是这条语句让我写的程序不能调用这个被加密的dll 但是想不到好的办法来修改哦 直接修改PE代码段里面的这几句为0000000?????天 这怎么找到这几条语句
2011-12-29 11:58
0
雪    币: 59
活跃值: (1516)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
用 winhex直接定位到代码处
brtrue.s改br.s就ok了
2011-12-30 13:01
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
谢谢楼上了咯 不过搞错了 静态存在我电脑上的dll函数里面都是空的 我上面的说错了 还有我现在想通过hook jit试试不知道还可行不 我看maxtocode 内核在07.04月之后没变过 应该还是在jit层吧
2011-12-30 19:41
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
請提供一個可以用的例子,也就是說調用dll的,,我需要例子,謝謝
2012-1-4 15:06
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
如果你想能解開它,不會有人能搞定,至少目前沒有,除非作者幫你,我想幫你,你不現身。。
2012-1-5 08:27
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
楼上不好意思哦 公司不让上网的 前几次都是偷偷上的 再说最近照者网上的弄hook jit 所以几天没来了 不好意思哦 例子等下弄上来 灰常不好意思啊 其实我也知道没人能帮我弄的 只想发上来 迷茫的时候有人能帮我解答一下
2012-1-6 17:27
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
来了 例子补上 就1个public函数的 还有我最近hook jit得到的一些乱七八糟的东西 还没开始看 第一次发帖 麻烦见谅啊
上传的附件:
2012-1-6 17:47
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
no,我要能运行的exe+dll
2012-1-6 19:10
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习一下
2012-1-6 19:26
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16

那个貌似有点点不行啊  我会被和谐的 那个软件是他们公司内部用的 我们公司给做点服务要用点数据 市场部又...你懂的 然后我们只是通过某种手段得到了这个软件 网上木有的 我们也不能传出去的见谅哦 不过这个库的破解不依赖那个软件 其实我例子文件已经给出了 他就是调用库里面一个解密的函数解密密码 虽然只有1个例子
2012-1-6 19:42
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
还有要是DLL能运行的话 我也不要费劲心思来破了 直接调用DLL的函数就能解密了
2012-1-6 19:43
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
先闪人了  各位周末愉快
2012-1-6 20:17
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
我就是寫了一個簡單的程序調用dll,可是不行,它好像是for wince的,或者你提供這個程序的安裝包
2012-1-8 11:09
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
恩 是的 自己写个程序肯定是调用不了的 maxtocode好象还加了限制
看下面代码
public static LogFileDecryptor get_Instance()
{
    bool flag = false;
    string fileName = Process.GetCurrentProcess().MainModule.FileName;
    if (File.Exists(fileName))
    {
        string item = string.Empty;
        item = ComputeFileMD5.GetMD5Hash(fileName);
        flag = _ProcessFileNameMD5List.Contains(item);
    }
    if (!flag) throw new Exception("Unlicensed!");
    if (_Instance == null) _Instance = new LogFileDecryptor();
    return _Instance;
}

这个就是外部调用DecryptorFtpPwd()这个函数初始化类对象的代码
看上去是maxtocode加壳的时候自己加的 我是这样理解的 初始化这个类对象的时候 取得当前函数所在DLL模块的名称 判断DLL文件存不存在 然后去比较DLL文件的MD5值 如果MD5值串不在一个已经存在的List里面 他就报异常 当我们自己写程序调用的时候 这个flag肯定为假的 这样就初始化不了类对象了 我们也就不能调用这个DLL库的函数了 我想这个应该是为什么我们调用不了这个库的原因吧
就是能不能想办法去掉
if (!flag) throw new Exception("Unlicensed!");
这行代码 我想我们就能调这个库了
还有原程序真不能给哦 不过程序里面的东西可以给 你可以指明具体要哪些文件啥的
还有谢谢LS一直来关注我这个帖 谢谢拉
2012-1-9 10:57
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
还有这个
get_Instance
Inflate
DrawPageClientControl
.cctor
GetMD5Hash
GetFileStream
get_IsDetailView
DrawIndicator
DrawIndicatorCore
RaiseCustomDrawRowIndicator
GetIndicatorPainter
DrawObject
DrawButtonObject
GetObjectClientRectangle
get_ActiveFilter
get_FilterInfo
get_Item
.ctor
IsContained
Process
get_PressedColumnFilter
get_FilterPopup
DrawObject
get_ParentObject
get_FocusedRowModified
get_IsShowHeaders
.ctor
DecryptorFtpPwd
O11OOllO011O01l00110OO01
O11OllOOOOlO1
OlO0O1Olll
.cctor
.ctor
Connect
TimeOut
ReadReply
ReadLine
SendCommand

这个是软件运行时候 调用DecryptorFtpPwd()函数的时候 JIT解析方法的顺序
基本上流程是  解析Ftp密码->connect连接服务器->SendCommand发送命令什么的
其中有一些是c#中与界面相关的函数 我也每去掉 这些可有当个参考吧 应该
2012-1-9 11:01
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
我不需要這些,本來程序就是用來運行,如果連運行不了,搞定也沒意思
2012-1-9 13:53
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
23
不能给源程序啊  那玩意是他们公司内部用的额
2012-1-9 20:21
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
總來說,能運行,我就能轉存出來他的源碼
2012-1-10 08:31
0
雪    币: 34
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
能运行就能导出? 导出的是汇编还是IL? 刚又问了下boss 软件真是不能发哦 要运行这个dll的话 还是要先破的  哦 我真想问下maxtocode现在的加密原理是怎么样的 到底用了虚拟机么 难道也想hvm ***那个一样一个方法解析成机器码的时候一半走jit一半走自己的虚拟机?但是我看maxtocode总共带界面也就几M 没可能写个虚拟机把
2012-1-10 09:18
0
游客
登录 | 注册 方可回帖
返回
//