首页
社区
课程
招聘
[讨论]大牛来挑战下.net(强名称,DSA算法,混合编译,混淆,加壳)
发表于: 2011-9-29 17:59 17717

[讨论]大牛来挑战下.net(强名称,DSA算法,混合编译,混淆,加壳)

2011-9-29 17:59
17717
此程序为偶尔遇见,看见是.net的,以为很好弄,谁知本人果然菜鸟弄了好几天,昨晚才睡了俩小时,一直到现在还没弄明白,这个程序初见很容易,reflector直接可见代码,因为peid查不出是.net编译,所以不确定没有加壳。我的主要步骤:
1.用netunpack脱一下,发现脱出来peid还是不能检测出来,但原文件与脱出来的都能被reflector直接打开
2.关键点用reflector很好找,找到后用reflexil修改,保存,去强名称,但运行失败,显示bad assembly
3.发现有dll依赖项,把相关dll也去掉强名称,assemblyref 也取消检验后,运行直接死掉。
4.用sn -Vr命令注销掉全部exe和dll的强名称检测,这次又用回原文件,还是直接死掉
5.给注册表加跳过验证的项,还是不行,用一个软件反编译说是混合编译没法重新编译
5.想直接修改,找不到相应的指令位置
6.想做内存注册机,内存中也发现不了指令对应的位置
菜鸟仅想学习,对象棋没兴趣,大侠破了之后,只要告诉个大概思路,大家互相探讨下就行
当然也有可能是由于系统是win7 ,不太兼容,或者我在以上步骤上操作失误,但其实以上步骤都多次操作,多种组合
下载:
xx象棋.zip

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感兴趣的可以看看,欢迎讨论,今晚一直在线
2011-9-29 18:14
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3


不难,呵呵呵,简单
上传的附件:
2011-9-29 20:53
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=crackdung;1005139]

不难,呵呵呵,简单[/QUOTE]
那个dll看过了确实重要,但不能直接修改啊
怎么个思路,去强名称?
2011-9-29 20:59
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=crackdung;1005139]

不难,呵呵呵,简单[/QUOTE]

啊,在你手上就是小菜啊,两天一夜一直对着电脑,都没能弄明白,也不知道什么地方出问题了

能问下什么思路吗,是全部去掉强名称吗,我觉得这个最简单,kengen几乎不可能,修改系统验证强名称的文件或者修改注册表略过验证都不行啊,另外记得原先破解.net修改可以直接查找字节,然后修改,但是这个怎么找不到啊,又不像加壳的,实在不明白啊,希望crackdung牛帮忙解释下啊
2011-9-29 21:09
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=crackdung;1005139]

不难,呵呵呵,简单[/QUOTE]

我这个心急如焚啊,crackdung牛哪去了,其他人也不说话,我每五分钟刷新一次,哎

