能力值:
( LV2,RANK:10 )
|
-
-
2 楼
好几个.net程序过不了,学习了。
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
兄弟,厉害,潜水8年,才发14个帖子,牛人
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
楼主你好 对混淆后的程序 有没有研究呢
比如这个 xiaomi119.com
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
(de4dot)+reflexil+ildasm+ilasm基本能搞定所有,reflexil自带强名移除挺好用的。
纯.net开发的程序只要不是加了jit壳都不麻烦,最多就是多跟几个类。最恶心的是c++/cil,nativecode/managed c++掺在一起,然后链接一个c#或vb.net写的module调用,代码跳来跳去让人想吐。
|
能力值:
( LV3,RANK:30 )
|
-
-
6 楼
reflexil移除了强名后,没法再加强名称吧
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
ildasm反编译出il,ilasm加强名,不过一直没加也没什么问题
我的理解是自己添加强名没意义,因为不可能拿到对方的snk。移除强名之后public key token为null,基本上能直接运行,这样的话加个自己的强名跟不加没什么区别,又不是必须进GAC。
加强名一般用来对付strongnameidentity,这玩意实在是讨厌。
强签引用可以直接用reflexil去掉,不加强签反而省心。
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
有的dll在C:\Windows\Microsoft.NET\assembly\GAC_MSIL里面,程序默认加载这里的,我要不从C:\Windows\Microsoft.NET\assembly\GAC_MSIL里面删除对于的dll,将补丁后的dll复制的exe目录,要不就手工替换字节,将补丁后的dll覆盖到C:\Windows\Microsoft.NET\assembly\GAC_MSIL里面。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我的做法是看那个库用的地方多不多,要是一个收费的控件这种很多程序都用的,或者是个大型工程的依赖库,就重签名进GAC,否则将其从GAC里面卸掉,扔进exe目录。reference无论如何都要改。
将一个破坏了强签的库扔进GAC里面,可能会出问题。曾经改了系统库里面的DES,之后某些程序运行正常,某些程序各种问题,在那之后就不干替换GAC文件的事了
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
纠正一下我的错误,上面说手工修改二进制文件避免强名,错误的。修改后的文件直接复制到GAC中替换原有文件,exe程序是可以运行的,但是没法用gacutil /i的方式安装到GAC,要想用gacutil /i,必须重新签名。因为是手工修改,改变的内容比较少,部分只修改一两个字节,多个程序调用这个dll也不会出问题。
问题:gacutil /u卸载不成功,直接到GAC中删除的文件夹。reflexil对一些dll无效,无法移除强名。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
现在很多.net程序没那么简单了。
现在好程序都加壳或c++/cil,nativecode/managed c++掺在一起
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
个人觉得关键依旧是脱壳反混淆。
现在有些壳,带混淆的,参杂各种原因之后,保守估计有5成以上代码,没法反混淆,de4dot什么的统统跪倒,或许很多流程什么的都在,你可以猜,但是类名,方法名变成乱码,像“口”字一样,点击之后出错,没法跟到对应方法去。
然后有个很现实的问题是,它有几个DLL,相互调用,一旦没法没跟踪跳转了,想破就只能一个一个翻看了,看运气。
【说起这问题,求教:】
几个关联调用的DLL 都加了混淆怎么反混淆?如a.dll 可以调用 b.dll 里面的 GetName 方法,但是逐个dll反混淆过程中,方法被随机重命名了,dll里面的名字变得不一致了,如a.dll 现在调用的是 method1,但是b.dll 里面,那方法名现在是 method3,那a.dll就找不到目标方法了,咋办?怎么样脱壳才能使多个dll里面的名字对应?
|
能力值:
( LV3,RANK:30 )
|
-
-
13 楼
1.修改de4dot源码,将能识别的GetName 方法不要再重命名为method1/method2/...,因为方法的名称GetName没有混淆,做一个过滤。
2.或者使用simple assembly explorer里面的deobfuscator,有些设置。
3.显示“口”等字符的,可以试试dotPeek、JustDecompile。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
不凡试下对星宇财务管理软件NET反编译脱混淆的一个剖析
|
能力值:
( LV3,RANK:30 )
|
-
-
15 楼
用ilspy、dotPeek、JustDecompile、Reflector等工具提示错误,无法反编译成c#,反编译成il,
Dispose(bool disposing) cil managed noinlining
{
// 代码大小 174 (0xae)
.maxstack 3
.locals init (int32 V_0)
//--------下面是无用代码----
IL_0000: br.s IL_000a
IL_0002: call [ERROR: INVALID TOKEN 0x4D30FD61]
IL_0007: ldnull
IL_0008: ldind.ref
IL_0009: pop
IL_000a: ldc.i4.0
IL_000b: brtrue.s IL_0007
//-----------上面无用代码---
IL_000d: call bool。。。。
用正则表达式删除这部分,再编译成exe,这下ilspy、dotPeek、JustDecompile、Reflector等工具就能看了。
正则表达式:
+?IL_....: br\.s.+
+?IL_....: call \[ERROR: INVALID TOKEN.+
+?IL_.+
+?IL_.+
+?IL_....: pop
+?IL_....: ldc.i4.0
+?IL_....: brtrue.s.+
|
能力值:
( LV3,RANK:30 )
|
-
-
16 楼
对多个dll重新签名,试过StrongNameRemover v2.3/reflexil,不理想,一次只能处理一个文件,移除强名后,exe运行错误,用sn重签名,提示不表示具有强名称的程序集,还是用snr方便,批处理搞定所有的。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
de4dot 反混淆不修改任何代码,程序就不能运行啊
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
有什么办法编辑.NET程序的图片资源吗?
|
能力值:
( LV7,RANK:110 )
|
-
-
19 楼
感谢,学习到了一点经验
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
密匙校验
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
可以啊,替换资源就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
资源替换类工具ResHacker,替换不了exe里面的图片资源
可能是我不会 ,求指点
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
如果是.NET就很好搞的
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
.net破解和修改文字都还好,修改.net程序内部图片网上居然没有一个帖子,唯一在52有个视频电话,链接N早失效了
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
给文件来看看?
|
|
|