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

.Net零基础逆向教程 —— 第六课(必须跳过去)

Shark恒在他的这节课上讲的是汇编,教大家用OD折腾关键跳。

要说对应的话其实我应该写IL代码的,因为好多.Net的教程都认为IL是.Net逆向的基础。

但我想了想,dnSpy还有很多技巧没教给大家,直接上手IL是不是太难了?

毕竟我和Shark恒在基础课程上的想法是一致的,在我的课上,不会让你感到有那么枯燥就能学到知识。

所以从这节课开始我基本要脱离Shark恒的文案来写教程了,但愿我能写出很优秀的文案。

以下进入正题。


今天要学的内容,是“调用堆栈”

首先介绍下什么是“调用堆栈”

假设我们有几个函数,分别是function1,function2,function3,funtion4,且function1调用function2,function2调用function3,function3调用function4。在function4运行过程中,我们可以从线程当前堆栈中了解到调用他的那几个函数分别是谁。把函数的顺序关系看,function4、function3、function2、function1呈现出一种“堆栈”的特征,最后被调用的函数出现在最上方。因此称呼这种关系为调用堆栈。

简单的来说,我们能从调用堆栈里找出函数的执行过程。

下面我们结合一个小程序具体看看怎么用:

介绍一下软件,这个软件启动后3秒会自动关闭。
为了让零基础人群更容易掌握,于是我在关闭的时候加入了一个弹窗提示,如图。

将软件拖入dnSpy,按F5跑起来

等弹窗出现以后,中断它

然后你可以在调用堆栈选项卡里看到这个弹窗的来源,如果你没有调用堆栈选项卡,你可以在调试->窗口->调用堆栈里找到它

在我框起来的上下,均有一些带System、Windows的dll调用,这些都是系统的dll,自然不是我们要找的目标,因此我可以快速的找到框起来的这一行是我要找的目标。双击它进行跳转。

如图,dnSpy定位到了弹窗的来源。

阅读一下,发现这里定义了,当窗口关闭时,弹出信息框。

那么问题来了,谁导致窗口关闭的?

那么我们继续看堆栈。

第一处我们已经看过了,接下来我们看Timer事件,双击跟进。

看到这里有个Timer,结束了进程。

那么右键,编辑方法,注释掉它即可。

把程序保存一下看看,这下是不是不会再自动退出啦?

通过这一节课,我们学习到了调用堆栈的基础用法,这对我们今后爆破软件和分析执行流程提供了很大的帮助。


课件下载:https://articles.zsxq.com/id_vhu0a7web3xh.html


 

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

软件无法下载/安装/其它电脑问题,免费加QQ群(500人):949039296

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

想打赏微信扫右边的二维码,不建议超过10元,没指望靠这个养活我

 
文章标题:.Net零基础逆向教程 —— 第六课(必须跳过去)
本文作者:慕若曦
发表日期:2019-04-29 02:01 星期一    首发于    暮若夕
本文固定链接: https://www.muruoxi.com/jiaocheng/4106.html
 
文章标签:
上一篇: 下一篇:

2 条评论

评论加载中...
  1. 沙发
    小飞雪  

    学习了,很易懂
    文章中图片怎么不能放大查看了?代码字太小了,看不清

    2019年4月29日 下午3:19 评论
    • 禁止放大了,需要高清度的图的话可以在知识星球里看,毕竟我得给我的付费用户和免费用户分出一定的差异来。

      2019年4月29日 下午9:39 评论

发表评论

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

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