Visual Studio快捷键介绍和高级玩法

14 篇文章 0 订阅
4 篇文章 0 订阅
本文详细介绍了Visual Studio IDE的强大调试功能,包括设置断点、调试库函数(如memset)的过程,以及如何利用Spy++进行窗口跟踪和问题排查。重点展示了Windows下调试工具的实用技巧和Spy++在广告追踪和逆向工程中的作用。
摘要由CSDN通过智能技术生成

既然使用IDE,我想更多的看重的是它的调试和定位功能。其他的快捷键需要自己慢慢探索。微软不太好的地方是vscode和studio的快捷方式不太一样。

调试

  • 调试(启动):F5;
  • 调试(重新启动):使用组合键“Ctrl+Shift+F5”;
  • 调试(开始执行不调试):使用组合键“Ctrl+F5”;
  • 调试(逐语句,步入):F11;
  • 调试(逐过程,步过):F10;
  • 设置断点:F9。
  • 退出当前过程: Shift+F11
  • 编译: F7

如果遇到库函数,想看看库函数的实现,怎么办? 举个例子memset函数,很常见的一个函数。
(1) F9在memset处设置断点
(2) Debug运行程序
(3) 到达断点,查看memset的反汇编

memset(&appBaseMem, 0, sizeof(appBaseMem));
00600645  push        0Ch  
00600647  push        0  
00600649  lea         eax,[appBaseMem]  
0060064C  push        eax  
0060064D  call        _memset (024571FCh)  
00600652  add         esp,0Ch

(4) F11步进_memset

024571FC  jmp         dword ptr [__imp__memset (1855A5B4h)]

(5)继续F11

583750E0  mov         ecx,dword ptr [esp+0Ch]  
583750E4  movzx       eax,byte ptr [esp+8]  
583750E9  mov         edx,edi  
583750EB  mov         edi,dword ptr [esp+4]  
583750EF  test        ecx,ecx  
583750F1  je          58375233  
583750F7  imul        eax,eax,1010101h  
583750FD  cmp         ecx,20h  
58375100  jle         583751E5  
58375106  cmp         ecx,80h  
5837510C  jl          5837519D  
58375112  bt          dword ptr ds:[5838731Ch],1  
5837511A  jae         58375125  
5837511C  rep stos    byte ptr es:[edi]  
5837511E  mov         eax,dword ptr [esp+4]  
58375122  mov         edi,edx  
58375124  ret

可以逐步调试汇编代码查看寄存器的值。也可以查看内存的值,函数的调用堆栈等,超级强大。

在这里插入图片描述

从第(4)->第(5)经历了什么,后续会专门讲解,这里涉及到windows下库函数定位。

定位

  1. 转跳到定义:F12;
  2. 查找所有引用:使用组合键“Shift+F12”

搜索功能

CTRL+F
全局查找

在光标所在行的上面或下面插入一行

  • 组合键“Ctrl+Enter”:在当前行的上面插入一个空行;
  • 组合键“Ctrl+Shift+Enter”:在当前行的下面插入一个空行。

Spy++

绝对的神器。

有没有被莫名的广告弹窗折磨过?有没有体验过干不掉广告的痛苦?Spy++能协助解决windows下大部分的问题。在逆向中,Spy++也是一个利器。

使用场景
  • 我经常用来查询一个不知道从哪里弹出来的广告窗口是哪个进程搞的鬼……然后干掉
  • 枚举所有窗口,查看父子关系,搜索某个窗口是否存在
  • 查询一个窗口(包括隐藏窗口)的属性,包括标题、类名、位置、进程线程
  • 通过分析其他软件的窗口消息,辅助研究其内部实现原理
  • 分析某窗口的消息参数,给其发送冒充消息,以实现特殊的功能
使用

在这里插入图片描述这里以美图秀秀为例子,点击确定可以查看样式,窗口,类,进程等信息,选择消息的话可以查看消息。
在这里插入图片描述
再也不用担心广告了

注意: 这里的PID是十六进制的

Spy++下载

Spy++可以单独使用,可通过下面的地址进行下载:
https://download.csdn.net/download/helloworlddm/17453385?spm=1001.2014.3001.5501

写在最后

Visual Studio的功能非常强大,要比Android Studio的功能强大很多,几乎涵盖了编程的方方面面,甚至调试windows内核也是可以的(本质上还是集成windbg),能够取代windbg。不过Visual Studio体积太大,如非必要,可能用不到这么大的工具,毕竟杀鸡不必用牛刀,但是杀牛就要用牛刀了。

公众号

更多内容,欢迎关注我的微信公众号:无情剑客。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloworddm

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值