吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5456|回复: 7
收起左侧

[.NET逆向] 【Revering.kr】CSharp

  [复制链接]
whklhh 发表于 2017-10-18 01:18
本帖最后由 whklhh 于 2017-10-18 01:20 编辑

Reversing.kr是韩国的一个逆向题目网站
有分国度的排行榜,还是挺有意思的
本题即来自于第二十关CSharp
http://reversing.kr/challenge.php可以下载到文件

标题很明显能看出来是C#,
.NET程序EXEINFOIE和PEiD对.NET的查壳不太好使

运行看看,就是一个输入框和按钮

直接拖入ILSpy中:
Click事件获取输入框的文本,调用MetMetMet

MetMetMet中的流程虽然有点凌乱,但是大体上还是能理清的:





先b64加密,存在bytes中
然后创建了一个数组,array[0]=1
接着通过method调用了MetM方法,参数分别是array和bytes
最后判断array,也就是返回值了
那么关键判断流程就在于MetM方法中了,直接查看发现被加密了:





试了一下de4dot等脱壳工具和查壳工具都没有结果,最后发现在这里


窗体初始化的时候提取MetMett方法,然后进行解密

最简单的方法就是直接动态调,断下来该方法解密后的值然后再分析
不过找了一下ILSpy和.NET Reflector虽然都有动态调试的插件,但是都没法看到十六进制的内存(:з」∠)
也可能是我不会玩儿吧

解密方法倒是不太难,手动的话就是IDA中把源数据Dump下来,处理过后再复制回去文件中即可

[Python] 纯文本查看 复制代码
b = 0
for i in range(len(bb)):
    bb += 1
    bb = bb % 256
    b += bb
bb[18] = (b - 38)%256
bb[35] = (b - 3)%256
bb[52] = (b ^ 39)%256
bb[69] = (b - 21)%256
bb[87] = (71 - b)%256
bb[124] = (b ^ 114)%256
bb[141] = (b ^ 80)%256
bb[159] = (235 - b)%256
bb[179] = (106 + b)%256
bb[200] = (36 - b)%256
bb[220] = (b - 3)%256

for i in bb:
    print("%02x"% i, end=' ')

注意数据以字节为单位,范围只有0-255,刚开始没注意这点的时候出了好几次错(:з」∠)
数据复制下来通过winhex之类的编辑器覆盖方法即可(如果不会计算RVA→RAW偏移的话,直接搜索开头的数值就可以了)
覆盖以后再通过ILSpy分析:
  

就是很简单的异或验证了,清洗下代码就能得到flag:
[Python] 纯文本查看 复制代码
import base64
bt = [0 for i in range(12)]

bt[0] = 16 ^ 74
bt[3] = 51 ^ 70
bt[1] = 17 ^ 87
bt[2] = 33 ^ 77
bt[11] = 17 ^ 44
bt[8] = 144 ^ 241
bt[4] = 68 ^ 29
bt[5] = 102 ^ 49
bt[9] = 181 ^ 226
bt[7] = 160 ^ 238
bt[10] = 238 ^ 163
bt[6] = 51 ^ 117

flag = ''
for i in bt:
    flag+=(chr(i))

print(base64.b64decode(flag))

直接动态调试的方法,参考了一下http://www.mottoin.com/88578.html的WP,使用dnSpy更加方便,这个反编译器拥有更丰富的动态调试组件,比如监视器、修改内存 等等
下断后查看监视器

将0x000000EA处的值复制下来,粘贴到MetM方法处保存,再重新打开即可

这题的难点在于.NET的动态调试和代码加密,还是挺有收获的

CSharp _ori.rar

4.96 KB, 下载次数: 7, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 6威望 +1 吾爱币 +15 热心值 +6 收起 理由
极地冷战 + 1 + 1 我很赞同!
Three_fish + 1 + 1 谢谢@Thanks!
tigerxiao + 1 + 1 鼓励转贴优秀软件安全工具和文档!
lies2014 + 1 + 1 谢谢@Thanks!
Hmily + 1 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
废宅小五 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

psx1lin 发表于 2017-10-18 08:09
學習了
感谢分享
mayl8822 发表于 2017-10-18 10:22
jason1204 发表于 2017-10-18 12:14
tigerxiao 发表于 2017-10-18 14:05
感谢分享
极地冷战 发表于 2017-10-20 08:32
支持新人
Three_fish 发表于 2017-10-21 00:03
感谢分享
三星s7edge 发表于 2017-11-1 11:27 来自手机
学习了 还得自己实际操作一番
52lxw 发表于 2019-5-27 20:35
谢谢师傅,学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-28 22:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表