系统蓝屏的几种姿势

前言

 

在 蓝屏(BSOD)转储设置,看本文就够了! 这篇文章里比较详细的介绍了蓝屏转储设置。做好设置后,我们就可以在需要的时候使系统蓝屏了。这样我们就可以拿到一份系统转储,供我们分析问题了。本文介绍几种可以使系统蓝屏的办法。当然肯定还有其它办法,如果哪位小伙伴儿知道比较实用的方法,欢迎留言分享。

 

几种蓝屏方法

 

 

 

1. 通过驱动

思路是:在内核执行有问题的代码(比如,在驱动的入口处加上简单的 int* p = 0; *p = 0; ,然后加载有问题的驱动即可)。sysinternals 系列工具中的 NotMyFault 就是加载驱动,然后在驱动中模拟各种非法操作来使系统蓝屏的。

 

 

我们可以点击 Colors... 按钮,来看看其它颜色的 “蓝屏” 效果。可以通过 Hang 让系统挂起,还可以通过 Leak 模拟内核级内存泄漏。

我们还可以在命令行执行 notMyfault.exe /crash 来直接使系统蓝屏。如果我们想指定崩溃类型,可以使用 NotMyFault 的命令行版本 —— notmyfaultc.exe。

具体选项大家可以直接运行 notmyfaultc.exe 查看或者参考下图:

 

 

 

2. 杀死系统关键进程

如果系统关键进程挂掉了(比如,csrss.exe),那么系统也会蓝屏。

在 win7 系统中,具有管理员权限的进程可以杀死 csrss 进程,但是在 win10 中不能简单粗暴的杀死 csrss 进程了。

873494_3V469JJ2MWUD4F5.jpguploading.4e448015.gif转存失败重新上传取消

win10 变通方法:我们可以把其它进程设置为系统关键进程,然后杀掉。或者伪装成系统关键进程,然后自动退出。

感谢 https://bytecode77.com/hacking/payloads/bsod

 

 

 

 

1

int _tmain(int argc, _TCHAR* argv[])<br>{<br>    typedef NTSTATUS (*pfnRtlSetProcessIsCritical) (BOOLEANPBOOLEANBOOLEAN); // __cdecl<br>    typedef BOOL(WINAPI * pfnRtlAdjustPrivilege) (ULONG, BOOL, BOOL, PBOOLEAN);<br>    auto ntdll = ::LoadLibrary(TEXT("ntdll.dll"));<br>    auto RtlAdjustPrivilege = (pfnRtlAdjustPrivilege)GetProcAddress((HINSTANCE)ntdll, "RtlAdjustPrivilege");<br>    auto RtlSetProcessIsCritical = (pfnRtlSetProcessIsCritical)GetProcAddress((HINSTANCE)ntdll, "RtlSetProcessIsCritical");<br><br>    BOOLEAN e = 0;<br>    RtlAdjustPrivilege(20, 1, 0, &e);<br>    RtlSetProcessIsCritical(1, 0, 0);<br><br>    return 0;<br>}<br>

 

873494_UP242HVDPFB7E79.jpguploading.4e448015.gif转存失败重新上传取消

 

 

 

 

 

3. 使用快捷键

如果系统由于某些原因挂起了,我们没办法杀死系统关键进程,也不能运行 NotMyFault 了。这时候我们还可以通过快捷键来使系统蓝屏!不过我们需要预先做一些设置才行。把下面的代码保存到 .reg 文件,然后双击导入注册表,重启生效。

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Windows Registry Editor Version 5.00

 

;------------------------------------------------------------------------------

; enable BSOD by right CTRL + SCROLL + SCROLL 

;------------------------------------------------------------------------------

; For PS/2 keyboards

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]

"CrashOnCtrlScroll"=dword:00000001

 

; For USB keyboards

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters]

"CrashOnCtrlScroll"=dword:00000001

 

; For Hyper-V keyboards (BCN:I never use this, copy it from document)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\Parameters]

"CrashOnCtrlScroll"=dword:00000001

 

 

 

重启后,按住右侧的 Ctrl 键,然后按两下 SCROLL LOCK 键就可以使系统蓝屏了。这个方法在极少数的情况下会失效。比如,系统挂起在更高的中断请求级别(IRQL),没办法处理按键。不过,我们应该没那么点背。正如微软官方文档介绍的那样,有时候即使 CTRL+ALT+DELETE 不响应了,RCTRL + SCROLL + SCROLL 还能工作。

 

如果键盘上没有 Scroll Lock 键,怎么办?

 

 

 

4. 使用自定义快捷键

