-
Notifications
You must be signed in to change notification settings - Fork 1
/
IDA基础功能总结.html
2170 lines (1962 loc) · 92.4 KB
/
IDA基础功能总结.html
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.4.2">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
<link rel="mask-icon" href="/images/logo.svg" color="#222">
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css">
<script id="hexo-configurations">
var NexT = window.NexT || {};
var CONFIG = {"hostname":"leeyuxun.github.io","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":true,"show_result":true,"style":"mac"},"back2top":{"enable":true,"sidebar":true,"scrollpercent":true},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":true,"mediumzoom":false,"lazyload":false,"pangu":true,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"./public/search.xml"};
</script>
<meta name="description" content="前言IDA 是一种交互式、可编程的反汇编工具; 支持数十种常见处理器平台的指令集,包括 Intel x86,x64,MIPS,PowerPC,ARM, Z80,68000,c8051等; IDA支持的文件类型也非常丰富,包括常 见PE格式和Windows,DOS,UNIX,Mac, Java,.NET等平台的文件格式; 漏洞分析时,通常先用IDA先对可执行文件进行静态分析,下面将介绍IDA V7.">
<meta property="og:type" content="article">
<meta property="og:title" content="IDA基础功能总结">
<meta property="og:url" content="https://leeyuxun.github.io/IDA%E5%9F%BA%E7%A1%80%E5%8A%9F%E8%83%BD%E6%80%BB%E7%BB%93.html">
<meta property="og:site_name" content="Leeyuxun の note">
<meta property="og:description" content="前言IDA 是一种交互式、可编程的反汇编工具; 支持数十种常见处理器平台的指令集,包括 Intel x86,x64,MIPS,PowerPC,ARM, Z80,68000,c8051等; IDA支持的文件类型也非常丰富,包括常 见PE格式和Windows,DOS,UNIX,Mac, Java,.NET等平台的文件格式; 漏洞分析时,通常先用IDA先对可执行文件进行静态分析,下面将介绍IDA V7.">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124133434.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124132726.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124131522.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124132102.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124141028.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124173639.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124175909.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124183616.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124185007.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124191248.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124192737.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124194952.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124231805.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124224641.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124134855.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210125092623.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210125174031.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126103158.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126111657.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126135153.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126135053.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123220406.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126141717.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126141927.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142013.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142206.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142343.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142428.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142624.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142833.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126143221.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126143521.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126143855.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126144032.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126144118.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126144231.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126145009.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126150035.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126150401.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126151104.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126151504.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126151810.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126164648.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126113700.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126114405.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126102730.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126164911.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126100425.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118171441.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124125831.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124130532.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124130635.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118173122.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118175956.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118172927.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/image-20210118180516425.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123195753.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123200149.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124112927.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124113103.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124113225.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124114707.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124121245.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124122347.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124122543.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124123426.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124124318.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124124948.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123222853.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123223825.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123224015.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126215758.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123220406.png">
<meta property="og:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126224840.png">
<meta property="article:published_time" content="2021-01-26T14:54:52.000Z">
<meta property="article:modified_time" content="2023-05-07T07:37:53.506Z">
<meta property="article:author" content="李钰璕">
<meta property="article:tag" content="IDA">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124133434.png">
<link rel="canonical" href="https://leeyuxun.github.io/IDA%E5%9F%BA%E7%A1%80%E5%8A%9F%E8%83%BD%E6%80%BB%E7%BB%93.html">
<script id="page-configurations">
// https://hexo.io/docs/variables.html
CONFIG.page = {
sidebar: "",
isHome : false,
isPost : true,
lang : 'zh-CN'
};
</script>
<title>IDA基础功能总结 | Leeyuxun の note</title>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V3499K2XZY"></script>
<script>
if (CONFIG.hostname === location.hostname) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-V3499K2XZY');
}
</script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?4d72a66931dff6410b32974da2e3df61";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<noscript>
<style>
.use-motion .brand,
.use-motion .menu-item,
.sidebar-inner,
.use-motion .post-block,
.use-motion .pagination,
.use-motion .comments,
.use-motion .post-header,
.use-motion .post-body,
.use-motion .collection-header { opacity: initial; }
.use-motion .site-title,
.use-motion .site-subtitle {
opacity: initial;
top: initial;
}
.use-motion .logo-line-before i { left: initial; }
.use-motion .logo-line-after i { right: initial; }
</style>
</noscript>
<style>mjx-container[jax="SVG"] {
direction: ltr;
}
mjx-container[jax="SVG"] > svg {
overflow: visible;
}
mjx-container[jax="SVG"][display="true"] {
display: block;
text-align: center;
margin: 1em 0;
}
mjx-container[jax="SVG"][justify="left"] {
text-align: left;
}
mjx-container[jax="SVG"][justify="right"] {
text-align: right;
}
g[data-mml-node="merror"] > g {
fill: red;
stroke: red;
}
g[data-mml-node="merror"] > rect[data-background] {
fill: yellow;
stroke: none;
}
g[data-mml-node="mtable"] > line[data-line] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > rect[data-frame] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > .mjx-dashed {
stroke-dasharray: 140;
}
g[data-mml-node="mtable"] > .mjx-dotted {
stroke-linecap: round;
stroke-dasharray: 0,140;
}
g[data-mml-node="mtable"] > svg {
overflow: visible;
}
[jax="SVG"] mjx-tool {
display: inline-block;
position: relative;
width: 0;
height: 0;
}
[jax="SVG"] mjx-tool > mjx-tip {
position: absolute;
top: 0;
left: 0;
}
mjx-tool > mjx-tip {
display: inline-block;
padding: .2em;
border: 1px solid #888;
font-size: 70%;
background-color: #F8F8F8;
color: black;
box-shadow: 2px 2px 5px #AAAAAA;
}
g[data-mml-node="maction"][data-toggle] {
cursor: pointer;
}
mjx-status {
display: block;
position: fixed;
left: 1em;
bottom: 1em;
min-width: 25%;
padding: .2em .4em;
border: 1px solid #888;
font-size: 90%;
background-color: #F8F8F8;
color: black;
}
foreignObject[data-mjx-xml] {
font-family: initial;
line-height: normal;
overflow: visible;
}
.MathJax path {
stroke-width: 3;
}
mjx-container[display="true"] {
overflow: auto hidden;
}
mjx-container[display="true"] + br {
display: none;
}
</style></head>
<body itemscope itemtype="http://schema.org/WebPage">
<div class="container use-motion">
<div class="headband"></div>
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-container">
<div class="site-nav-toggle">
<div class="toggle" aria-label="切换导航栏">
<span class="toggle-line toggle-line-first"></span>
<span class="toggle-line toggle-line-middle"></span>
<span class="toggle-line toggle-line-last"></span>
</div>
</div>
<div class="site-meta">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<h1 class="site-title">Leeyuxun の note</h1>
<span class="logo-line-after"><i></i></span>
</a>
<p class="site-subtitle" itemprop="description">BUPT | SCSS</p>
</div>
<div class="site-nav-right">
<div class="toggle popup-trigger">
<i class="fa fa-search fa-fw fa-lg"></i>
</div>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="main-menu menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
</li>
<li class="menu-item menu-item-links">
<a href="/links/" rel="section"><i class="fa fa-link fa-fw"></i>友链</a>
</li>
<li class="menu-item menu-item-search">
<a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
</a>
</li>
</ul>
</nav>
<div class="search-pop-overlay">
<div class="popup search-popup">
<div class="search-header">
<span class="search-icon">
<i class="fa fa-search"></i>
</span>
<div class="search-input-container">
<input autocomplete="off" autocapitalize="off"
placeholder="搜索..." spellcheck="false"
type="search" class="search-input">
</div>
<span class="popup-btn-close">
<i class="fa fa-times-circle"></i>
</span>
</div>
<div id="search-result">
<div id="no-result">
<i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
</div>
</div>
</div>
</div>
</div>
</header>
<main class="main">
<div class="main-inner">
<div class="content-wrap">
<div class="content post posts-expand">
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://leeyuxun.github.io/IDA%E5%9F%BA%E7%A1%80%E5%8A%9F%E8%83%BD%E6%80%BB%E7%BB%93.html">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="李钰璕">
<meta itemprop="description" content="安全学习笔记">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Leeyuxun の note">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
IDA基础功能总结
</h1>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2021-01-26 22:54:52" itemprop="dateCreated datePublished" datetime="2021-01-26T22:54:52+08:00">2021-01-26</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar-check"></i>
</span>
<span class="post-meta-item-text">更新于</span>
<time title="修改时间:2023-05-07 15:37:53" itemprop="dateModified" datetime="2023-05-07T15:37:53+08:00">2023-05-07</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/tools/" itemprop="url" rel="index"><span itemprop="name">tools</span></a>
</span>
</span>
<span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv" style="display: none;">
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="post-meta-item-text">阅读次数:</span>
<span id="busuanzi_value_page_pv"></span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>IDA 是一种交互式、可编程的反汇编工具;</p>
<p>支持数十种常见处理器平台的指令集,包括 Intel x86,x64,MIPS,PowerPC,ARM, Z80,68000,c8051等;</p>
<p>IDA支持的文件类型也非常丰富,包括常 见PE格式和Windows,DOS,UNIX,Mac, Java,.NET等平台的文件格式;</p>
<p>漏洞分析时,通常先用IDA先对可执行文件进行静态分析,下面将介绍IDA V7.0用于静态分析的基础功能;<span id="more"></span></p>
<h1 id="顶部菜单栏"><a href="#顶部菜单栏" class="headerlink" title="顶部菜单栏"></a>顶部菜单栏</h1><h2 id="File"><a href="#File" class="headerlink" title="File"></a>File</h2><p>功能:</p>
<ul>
<li><p> <code>New Instance</code>:创建新实例</p>
</li>
<li><p> <code>Open</code>:打开文件</p>
</li>
<li><p><code>Load file</code>:加载文件</p>
<p> 可以加载文件类型有:重新加载输入文件、附加二进制文件、IDS/IDT、PDB、DBG、TDS、FLIRT结构文件、解析C头文件;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124133434.png" style="zoom:25%;"></li>
<li><p><code>Produce file</code>:创建文件</p>
<p> 可以创建的文件的类型有:MAP、ASM、INC、LST、EXE、DIF、C、HTML、利用函数调用创建GDL、利用流程图创建GDL、C头文件、将数据库转储到IDC文件、将typeinfo转储到IDC文件中;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124132726.png" style="zoom:25%;"></li>
<li><p> <code>Script file</code>:加载用户自定义的IDC或IDA python脚本,实现用户定制功能,快捷键:<code>opt+F7</code>;</p>
</li>
<li><p> <code>Script command</code>:输入并执行以内置IDC语言或任何其他注册的extlang编写的脚本,快捷键:<code>shift+F2</code>;</p>
</li>
<li><p> <code>Save</code>:保存,快捷键:<code>ctrl+W</code>;</p>
</li>
<li><p> <code>Save as</code>:另存为;</p>
</li>
<li><p> <code>Take database snapshot</code>:拍摄数据库快照,保存IDA Pro当前工作信息,快捷键:<code>ctrl+shift+W</code>;</p>
</li>
<li><p> <code>cloes</code>:关闭项目;</p>
</li>
<li><p> <code>Quick start</code>:快速开始新的项目;</p>
</li>
</ul>
<p><img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124131522.png" style="zoom:25%;"><img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124132102.png"></p>
<h2 id="Edit"><a href="#Edit" class="headerlink" title="Edit"></a>Edit</h2><p>功能:</p>
<ul>
<li><p> <code>Copy</code>:复制,快捷键:<code>cmd+C</code>;</p>
</li>
<li><p> <code>Begin selection</code>:从光标处开始选择,快捷键:<code>opt+L</code>;</p>
</li>
<li><p> <code>select all</code>:选择全部;</p>
</li>
<li><p> <code>Select identifier</code>:选择光标所在的标识符;</p>
</li>
<li><p> <code>Export data</code>:将二进制数据导出为不同的格式数据,快捷键:<code>shift+E</code>;</p>
</li>
<li><p> <code>Code</code>:转换为code,快捷键:<code>C</code>;</p>
</li>
<li><p> <code>Data</code>:转换为data,快捷键:<code>D</code>;</p>
</li>
<li><p> <code>Struct var</code>:转换为结构体,快捷键:<code>opt+Q</code>;</p>
</li>
<li><p><code>Strings</code>:转换为字符串,快捷键:<code>A</code>,同时也可转换不同类型的字符串如C、DOS、Pascal、Wide pascal、Delphi、Unicode、Unicode pascal、Unicode wide pascal;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124141028.png" style="zoom:25%;"></li>
<li><p> <code>Array</code>:转换为数组,快捷键:<code>shift+Fn+*</code>;</p>
</li>
<li><p> <code>Undefine</code>:取消当前定义,主要用于函数,快捷键:<code>U</code>;</p>
</li>
<li><p> <code>Rename</code>:重命名,快捷键:<code>N</code>;</p>
</li>
<li><p><code>Operand type</code>:操作数类型</p>
<ul>
<li><p><code>Offset</code>:偏移</p>
<ul>
<li> <code>Offset(data segment)</code>:将当前指令/数据的立即数转换为当前数据段(DS)的偏移量,如果当前的DS值未知(或等于0xFFFF),则IDA会发出哔声警告,因此必须为当前字节定义DS寄存器值,快捷键:<code>O</code>;</li>
<li> <code>Offset(surrent segment)</code>:将当前指令/数据的立即数转换为当前段(CS)的偏移量,快捷键:<code>ctrl+O</code>;</li>
<li> <code>Offset by(any segment)</code>:将当前指令/数据的立即数转换为任何段的偏移量,IDA会要求选择偏移量的基础段,快捷键:<code>opt+R</code>;</li>
<li> <code>Offset(user-defined)</code>:将当前指令/数据的立即数操作数转换为复数偏移量表达式,快捷键:<code>ctrl+R</code>;</li>
<li> <code>Offset(struct)</code>:将范围选择中的所有指令立即数转换为通过结构及其可能的子联合的偏移路径,快捷键:<code>T</code></li>
</ul>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124173639.png" style="zoom:25%;"></li>
<li><p><code>Number</code>:数字</p>
<ul>
<li><p> <code>Number(default)</code>:将当前指令/数据的立即操作数类型转换为数字,快捷键:<code>shift+Fn+#</code>;</p>
</li>
<li><p> <code>Hexadecimal</code>:将当前指令/数据的立即操作数类型转换为十六进制数:快捷键:<code>Q</code>;</p>
</li>
<li><p> <code>Decimal</code>:将当前指令/数据的立即操作数类型转换为十进制数:快捷键:<code>H</code>;</p>
</li>
<li><p> <code>Octal</code>:将当前指令/数据的立即操作数类型转换为八进制数;</p>
</li>
<li><p> <code>Binary</code>:将当前指令/数据的立即操作数类型转换为二进制数:快捷键:<code>B</code>;</p>
</li>
<li><p> <code>Floating point</code>:将当前操作数类型转换为浮点数;</p>
</li>
<li><p><code>Toggle leading zeroes</code>:显示或隐藏当前操作数的前导零;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124175909.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p> <code>Character</code>:将当前指令/数据的立即操作数类型转换为字符,快捷键:<code>R</code>;</p>
</li>
<li><p> <code>Segment</code>:将当前指令/数据的立即操作数类型转换为段基,快捷键:<code>S</code>;</p>
</li>
<li><p> <code>Enmu member</code>:将当前指令/数据的立即操作数类型转换为枚举成员,快捷键:<code>M</code>;</p>
</li>
<li><p> <code>Stack variable</code>:将当前指令的立即操作数类型转换为堆栈变量的偏移量,即堆栈中的局部变量或函数参数,快捷键:<code>K</code>;</p>
</li>
<li><p> <code>Change sign</code>:更改当前操作数的符号,并非所有操作数都可以更改其符号;</p>
</li>
<li><p> <code>Bitwise negate</code>:将当前操作数按位取反,并非所有类型的操作数都可以取反,不能同时取反和更改操作数的符号,快捷键:<code>shift+Fn+~</code>;</p>
</li>
<li><p> <code>Manual</code>:自定义操作数,快捷键:<code>opt+F1</code>;</p>
</li>
<li><p> <code>Set operand type</code>:设置光标下的操作数的类型;</p>
</li>
</ul>
</li>
<li><p><code>Comments</code>:注释</p>
<ul>
<li><p> <code>Enter comment</code>:创建常规注释,快捷键:<code>shift+Fn+:</code>;</p>
</li>
<li><p> <code>Enter repeatable comment</code>:创建交叉注释,快捷键:<code>ctrl+;</code>;</p>
</li>
<li><p> <code>Enter anterior lines</code>:创建行前注释;</p>
</li>
<li><p><code>Enter anterior lines</code>:创建行后注释;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124183616.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Segment</code>:段操作</p>
<ul>
<li><p> <code>Create segment</code>:创建新段;</p>
</li>
<li><p> <code>Edit segment</code>:更改除段基础以外的所有段属性,快捷键:<code>opt+S</code>;</p>
</li>
<li><p> <code>Delete segment</code>:删除段;</p>
</li>
<li><p> <code>Move current segment</code>:将段移动到另一个地址;</p>
</li>
<li><p> <code>Rebase program</code>:将整个程序按存储器中指定的字节数移动;</p>
</li>
<li><p> <code>Change segment translation</code>:更改段翻译,段翻译是在解析对当前段指令的引用时要使用的其他段序列,只有代码引用受段翻译的影响,通过修改数据段寄存器,可以将数据引用重定向到所需的地址;</p>
</li>
<li><p> <code>Change segment register value</code>:创建或更改段寄存器值,快捷键:<code>opt+G</code>;</p>
</li>
<li><p><code>Set default segment register value</code>:设置默认段寄存器值;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124185007.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Structs</code>:结构体操作</p>
<ul>
<li><p> <code>Add struct type</code>:定义新的结构体或联合;</p>
</li>
<li><p> <code>Copy struct type</code>:复制当前结构体;</p>
</li>
<li><p> <code>Edit struct type</code>:编辑结构体,包括将当前结构体定义移动到结构体窗口中的另一个位置、更改结构对齐方式;</p>
</li>
<li><p> <code>Delete struct type</code>:删除当前结构体,快捷键:<code>Fn+删除按钮</code>;</p>
</li>
<li><p> <code>Expand struct type</code>:通过插入未定义字节来扩展当前结构体;</p>
</li>
<li><p> <code>Shrink struct type</code>:删除光标位置处的未定义字节来缩小当前结构体;</p>
</li>
<li><p> <code>Struct var</code>:声明结构体,快捷键:<code>opt+Q</code>;</p>
</li>
<li><p> <code>Force zero offset filed</code>:强制零偏移,即使结构体成员的偏移量等于零,也会强制IDA显示完整的结构体成员名称,快捷键:<code>ctrl+Z</code>;</p>
</li>
<li><p> <code>Select union member</code>:选取联合成员,从当前光标位置显示对联合的引用,快捷键:<code>opt+Y</code>;</p>
</li>
<li><p> <code>Create struct from selection</code>:根据已经定义的结构体定义新的结构体;</p>
</li>
<li><p><code>Copy field into pointers</code>:扫描当前的结构体,并重置偏移量表达式所指向的位置;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124191248.png" style="zoom:25%;">
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124192737.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Functions</code>:函数操作</p>
<ul>
<li><p> <code>Create function</code>:创建函数;</p>
</li>
<li><p> <code>Edit function</code>:编辑函数,快捷键:<code>opt+P</code>;</p>
</li>
<li><p> <code>Append function tail</code>:将程序的任意范围附加到函数定义中;</p>
</li>
<li><p> <code>Remove function tail</code>:从函数定义中删除光标处的函数尾部;</p>
</li>
<li><p> <code>Delete function</code>:删除函数;</p>
</li>
<li><p> <code>Set function end</code>:更改当前或先前的函数范围,将其结尾设置在光标处,快捷键:<code>E</code>;</p>
</li>
<li><p> <code>Stack variables</code>:打开当前函数的堆栈变量窗口,快捷键:<code>ctrl+K</code>;</p>
</li>
<li><p> <code>Change stack pointer</code>:指定当前指令如何修改堆栈指针(SP),快捷键:<code>opt+K</code>;</p>
</li>
<li><p> <code>Rename register</code>:将常规寄存器重命名为一些有意义的名称,快捷键:<code>V</code>;</p>
</li>
<li><p><code>Set type</code>:指定当前函数的命名,快捷键:<code>Y</code>;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124194952.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Patch program</code>:修补程序</p>
<ul>
<li><p> <code>Change byte</code>:通过修改字节来修改程序;</p>
</li>
<li><p> <code>Change word</code>:通过修改字来修改程序;</p>
</li>
<li><p> <code>Assemble</code>:将指令汇编;</p>
</li>
<li><p> <code>Pached bytes</code>:查看修改的字节,快捷键:<code>ctrl+opt+P</code>;</p>
</li>
<li><p><code>Apply patches to input file</code>:将之前修补的字节应用回输入文件;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124231805.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Other</code></p>
<ul>
<li><p> <code>Create alignment directive</code>:创建对齐指令,对齐指令将替换链接器插入的许多无用字节,用于将代码和数据对齐到段落边界或等于2的幂的任何其他地址,快捷键:<code>L</code>;</p>
</li>
<li><p> <code>Manual instruction</code>:指定程序中指令或数据的表示形式,快捷键:<code>opt+F2</code>;</p>
</li>
<li><p> <code>Color instruction</code>:指定当前指令或数据项的背景颜色;</p>
</li>
<li><p><code>Toggle border</code>:隐藏/显示指令和数据之间的边界;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124224641.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p> <code>Plugins</code>:插件模块是用C++编写的模块,可为IDA提供其他功能;</p>
</li>
<li><p> <code>Emoji & Symbols</code>:字符检视器,用于字符和代码之间的转换,快捷键:<code>ctrl+cmd+Space</code>;</p>
</li>
</ul>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124134855.png" style="zoom:25%;">
<h2 id="Jump"><a href="#Jump" class="headerlink" title="Jump"></a>Jump</h2><p>功能:</p>
<ul>
<li><p> <code>Jump to operand</code>:即<code>name register</code>,重命名寄存器;</p>
</li>
<li><p> <code>Jump in a new window</code>:打开一个与现在窗口类型相同的新窗口;</p>
</li>
<li><p> <code>Jump to previous position</code>:跳转到前一个位置;</p>
</li>
<li><p> <code>Jump to next position</code>:跳转到后一个位置;</p>
</li>
<li><p> <code>Empty navigation stack</code>:清除跳转堆栈;</p>
</li>
<li><p> <code>Jump to pseudocode</code>:在反汇编视图和伪代码视图之间切换,快捷键:<code>Tab</code>;</p>
</li>
<li><p> <code>Jump to address</code>:跳转到程序中指定的地址,快捷键:<code>G</code>;</p>
</li>
<li><p> <code>Jump by name</code>:跳转到指定命名位置处,快捷键:<code>ctrl+L</code>;</p>
</li>
<li><p> <code>Jump to function</code>:跳转到选定的函数处,快捷键:<code>ctrl+P</code>;</p>
</li>
<li><p> <code>Jump to segment</code>:跳转到指定段的段头,快捷键:<code>ctrl+S</code>;</p>
</li>
<li><p> <code>Jump to segment register</code>:跳转到指定寄存器,快捷键:<code>ctrl+G</code>;</p>
</li>
<li><p> <code>Jump to problem</code>:跳转到有问题的位置,快捷键:<code>ctrl+Q</code>;</p>
</li>
<li><p> <code>List cross references to</code>:列出光标位置到达的交叉引用,快捷键:<code>ctrl+X</code>;</p>
</li>
<li><p> <code>List cross references from</code>:列出到光标位置的交叉引用,快捷键:<code>ctrl+J</code>;</p>
</li>
<li><p> <code>Jump to xref to operand</code>:显示当前操作数的交叉引用列表,方便跳转,快捷键:<code>X</code>;</p>
</li>
<li><p> <code>Jump to entry point</code>:显示入口点列表,方便跳到所选入口点,快捷键:<code>ctrl+E</code>;</p>
</li>
<li><p> <code>Jump to file offset</code>:指定文件偏移相对应的地址并跳转;</p>
</li>
<li><p> <code>Marked position</code>,添加标签,快捷键:<code>opt+M</code>;</p>
</li>
<li><p> <code>Jump to marked position</code>:选择一个标签并跳转,快捷键:<code>ctrl+M</code>;</p>
</li>
<li><p><code>Clear mark</code>:删除标记位置;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210125092623.png" style="zoom:25%;"></li>
</ul>
<h2 id="Search"><a href="#Search" class="headerlink" title="Search"></a>Search</h2><p>功能:</p>
<ul>
<li><p> <code>next code</code>:查找下一条指令,快捷键:<code>opt+C</code>;</p>
</li>
<li><p> <code>next data</code>:查找下一条数据,快捷键:<code>ctrl+D</code>;</p>
</li>
<li><p> <code>next explored</code>:查找下一个定义的字节序列,快捷键:<code>ctrl+A</code>;</p>
</li>
<li><p> <code>next unexplored</code>:查找下一个未定义字节序列,快捷键:<code>ctrl+U</code>;</p>
</li>
<li><p> <code>immediate value</code>:搜索立即数,快捷键:<code>opt+I</code>;</p>
</li>
<li><p> <code>next immediate value</code>:查找下一个立即数,快捷键:<code>ctrl+I</code>;</p>
</li>
<li><p> <code>text</code>:搜索字符串,快捷键:<code>opt+T</code>;</p>
</li>
<li><p> <code>next text</code>:查找下一个字符串,快捷键:<code>ctrl+T</code>;</p>
</li>
<li><p> <code>sequence of bytes</code>:搜索字节序列,快捷键:<code>opt+B</code>;</p>
</li>
<li><p> <code>next sequence of bytes</code>:查找下一个字节序列,快捷键:<code>ctrl+B</code>;</p>
</li>
<li><p> <code>not fuction</code>:搜索不属于任何函数的第一个字节;</p>
</li>
<li><p> <code>next void</code>:搜索下一个无效的位置,快捷键:<code>ctrl+V</code>;</p>
</li>
<li><p> <code>error operand</code>:搜索错误操作数,快捷键:<code>ctrl+F</code>;</p>
</li>
<li><p> <code>all void operands</code>:搜索所有的无效操作数,并显示它们的列表;</p>
</li>
<li><p> <code>all error operands</code>:搜索包含任何出现错误的操作数,并显示它们的列表;</p>
</li>
<li><p><code>search direction</code>:切换搜索方向;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210125174031.png" style="zoom:25%;"></li>
</ul>
<h2 id="View"><a href="#View" class="headerlink" title="View"></a>View</h2><p>功能:</p>
<ul>
<li><p><code>Open subviews</code>:打开子窗口;</p>
<ul>
<li><p> <code>Quick view</code>:查看窗口列表,快捷键:<code>ctrl+1</code>;</p>
</li>
<li><p> <code>Functions</code>:打开函数窗口;</p>
</li>
<li><p> <code>Disassembly</code>:打开反汇编窗口;</p>
</li>
<li><p> <code>Hex dump</code>:打开十六进制窗口;</p>
</li>
<li><p> <code>Structures</code>:打开结构体窗口,快捷键:<code>shift+F9</code>;</p>
</li>
<li><p> <code>Enumerations</code>:打开枚举窗口,快捷键:<code>shift+F10</code>;</p>
</li>
<li><p> <code>Export</code>:打开导出窗口;</p>
</li>
<li><p> <code>Import</code>:打开导入窗口;</p>
</li>
<li><p> <code>Proximity browser</code>:打开函数级别的窗体结构信息,查看邻近函数;</p>
</li>
<li><p> <code>Generate pseudocode</code>:生成反汇编窗口中的函数对应的伪代码,快捷键:<code>F5</code>;</p>
</li>
<li><p> <code>Names</code>:打开名称窗口,显示函数和参数的命名列表,快捷键:<code>shift+F4</code>;</p>
</li>
<li><p> <code>Strings</code>:打开字符串窗口,显示出现的字符串列表,快捷键:<code>shift+F12</code>;</p>
</li>
<li><p> <code>Segments</code>:打开段窗口,显示所有段列表,快捷键:<code>shift+F7</code>;</p>
</li>
<li><p> <code>Segment. registers</code>:打开寄存器窗口,显示所有段的寄存器信息,快捷键:<code>shift+F8</code>;</p>
</li>
<li><p> <code>Selectors</code>:打开选择器窗口;</p>
</li>
<li><p> <code>Signatures</code>:打开签名窗口,包括签名文件、签名状态、签名函数、签名说明,快捷键:<code>shift+F5</code>;</p>
</li>
<li><p> <code>Type libraries</code>:打开类库窗口,用于加载/卸载标准类库,快捷键:<code>shift+F11</code>;</p>
</li>
<li><p> <code>Local Types</code>:打开本地类库窗口,用于修改/删除现有类库,添加新类库;</p>
</li>
<li><p> <code>Cross references</code>:打开交叉引用窗口,显示对当前位置的所有引用;</p>
</li>
<li><p> <code>Function calls</code>:打开函数调用窗口,显示调用当前函数的所有函数;</p>
</li>
<li><p> <code>Notepad</code>:打开记事本窗口,获取有关当前数据库的常规注释;</p>
</li>
<li><p> <code>Problems</code>:打开问题窗口,查看在拆卸程序期间遇到的所有问题;</p>
</li>
<li><p><code>Patched bytes</code>:打开修改字节窗口,显示修改的字节列表,快捷键:<code>ctrl+opt+P</code>;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126103158.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Graphs</code>:绘制各种图形;</p>
<ul>
<li><p> <code>Flow chat</code>:绘制当前函数的流程图,彩色箭头表示条件跳转指令的结果,快捷键:<code>F12</code>;</p>
</li>
<li><p> <code>Print flow chat labels</code>:函数流程图中显示标签;</p>
</li>
<li><p> <code>Function calls</code>:绘制程序中所有的函数调用流程图,快捷键:<code>ctrl+F12</code>;</p>
</li>
<li><p> <code>Xrefs to</code>:绘制 <strong>到</strong> 程序的当前地址/选定地址范围的参照图;</p>
</li>
<li><p> <code>Xrefs from</code>:绘制 <strong>来自</strong> 程序的当前地址/选定地址范围的参照图;</p>
</li>
<li><p><code>User xrefs chart</code>:绘制用户自定义的外部参照图,该图 <strong>来自/至</strong> 程序的当前地址/选定地址范围;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126111657.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Toolbars</code>:工具栏</p>
<ul>
<li><p><code>Basic mode</code>:切换为基本UI模式;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126135153.png" style="zoom:25%;"></li>
<li><p><code>Advanced mode</code>:切换为高级UI模式;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126135053.png" style="zoom:25%;"></li>
<li><p><code>Navigator</code>:用于查看被加载文件地址空间的线性视图,不同位置代表功能如下,可根据需要快速跳转到相关代码处;</p>
<ul>
<li> <code>Library function</code>:库函数</li>
<li> <code>Regular function</code>:规则函数</li>
<li> <code>Instruction</code>:指令</li>
<li> <code>Data</code>:数据</li>
<li> <code>Unexplored</code>:未查询区域</li>
<li> <code>External symbol</code>:外部符号</li>
</ul>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210123220406.png" style="zoom:25%;"></li>
<li><p><code>Address details</code>:显示地址详情;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126141717.png" style="zoom:25%;"></li>
<li><p><code>File</code>:打开和保存文件;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126141927.png" style="zoom:40%;"></li>
<li><p><code>Jump</code>:跳转命令;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142013.png" style="zoom:40%;"></li>
<li><p><code>search</code>:搜索;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142206.png" style="zoom:40%;"></li>
<li><p><code>Hide/Unhide</code>:切换隐藏、删除;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142343.png" style="zoom:40%;"></li>
<li><p><code>Analysis</code>:分析,打开问题窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142428.png" style="zoom:40%;"></li>
<li><p><code>Views</code>:打开反汇编窗口、十六进制窗口、Debug窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142624.png" style="zoom:40%;"></li>
<li><p><code>Graph view</code>:切换图形视图/文本视图,切换到函数级别的窗体结构信息,设置图形大小、颜色及其它信息,打印图形;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126142833.png" style="zoom:40%;"></li>
<li><p><code>Lists</code>:显示导入、导出、名称、函数、字符串窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126143221.png" style="zoom:40%;"></li>
<li><p><code>Signatures/Types</code>:显示签名窗口、类窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126143521.png" style="zoom:40%;"></li>
<li><p><code>Structures/Enumerations</code>:显示字符串窗口、枚举窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126143855.png" style="zoom:40%;"></li>
<li><p><code>Cross references</code>:显示交叉引用窗口、函数调用窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126144032.png" style="zoom:40%;"></li>
<li><p><code>Segments</code>:显示段窗口、段寄存器窗口、选择器窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126144118.png" style="zoom:40%;"></li>
<li><p><code>Edit</code>:转换为指令,转换为数据,声明结构体变量,转换为字符串,转换为数组,重命名当前位置,转换为未定义类型;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126144231.png" style="zoom:40%;"></li>
<li><p><code>Operand type</code>:数据段操作数偏移,操作数转换为数字,操作数转换为字符串,操作数转换为段基,操作数转换为符号常量,操作数转换为堆栈变量的偏移量,更改当前操作数的符号,对当前操作数执行位求反,手动输入当前操作数;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126145009.png" style="zoom:40%;"></li>
<li><p><code>Utilities</code>:打开计算器,打开记事本对数据库做注释,执行脚本命令,执行脚本文件;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126150035.png" style="zoom:40%;"></li>
<li><p><code>Functions</code>:创建新函数或编辑函数属性,打开当前函数的堆栈变量窗口,指定当前函数的命名;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126150401.png" style="zoom:40%;"></li>
<li><p><code>Enumerations</code>:定义新的枚举类型,编辑选中的枚举类型,删除选中的枚举类型,为枚举类型添加符号常量,编辑符号常量,删除符号常量;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126151104.png" style="zoom:40%;"></li>
<li><p><code>Structures</code>:声明新的结构体/枚举类型,复制选中的结构体/枚举类型,编辑结构体类型,删除结构体/枚举类型,向结构体中插入未定义的字符序列,从结构体中删除未定义的字符串;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126151504.png" style="zoom:40%;"></li>
<li><p><code>Comments</code>:创建常规注释,创建交互注释,创建行前注释,创建行后注释;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126151810.png" style="zoom:40%;"></li>
<li><p><code>Graphs</code>:绘制当前函数流程图,绘制函数调用流程图,绘制<strong>到</strong>程序的当前地址/选定地址范围的参照图,绘制<strong>来自</strong>程序的当前地址/选定地址范围的参照图,绘制用户自定义的外部参照图、该图<strong>来自/至</strong>程序的当前地址/选定地址范围;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126164648.png" style="zoom:40%;">
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126113700.png" style="zoom:25%;"></li>
</ul>
</li>
<li><p><code>Calculator</code>:简单的计算器,输入常量C样式的表达式,语法与IDC表达式的语法相同,结果以十六进制、十进制、八进制、二进制和字符,快捷键:<code>shift+Fn+?</code>;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126114405.png" style="zoom:25%;"></li>
<li><p> <code>Full screen</code>:切换独立窗口显示,快捷键:<code>shift+cmd+F</code>;</p>
</li>
<li><p> <code>Graph Overview</code>:查看概览图;</p>
</li>
<li><p> <code>Recent scripts</code>:查看添加的脚本,快捷键:<code>opt+F9</code>;</p>
</li>
<li><p> <code>Database snapshot manager</code>:显示数据库快照管理器,可以还原、重命名或删除快照;</p>
</li>
<li><p> <code>Print segment register</code>:显示段寄存器;</p>
</li>
<li><p> <code>Print internal flags</code>:显示内部标志位;</p>
</li>
<li><p> <code>Hide</code>:隐藏反汇编代码,可以是函数、段、自定义隐藏范围,快捷键:<code>ctrl + -</code>;</p>
</li>
<li><p> <code>Unhide</code>:显示隐藏的反汇编代码,快捷键:<code>ctrl + +</code>;</p>
</li>
<li><p> <code>Hide all</code>:隐藏所有可隐藏的反汇编代码;</p>
</li>
<li><p> <code>Unhide all</code>:显示所有隐藏的反汇编代码;</p>
</li>
<li><p> <code>Delete hidden range</code>:删除隐藏的自定义反汇编范围;</p>
</li>
<li><p> <code>Setup hidden items</code>:您切换隐藏内容的显示;</p>
</li>
<li><p><code>Enter Full Screen</code>:进入全屏;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126102730.png" style="zoom:25%;"></li>
</ul>
<h2 id="Debugger"><a href="#Debugger" class="headerlink" title="Debugger"></a>Debugger</h2><p>动态调试不做介绍;</p>
<h2 id="options"><a href="#options" class="headerlink" title="options"></a>options</h2><p>功能:</p>
<ul>
<li><p> <code>General</code>:打开常规设置,包括反汇编、分析、交叉引用、字符串、图形视图等;</p>
</li>
<li><p> <code>Colors</code>:颜色设置;</p>
</li>
<li><p> <code>Font</code>:字体设置;</p>
</li>
<li><p> <code>Shortcuts</code>:快捷键设置;</p>
</li>
<li><p> <code>Show command palette</code>:展示命令面板,快捷键:<code>ctrl+shift+P</code>;</p>
</li>
<li><p> <code>Repeat last palette command</code>:<code>重复上一个面板的命令</code>,快捷键:<code>ctrl+shift+R</code>;</p>
</li>
<li><p> <code>Assembler directives</code>:设置汇编程序指令;</p>
</li>
<li><p> <code>Name representation</code>:设置名称表示;</p>
</li>
<li><p> <code>Demangled names</code>:设置不符合标准的名称;</p>
</li>
<li><p> <code>Compiler</code>:设置编译器;</p>
</li>
<li><p> <code>String literals</code>:设置字符串编码,快捷键:<code>opt+A</code>;</p>
</li>
<li><p> <code>Setup data type</code>设置数据类型,快捷键:<code>opt+D</code>;</p>
</li>
<li><p><code>Source paths</code>:设置源路径;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126164911.png" style="zoom:50%;"></li>
</ul>
<h2 id="Window"><a href="#Window" class="headerlink" title="Window"></a>Window</h2><p>功能</p>
<ul>
<li><p> <code>Load desktop</code>:迅速打开之前保存的桌面布局;</p>
</li>
<li><p> <code>Save desktop</code>:保存当前的桌面布局;</p>
</li>
<li><p> <code>Delete desktop</code>:删除之前保存的桌面布局;</p>
</li>
<li><p> <code>Reset desktop</code>:重置当前桌面布局;</p>
</li>
<li><p> <code>Reset hidden messages</code>:通过选中“不再显示此消息”复选框来重置用户隐藏的所有问题和消息的状态;</p>
</li>
<li><p> <code>Windows list</code>:列出当前打开的所有窗口,可以通过快捷键:<code>opt+数字</code> 进行选择切换;</p>
</li>
<li><p> <code>Next window</code>:显示下一个打开的窗口,快捷键:<code>F6</code>;</p>
</li>
<li><p> <code>Previous window</code>:显示上一个打开的窗口,快捷键:<code>shift+F6</code>;</p>
</li>
<li><p> <code>Close window</code>:关闭当前打开的窗口,快捷键:<code>opt+F3</code>;</p>
</li>
<li><p><code>Foucs command line</code>:将光标放置在Output window中的命令行输入上,快捷键:<code>opt+.</code>;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210126100425.png" style="zoom:25%;"></li>
</ul>
<h1 id="窗口"><a href="#窗口" class="headerlink" title="窗口"></a>窗口</h1><p>IDA默认会显示8个窗口,分别为函数窗口、反汇编窗口、十六进制窗口、结构体窗口、枚举窗口、导入窗口、导出窗口、输出窗口;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118171441.png" style="zoom:25%;">
<h2 id="函数窗口"><a href="#函数窗口" class="headerlink" title="函数窗口"></a>函数窗口</h2><p>Functions window,用于列举IDA在数据库中识别的每一个函数,包括函数名、所在的段、起始地址、长度等;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124125831.png" style="zoom:25%;">
<p>函数过滤器:<code>右键→Modify filters</code>/<code>ctrl+shift+F</code>,在弹出的筛选框中,输入信息如<code>main</code>,点击添加按钮<code>Add</code>,添加一条任何一列为main的函数信息筛选项;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124130532.png" style="zoom:25%;">
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210124130635.png" style="zoom:25%;">
<h2 id="反汇编窗口"><a href="#反汇编窗口" class="headerlink" title="反汇编窗口"></a>反汇编窗口</h2><p>IDA View,反汇编窗口是IDA的最主要数据窗口,可以显示IDA对目标程序的反汇编结果,同时提供文本视图和图形视图,针对不能识别的代码段和数据段,会显示数据字节内容,并使用不同的颜色进行标注。</p>
<p>反汇编窗口有两种形式:分别是<strong>图形视图</strong>(默认)和<strong>文本视图</strong>;</p>
<ul>
<li><p>在图形视图中,IDA以程序流程图的形式显示代码,将函数分解成许多基本块,从而生动显示该函数由一个块到另一个块的控制流程;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118173122.png" style="zoom:20%;"></li>
<li><p>文本视图呈现程序的完整反汇编代码清单,只有通过文本视图才能查看一个二进制文件的数据部分;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118175956.png" style="zoom:25%;"></li>
<li><p> 选择<code>View→Open subviews→Disassembly</code>选项,打开反汇编子窗口,就可以用多个子窗口来分析同一段程序,而不必来回翻页査看代码了。其他常用窗口,例如 “Functions” 和 “Proximity browser”,也可以使用这个菜单打开。</p>
</li>
<li><p>切换方式</p>
<ul>
<li><p><code>右键→Graph view</code>/<code>右键→Text view</code>;</p>
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/20210118172927.png" style="zoom:25%;">
<img src="https://raw.githubusercontent.com/Leeyuxun/pic-storage/main/img/image-20210118180516425.png" style="zoom:25%;"></li>
<li><p> 快捷键:<code>Space</code>;</p>
</li>
<li><p> <code>ctrl键+鼠标滚轮</code>调整图形的大小;</p>