当前位置:首页 > 原创教程 > 正文

.Net零基础逆向教程 —— 第八课(打不开的程序)

第八课准备补一张de4dot的基础用法的……找了半天没有找到特别好的例子,把几个论坛的CM区翻遍了也没找到一个适合做讲解的。

一看时间都十点了,为了不鸽大家,花了一分钟打开我的VS,一分钟写代码编译,然后就搞定今天的课件了。没错,就这么任性。

先来看看今天的这个程序:

双击它来了解一下……你会发现啥都没有发生。看了下进程日志,发现它直接退出了。

这就尴尬了,我们之前学的所有操作,都建立在我们看到了明显标志的情况下,这个软件连界面都没有,我们怎么搞?

不管我们有没有思路,该做的基本操作还是要做的。

DIE查壳,没壳,载入dnSpy看看,按照我们之前的思路,直接运行它看看。

还是秒退,所以我们得分析下这个软件是在哪里退出的。如下图,设置它中断于入口点。

好,现在我们在Main方法里断下来了

我们并不需要点进每一个方法里去查看,因为它是无报错直接退出的,所以我们猜测它是由软件控制退出的。

所以我们直接使用逐过程来分析它是在哪个方法里出问题了,快捷键F10,这一点和我们在OD里找关键Call的方法很相似。

点了几次F10后,我们发现在16行运行完了后程序自动退出了,而16行是一个闭合括号。说明15行的方法里包含了让程序退出的原因。有没有一种在OD里找关键Call的代入感???

我们看一下15行的内容

Application.Run(new Form1());

运行后载入Form1,点一下Form1去看看这个窗口

14行,上节课说过它定义了窗口的一些布局,跟进看一下内容

可以发现52行定义了一个Form_Load事件(等同于易语言的窗口加载事件)

点一下Form1_Load,可以看到里面有一个关闭窗口的方法。

右键编辑方法,注释掉这行即可。

保存即可看到我们的成果。


在我们的实际操作中,这种防逆向的手段较为常见,当然肯定比我这个写的复杂点儿,比如检验自身hash之类的。但解决的方法还是一样的,不管三七二十一跟着程序运行,搞懂它的逻辑,我们就能成功。

本系列之后应该还有两课,一课简单说下de4dot的用法,一课讲一下WPF的修改。然后我要在知识星球更一期的网站建设课程,等更新完了会返回来结合实例继续深入.Net逆向,算是第二期。

本节课课件:https://articles.zsxq.com/id_pb2ritc63ua0.html


 

本博客资源若无特殊说明,均为和谐版本,无需付费,我不搞软件的会员,也不接受指定的和谐业务。

 

软件无法下载/安装/其它电脑问题,免费加企鹅群:709531763

有问题加上面的群,直接群里问,在线的时候有问必答,私聊一般都不看

想打赏微信扫右边的二维码

 
文章标题:.Net零基础逆向教程 —— 第八课(打不开的程序)
本文作者:慕若曦
发表日期:2019-04-29 02:16 星期一    首发于    暮若夕
本文固定链接: https://www.muruoxi.com/jiaocheng/4109.html
 
文章标签:
上一篇: 下一篇:

1 条评论

评论加载中...
  1. 沙发
    zzy_ATP   

    好强~

    2019年11月2日 下午9:38 评论

发表评论

╮( ̄▽ ̄)╭ |  (= ̄ω ̄=) |  (>﹏<) |  Σ( ° △ °|||)︴ |  Σ(っ °Д °;)っ |  X﹏X |  (╯-_-)╯╧╧

小提示:提交评论后刷新本页面即可看到隐藏的文件哦~
加载中……