也许有的小伙伴使用的笔记本电脑的键盘上没有 Scroll Lock 键,该怎么办呢?Windows 已经考虑到了这种情况,允许我们自定义蓝屏快捷键。具体设置可以参考 微软官方文档 —— Forcing a System Crash from the Keyboard 。保存下面的代码到 .reg 文件,双击导入注册表,重启生效。

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

Windows Registry Editor Version 5.00

 

;------------------------------------------------------------------------------

; enable BSOD by custom key, mutually exclusive with CrashOnCtrlScroll setting

; Dump1Keys: 20 stands for LEFT CTRL

; Dump2Key:  HEXadecimal INDEX in keyToScanTbl[134]

;            01 stands for `/~ key (left of 1/! key)

;            3d stands for space key.

;            1f stands for A key. but after test, ctrl + a will not work. 

;            WARNING: not sure this works for all keyboards, try your luck :)

;------------------------------------------------------------------------------

 

; For PS/2 keyboards

; disable CrashOnCtrlScroll first

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]

"CrashOnCtrlScroll"=-

 

; setup custom key

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump]

"Dump1Keys"=dword:00000020

"Dump2Key"=dword:00000001

 

; For USB keyboards

; disable CrashOnCtrlScroll first

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters]

"CrashOnCtrlScroll"=-

 

; setup custom key

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump]

"Dump1Keys"=dword:00000020

"Dump2Key"=dword:00000001

 

; For Hyper-V keyboards (BCN:I never use this, reference above setting)

; disable CrashOnCtrlScroll first

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\Parameters]

"CrashOnCtrlScroll"=-

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump]

"Dump1Keys"=dword:00000020

"Dump2Key"=dword:00000001

 

 

 

重启后,按住左侧的 Ctrl 键,然后连续按两下 ` 键就可以使系统蓝屏了。注意:一定要连续按两下! 按一下是不行的。

想要正确设置自定义蓝屏快捷键,不是一件容易的事。需要了解以下几点:

 

 

  • 使用自定义快捷键需要先关闭 CrashOnCtrlScroll 设置,上面的代码已经做好了。

 

 

  • 因为不同类型的键盘对应的注册表位置不一样,怎么知道自己的机器上的键盘是哪种类型的?

我们可以打开设备管理器,查看当前机器上的键盘信息。

我们可以用如下方法打开 设备管理器:

 

 

    • win10 系统中,可以直接在搜索框(或者按一下 windows 键)输入 设备管理器 搜索打开。

 

 

    • win10 系统中,按 Windows + x 快捷键,在弹出的系统菜单里点击 设备管理器(M) 打开。

 

 

    • 输入 devmgmt.msc 打开。

 

 

    • 通过控制面版打开(不同系统中可能不一样)。

 

 

    • 还有很多其它方法,不一一列举了。

 

 

 

 

  • Dump1Keys 的值可以是组合值,比如,0x70 表示同时按下左侧的 ALT + CTRL + SHIFT。每一项的意义请参考下表(摘自微软官方文档):

 

 

  • Dump2Key 是按键的扫描码在数组 keyToScanTbl[134] 中的索引值,keyToScanTbl[134]的定义如下(摘自微软官方文档):

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

const UCHAR keyToScanTbl[134] = { 

        0x00,0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,

        0x0A,0x0B,0x0C,0x0D,0x7D,0x0E,0x0F,0x10,0x11,0x12,

        0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x00,

        0x3A,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,

        0x27,0x28,0x2B,0x1C,0x2A,0x00,0x2C,0x2D,0x2E,0x2F,

        0x30,0x31,0x32,0x33,0x34,0x35,0x73,0x36,0x1D,0x00,

        0x38,0x39,0xB8,0x00,0x9D,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0xD2,0xD3,0x00,0x00,0xCB,

        0xC7,0xCF,0x00,0xC8,0xD0,0xC9,0xD1,0x00,0x00,0xCD,

        0x45,0x47,0x4B,0x4F,0x00,0xB5,0x48,0x4C,0x50,0x52,

        0x37,0x49,0x4D,0x51,0x53,0x4A,0x4E,0x00,0x9C,0x00,

        0x01,0x00,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,

        0x43,0x44,0x57,0x58,0x00,0x46,0x00,0x00,0x00,0x00,

        0x00,0x7B,0x79,0x70 };

 

 

