首页
社区
课程
招聘
[原创]dotnet KeyGenMe 变KeyGen
发表于: 2009-2-16 21:12 9176

[原创]dotnet KeyGenMe 变KeyGen

2009-2-16 21:12
9176

【文章标题】: dotnet KeyGenMe 变KeyGen
【文章作者】: dreamzgj
【作者主页】: http://hi.baidu.com/dreamzgj
【作者声明】: 本文也没什么含量,高手可以路过,只是希望大家可以多多交流.net平台下的软件安全问题。

下午在老外的一个论坛看到了个.net的KeyGenMe。没事就玩玩。
首先peid查壳,Microsoft Visual C# / Basic .NET。呵呵,无壳。(其实我不会脱壳,  )。
  我们用Dis#看看,名称都没问题,看来没有名称混淆,但发现方法体内都是:// decompiler error。看来是流程混淆了。
  只好IL Dasm了。打开一看看到处都是跳转。工具反混淆吗?我是菜鸟也不知道用撒工具好,那就自己来吧,反正代码量又不多。
   IL Dasm Dump出来程序,直接搜索button1_click。由于没有名称混淆,而此KeyGenMe也就一个按钮,不用说了这个事件是个关键。打开慢慢分析吧。

下面是button1_click事件整理后的代码:(以下代码是从IDA中分析整理的,因为IDA可以直接点击跳转的标号,这样就方便多了)

newobj  void [System]System.Diagnostics.Stopwatch::.ctor()
Stloc 0
Ldloc 0
callvirt void [System]System.Diagnostics.Stopwatch::Start()
ldstr   "Just so you know, the below loop is for testing purposes.”
Stloc 1
Ldc.i4.0

IL_loop:
Ldloc 2
Ldc.i4 0x3E8
Blt loc_632

Ldloc 0
callvirt void [System]System.Diagnostics.Stopwatch::Stop()
ldar.0
ldfld class [System.Windows.Forms]System.Windows.Forms.Label keygenme.Form1::label3
ldloc 0
callvirt int64 [System]System.Diagnostics.Stopwatch::get_ElapsedMilliseconds()
stloc 3 
ldloca 3
call callvirt int64 [System]System.Diagnostics.Stopwatch::get_ElapsedMilliseconds()
callvirt void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(class System.String)
ldarg.0
ldfld   class [System.Windows.Forms]System.Windows.Forms.TextBox keygenme.Form1::textBox2
 callvirt class System.String [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
//这里将正确的注册码压入堆栈
ldloc 1
//注意关键的地方
call    bool [mscorlib]System.String::op_Equality(class System.String, class System.String)
//如果要爆破了话,就在这里了
brfalse loc_71B

ldstr “VALID”
call    value class [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(class System.String)
pop
ret

loc_71B:
ldstr   "Invalid..."
call    value class [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(class System.String)
pop
ret

IL_632:
ldarg.0
ldfld   class [System.Windows.Forms]System.Windows.Forms.TextBox keygenme.Form1::textBox1
callvirt class System.String [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
//下面的Cenerate() 方法则是关键算法部分
call    class System.String KeyGenerator::Generate(class System.String str)
stloc 1
ldloc 2
ldc.i4.1
add
stloc 2
br IL_loop

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
2
没碰过.net.不敢碰的说..学习了...
2009-2-16 21:27
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
LS的大大如果搞.net
那一定很牛的

这个KeygenMe也就是流程混淆了一下

KeygenMe下载地下:http://forum.tuts4you.com/index.php?showtopic=18938&st=0&gopid=93796&#entry93796
Features:
-BrFlow Obfuscation

Notes:
Was just messing around with my BrFlow. Will post a real protection later

从上面看应该是作者自己写的混淆器混淆的
2009-2-16 21:44
0
雪    币: 346
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也正在学习.net,希望多放些类似的文章
2009-2-17 13:17
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
我也是一个初学者
希望可以多些朋友在一起讨论学习上的问题
2009-2-17 13:21
0
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
6
文章结构清晰
2009-2-17 13:37
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
7
我已经在打算写一个CM变KeyGen的了,看能不能骗到老大给我精华
2009-2-17 14:22
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
期待cntrump的精彩文章
2009-2-18 14:05
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看雪上又来了位高人了,才学四个月,都这么牛了,
我迷迷糊糊过了一年了,什么都不会,
2009-2-22 00:03
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10


我刚从鸟蛋里出来,还什么都不懂呢!
快一年了。
2009-2-23 09:54
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
11
很高兴能认识你,我也想多认识这方面的朋友,我加你吧
2009-2-24 22:22
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
嘻嘻!你厉害啊,都得精华了。看来我要好好努力了。
2009-4-19 21:09
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习学习啊,楼主牛人啊!
2009-5-23 16:03
0
雪    币: 157
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
boss厉害啊~ 有时间要像你请教.net技术和.net逆向啊
2009-8-27 00:18
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
.net完全不懂啊,飘过
2009-8-27 20:51
0
游客
登录 | 注册 方可回帖
返回
//