关键修改点能找到,主要是修改后过不了验证啊
2011-9-29 22:06
0
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
楼主为何如此急啊?磨刀不误砍材功。
建议直接用UE修改,不可能找不到字节的,《微软.net程序的加密与解密》第79页有详细介绍。你还可以顺便看看第131页。相信你会有更大的收获。
2011-9-29 22:50
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
果然受益良多,还是去年学的一点技术,钝刀砍柴,果然不利,我先去磨刀
2011-9-30 07:44
0
雪    币: 419
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习一下!!
2011-9-30 07:57
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
注意檢驗,SHA1,,,,不建議使用UE,
2011-9-30 10:06
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
意思是去掉强名称后,程序用sha1校验了?
2011-9-30 11:16
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
只要你修改文件,SHA1就已經改變了,此文件也就是校驗失敗了
2011-9-30 21:02
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
昨晚又弄到三点,还是找不到校验的地方,只是把提示弄成了Bad RSA public key!,crackdung牛,要不你把拟修改过的文件传一下,我对比找找看,弄明白后我去写一篇破文(这个版本已经老了,真没想求破的,而且它功能时间不怎么限制的),哎,小菜混看雪压力很大的
2011-10-1 07:16
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
crackdung牛,怎么还没有来啊,哎,望穿秋水……
2011-10-2 21:52
0
雪    币: 278
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
修改后  重新签名
2011-12-11 01:30
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
你试过吗,我试过重新签名,但还是失败,他有很多依赖的dll,我见过一个破解reflector的,破解后的文件强名称居然和原文件的强名称一样,不知道怎么弄的,可以私下讨论吗
2011-12-11 22:31
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
sn有功能去掉强签名验证,你可以试试,如果你搞不定强签名
2011-12-12 17:15
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谢谢crackdung又费心思指导,说实话当时是在搞不定这个软件,我就暂时放下,但还是耿耿于怀,知道自己的基础知识还很欠缺,所以拜读了《微软.NET程序的加密与解密》一书,尤其对强名称部分仔细研读,这本书提到的处理方法也是去除和替换,而替换的应用范围似乎更广,另外程序如果将强名称与代码结合则要采取其他处理。更高深得没有讲。甚至我心里一直很奇怪的我发现有人破解的reflector修改后的强名称居然一样,难道已经破解私钥?这本书中没有找到答案。

这个象棋软件我尝试过去除和替换,都不得要领,也不知道何处操作失误,希望crackdung大牛简要说一下自己的处理过程和所需工具。

当然我深知您的时间比我的要宝贵的很多,并不是恭维,就像有人问巴菲特一个中国的地方性上市公司的股票,巴菲特估计也懒得理他。所以也许您即使心里想帮我也因为学习工作上的种种事情而难以抽出时间,有了片刻空暇也想静静的休息,远离电脑。同时也觉得这个事情不是点播一下就行,重要的还是要靠我自己多看书,多学习,真正掌握了.net核心的话,这种小问题就迎刃而解。现在告诉我也不过时临时性的授人以鱼,对我起不到太大帮助。这个我能理解。

所以无论您帮没帮我,都要感谢你对于net小白的关注。谢了。
2011-12-14 13:52
0
雪    币: 226
活跃值: (1414)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

突然翻到我以前的帖子,当时没有成功完成就放弃了。10年后看到,决定再挑战一次,成功搞定,现在将注意点给后来者说一下,希望下一个迷茫的“我”,看到这个帖子能少走一点弯路。

用dnSpy,强签名的去除需要四个地方去除

1. 编辑程序集,去除公钥

2. 去除引用dll的签名,

3. 去除资源文件的public key,只能16进制编辑,替换成null+空格



4. 重复以上步骤,去除所有引用文件的签名的地方

5. 修改程序内部的hash校验逻辑

2021-2-25 10:18
0
雪    币: 1431
活跃值: (3856)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
20
直接重新强签名
2021-2-26 11:06
0
雪    币: 4349
活跃值: (4333)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
方向感 直接重新强签名
同感
这个应该不是移除签名,而是重新签名. 以免出现异常. 签名移了就是空的,程序中有代码的话就会异常,或者组件功能失败.
2021-2-26 11:30
0
雪    币: 1431
活跃值: (3856)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
用到了强签名
exe和dll做了签名文件sig,修改pe后sig校验就通不过了,改动大后强签名无法通过。
                       try
                       {
                               new global::A.e().A(typeof(global::A.b).Assembly);
                               new global::A.b().A(typeof(global::A.e).Assembly);
                               new global::A.b().A(typeof(global::A.d).Assembly);
                       }
                       catch (global::A.A a)
                       {
                               System.Windows.MessageBox.Show(a.Message);
                               Process.GetCurrentProcess().Kill();
                       }
注册码用到了DSA,根据机器码和支持日期生成文本
<request softwareIdentity="6" requisitionCode="405147362B3348513B59133A36327B05" supportDate="2021-10-01"></request>
注册码是这段文字的sha1值的DSA签名
2021-2-26 16:39
1
游客
登录 | 注册 方可回帖
返回
//