上面的例子中,` 键的扫描码是 0x29,在keyToScanTbl[134]的索引是 1 。

 

 

 

  • 关于扫描码,按下和抬起按键时会产生不同的扫描码,我们需要关注的是按下时对应的扫描码。同时,不同的键盘可能有不同的扫描码。下面给出 101/102键 键盘(PC/AT 和 PS/2) 的扫描码。

 

 

 

  • 我们参考相关文档的时候需要注意 按下按键对应的术语是(Make),抬起按键对应的术语是(Break)。下面贴一张扫描码表的部分截图:

表格最后的说明非常重要:

高亮部分的意思是:操作系统的其它部分和所有的应用程序按 Scan Code Set 1 里的值处理扫描码。所以我猜测微软官方文档里的 keyToScanTbl[134] 的值是按照 Scan Code Set 1 给出的。实在没精力调查的更清楚了,如果哪位小伙伴儿熟悉相关内容,请务必指点!我特意录制了使用自定义快捷键 CTRL + ` + ` 触发蓝屏的过程。按一次 ` 是不行的,一定要按两次。

 

 

 

 

 

5. 借助硬件

如果以上方法都行不通,还可以使用 PCI Express Dump Switch Card 使系统蓝屏,Windows 7, Windows Server 2008 R2 及更早的系统需要设置如下注册表项:

 

 

 

 

1

2

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl]

"NMICrashDump"=dword:00000001

 

 

 

6. 内核调试器

如果已经用内核调试器附加到目标系统了,我们可以直接使用 .dump 命令保存转储文件,没必要使系统蓝屏再保存转储文件。当然,如果我们喜欢,也可以使用 .crash 命令使系统蓝屏,如果执行完该命令后,系统没蓝屏,请执行 g 命令。说明:如果当前正在执行 bug check处理函数,不要使用 .crash 命令。

 

 

 

 

注意:

需要双机内核调试的时候才行。在本地内核调试的时候,不能使用 .dump 命令,也不能使用 .crash 命令!真是个坏消息!!!

 

 

 

 

7. 其它

 

 

  • 利用 NtRaiseHardError,参考 github 上的 Invoke-BSOD 项目。

 

 

  • 利用系统漏洞。这方面我不擅长,欢迎搞安全的小伙伴儿分享。

 

 

 

 

 

蓝屏转储一瞥

 

通过杀死系统关键进程导致的蓝屏,对应的 Bug Check Code 是 0xF4(CRITICAL_OBJECT_TERMINATION)。

通过 NMI 导致的蓝屏,对应的 Bug Check Code 是 0x80(NMI_HARDWARE_FAILURE),表示这个蓝屏是由于硬件错误触发的。

通过系统快捷键导致的蓝屏,对应的 Bug Check Code 是 0xe2(MANUALLY_INITIATED_CRASH),表示这个蓝屏是用户手动触发的。

我们可以用 !analyze -show 来查看转储文件中的 bug check code 信息。

从输出结果可知,这个蓝屏是用户手动触发蓝屏产生的。从调用栈可知,是 i8042prt.sys 处理了我们的按键,从而导致的蓝屏。

 

友情提示:

如果直接用 windbg 打开 %SystemRoot%\MEMORY.DMP 会提示权限不够。可以以管理员权限运行 windbg 后再打开。或者拷贝转储文件到其它目录后再打开即可。注意一定是拷贝,而不是剪切。

 

总结

 

 

  • 特殊情况下,我们可能会主动使系统蓝屏来保存一份转储文件,供我们事后分析。
  • 我们可以通过本文介绍的几种方法来使系统蓝屏。我个人偏向使用 NotMyFault 或者蓝屏快捷键使系统蓝屏。
  • 使用自定义的蓝屏快捷键的时候,需要关闭 CrashOnCtrlScroll 设置。
  • Dump1Keys 的值可以是组合值,比如,0x70 表示同时按下左侧的 ALT + CTRL + SHIFT。
  • Dump2Key 的值是对应按键的扫描码在数组 keyToScanTbl[134] 中的索引值,而且是 16 进制的。
  • 需要连续按两次设置的按键才能蓝屏!比如,我们需要按 CTRL + ` + `,而不是 CTRL + ` 。
  • 尽量不要设置已经被占用的快捷键。我尝试使用 CTRL + A + A 作为快捷键,但是不能触发蓝屏,猜测是因为 CTRL + A 被占用了。但是 ALT + CTRL+ SHIFT + A + A 是可以的。
  • 在 windbg 中通过 !analyze -show 可以查看转储文件中的 bug check code 信息。
  • 对于手动蓝屏得到的转储文件,使用 !analyze -v 不能得到更多有效的信息,我们需要分析转储文件中的其它信息。
  • %SystemRoot%\MEMORY.DMP 需要管理员权限才能打开,可以拷贝(而不是剪切)一份到其它目录,就可以正常打开了。

 

 

参考资料

 

 

 

  • https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-179-Manually-Forcing-a-Crash-Dump

 

 

  • NMI_HARDWARE_FAILURE error when an NMI is triggered on Windows 8 and Windows Server 2012

 

 

  • https://docs.microsoft.com/en-us/windows/client-management/generate-kernel-or-complete-crash-dump#use-nmi

 

 

  • https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/forcing-a-system-crash-from-the-debugger

 

 

  • https://www.scs.stanford.edu/10wi-cs140/pintos/specs/kbd/scancodes-9.html

 

 

  • https://codertw.com/%E4%BC%BA%E6%9C%8D%E5%99%A8/135227/

 

 

  • http://advdbg.org/forums/3067/PrintPost.aspx

 

 

  • https://en.wikipedia.org/wiki/Scancode

 

 

  • https://en.wikipedia.org/wiki/Keyboard_layout

 

 

  • http://www.philipstorr.id.au/pcbook/book3/scancode.htm

 

 

  • https://www.scs.stanford.edu/10wi-cs140/pintos/specs/kbd/scancodes-9.html

 

 

  • http://www.geoffchappell.com/studies/windows/win32/ntdll/api/rtl/peb/setprocessiscritical.htm

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx lua mysql 性能_深入浅出 nginx lua 为什么高性能

最近很多人问我nginx lua的优势是什么&#xff1f;为什么&#xff1f;一、同步和异步、阻塞和非阻塞如果要说清楚这个问题首先要了解&#xff1a;同步和异步、阻塞和非阻塞的关系同步&#xff1a;php、java的正常代码都是同步执行的异步&#xff1a;javascript的回调函数就是异…

求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0

学了java基础东西&#xff0c;就写了这个编程&#xff0c;求两个数字的乘积&#xff0c;如果大于0&#xff0c;说明两个数字同号&#xff0c;如果小于0&#xff0c;说明两个数字异号&#xff0c;如果等于0&#xff0c;说明其中一个是0 首先程序要求我们输入两个数字&#xff0c…

处理机流水线------经典五段流水线

文章是在我遇到这部分问题时查找的所有感觉挺好的内容的整合&#xff08;全部是转载的&#xff09; 流水线基础理论就不加了&#xff0c;最新的处理器流水线处理的机制也没有&#xff08;一般以用不到&#xff09;&#xff0c;想了解去随便找个芯片厂商官网下个手册自己查。 这…

求1+2+......+100的和

如何求12…100的和&#xff1f;有很多方法&#xff0c;这里我介绍用三种循环方法去求12…100的和 方法一&#xff1a;for循环&#xff1a; 代码如下&#xff1a; /**1. 求12......100的和2. 方法1&#xff1a;for循环*/ public class Demo2 {public static void main(String[…

台湾游戏企业抢滩大陆 研发成竞争核心

近日&#xff0c;台湾游戏企业进驻大陆设立研发机构、产品同大陆企业联合运营、大陆企业的产品进入台湾联运&#xff0c;以及最新的政策新闻&#xff0c;都将大陆和台湾这对本是同根的产业兄弟推上了风口浪尖。 在正在举行的“第二届中国优秀游戏制作人评选大赛”上&#xff0c…

mysql 插入中文 ERROR 1366 (HY000): Incorrect string value: '\xE7\x8E\x9E\x97' for column

1、出现这个问题&#xff0c;是因为我们的字符编码设置出现了问题&#xff0c;用cmd打开命令终端&#xff0c;查看我们的数据库设置&#xff1a; 2、输入命令use crm&#xff08;crm是我创建的数据库,大家在修改时换成自己的数据库名即可&#xff09; 再输入&#xff1a;show …

handlersocket mysql_Mysql插件之HandlerSocket的安装、配置、使用

HandlerSocket简介HandlerSocket是针对Mysql的一个NoSQL插件&#xff0c;它作为一个守护进程工作在mysqld进程里面,接收tcp连接&#xff0c;并处理来自客户端的请求。HandlerSocket不支持SQL查询&#xff0c;作为替代&#xff0c;它支持表的简单的CRUD操作。由于下面的原因&…

java,jdk安装,配置环境变量,window10系统

1、找到我们要安装的jdk软件&#xff0c;软件下载我就不介绍了&#xff0c;jdk下载连接地址 然后安装&#xff0c;一直点下一步就可以了&#xff0c;这里不建议跟换软件目录&#xff0c;毕竟第一次用&#xff0c;出了什么错就不好弄了&#xff0c;注&#xff1a;记得软件的安装…

solr mysql数据注入_(solr系列:四)将mysql数据库中的数据导入到solr中

在前面的博文中&#xff0c;已完成了在tomcat中对solr的部署&#xff0c;为solr添加了一个自定义的core,并且引入了ik分词器。那么该如何将本地的mysql的数据导入到solr中呢&#xff1f;准备工作&#xff1a;1、mysql数据源&#xff1a;myuser库中的user表(8条数据)/*Navicat M…

Silverlight学习笔记(三):创建第一个Silverlight应用程序

在开始创建程序之前&#xff0c;还是要提一下关于Silverlight开发环境搭建的问题。如果使用VS2010&#xff0c;这可以搭建Silverlight4的开发环境。我推荐大家看这篇由大牛jv9撰写的【轻松建立Silverlight 4开发环境】。 我使用的是VS2008&#xff0c;所以要搭建的是Silverlig…

按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...

地铁紧急停车按钮图片来自网络位置&#xff1a;站台两侧墙壁上&#xff0c;靠近列车车头、车尾两侧。外观&#xff1a;上锁的红色四方小盒子&#xff0c;按钮为红色&#xff0c;旁边写有“紧急停车按钮”等字样。使用&#xff1a;紧急时刻击碎中间玻璃&#xff0c;按压按钮。红…

根据F12在页面中调整div的大小

我们先随便写一个div大小&#xff0c;然后在chrome浏览器打开&#xff0c;显示效果&#xff1a; #logo{border: 1px solid black;width: 1300px;height: 50px;} .top{border: blue solid 1px;width: 420px;height: 50px;float: left;}<div id"logo"><div c…

The security settings could not be applied to the database because the connection has failed安装Mysql

安装msql出现这个问题&#xff0c;&#xff0c;百度了好久才解决了问题&#xff0c;说一下怎么解决的吧 把以前安装的Mysql删除打开C盘&#xff0c;点击查看&#xff0c;然后点击隐藏的项目&#xff0c;这时候目录会出现ProgramData文件&#xff0c;然后点击这个文件&#xff…

Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)

拷贝jar包 找到我们的hibernate安装包&#xff0c;在lib目录下找到optional目录&#xff0c;打开c3p0文件&#xff0c;拷贝里面的jar包到eclipse里 写一个测试类&#xff0c;代码入下 public class C3P0Test {Testpublic void test() {Session s HabernateUtils.openSessi…

workerman json mysql_workerman-json-rpc

软件简介一款使用PHP开发的高性能Json Rpc框架&#xff0c;框架使用TCP/IP协议直接传输json数据&#xff0c;系统集成统计监控模块&#xff0c;开发部署维护非常简。workerman-json-rpc 包含了服务端和客户端。特性&#xff1a;使用PHP开发&#xff0c;与PHP紧密结合PHP 多进程…

spring boot 集合mysql_Spring boot整合mysql和druid

Spring boot整合mysql和druid集成mysql数据库引入依赖mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-jdbc添加数据库配置Spring boot项目的resources目录下的applicataion.properties# datasourcespring.datasource.urljdbc:mysql://127.0.0.1…

在博客里轻松使用LaTeX 数学公式[转]

笔者最近的博文有不少数学相关内容&#xff0c;发现利用一些网上服务、jQuery和CSS&#xff0c;可以更轻松地在博客里使用语法排版方程式。是基于的排版系统。而就是美国著明计算机教授高德纳(Donald E. Knuth)&#xff0c;为了编写他的巨著《计算机程序设计艺术(The Art of Co…

oracle查看所有用户_Oracle实用命令查看共用一个表空间的所有用户

概述有朋友问到如何查出表空间都被哪些用户使用的一些方法&#xff0c;因为有几种情况需要考虑&#xff0c;也顺便做个总结。需求&#xff1a;如何查看共用一个表空间的所有用户查看某表空间下表的所有者使用dba用户查询&#xff1a;1、如果先要知道表空间的命名&#xff0c;可…

Hibernate中把Session和线程绑定的配置

我们一开始用session都用HibernateUtil工具类获得Session对象&#xff0c;因为该工具类可以保证将线程不安全的Session绑定到当前线程内&#xff0c;但每次返回的对象都是一个新的session&#xff0c;我写了一个测试方法如下&#xff1a; Testpublic void test() {Session s1 …

【转】小周立波张冯喜引爆达人秀 小童星家居照大曝光

原文地址&#xff1a;http://www.soufun.com/news/2010-10-13/3897753.html 小小年纪&#xff0c;一身西装&#xff0c;发式清爽&#xff0c;腔调十足&#xff0c;有观众说她“天才有余&#xff0c;天真不足”&#xff0c;她自己说“进演艺圈太累了”&#xff0c;刚踏进演艺圈就…