当前位置:首页 » 编程软件 » f18编译器

f18编译器

发布时间: 2022-04-22 07:26:42

① 在线求 迅捷PDF编辑器注册码 机器码:73D870CD20F41737EB358A82 在线求大神破解,求注册码

试试:

33646EE6A34F18A0FC7A6039

希望能用。

② PIC单片机,MCC18编译器中只有18系列的linker script 文件,现在我用的是12f683这一款,

mcc18只支持PIC18系列单片机。MCC没有支持PIC12、PIC16系列单片机的。你要下载的是PICC for PIC12/16 编译器。

③ 求几款有地图编辑器的即时战略游戏或射击游戏!

射击游戏我建议玩《三角洲特种部队》、《三角洲特种部队2》、《三角洲特种部队3:大地勇士》、《三角洲特种部队3: 近战突击队》、《三角洲特种部队4:黑鹰坠落》、《三角洲特种部队4:战队之刃》、《三角洲特种部队5:复刻版》、《三角洲特种部队6》。

④ 金手指编辑器

在这里转发几个NDS游戏王的金手指码(希望有高手能补全)

Yu-Gi-Oh! Nightmare Troubadour <游戏王 梦魇吟游诗人> JCa]sjU(
Game ID: AYGE-41dae76d {g>6D^5O
<ff$(6<^@
Infinite LP (无限LP) u "LF/*,
0227ec6c 0000270f u Kn2;
02281198 0000270f &L3N#Vx
p,W3FN_u
Instant Win (立即获胜) | hQ E*
1227f438 00000000 =Ha N^4
1228119c 00000000 pZ>a%H7a
k13]_{*M
Max/Infinite KCP (KCP99999) z.p%2QO44
02095ce4 0001869f p$ TeV:|.
.S;|
Have All Cards (全卡) XE{k ')
12095dee 00001313 &.7 X)!]
a209620e 00001313 >GHr7+xb
d5000000 13131313 <MbD wEH$
c0000000 00000107 {H'2fnVJ
d6000000 02095df0 `LRK5t6s^
d2000000 00000000 z -;1 #
l6KQP\Nk
---------------------------------------------------------------------------------------------------------- ?`lL~u>'
4MP R1)`
Yu-Gi-Oh! Spirit Caller <游戏王GX 灵魂召唤> .uSimJc$
Game ID: AYXE-9a4dc3e2 O}8'@I6
wFu;Fx"b
This Code Must Be On FS 3u
03808074 ebafd7e2 8#gB$eJlf]
Y+UR R%m
Infinite DP 5/t?e/ *M
021058cc 000f423f In" 9DCA[
l{QBm
Infinite HP a>k3/4>s
122cf08c 00001f40 Zj1Z<O
122d1a3c 00001f40 (t95 I/)
;Wv_))/p
Quick School Level Up [YoSdv?w_a
021058c0 0000ffff < :bK'sD;\
R9X<o\i;
1 Hit Defeats Enemy y<W|!kF d
822cf8f4 00000001 y|c@.'G e
122cf8f4 00000001 R*:F(
822d1a40 00000001 8y)~,b
122d1a40 00000001 p$+gYW
4ar2gU0L)
Instantly Win Duel o4dOH"D]
122cf8f4 00000000 uOwJN"J1
122d1a40 00000000 )1gG=VHn
GsZ0EteIS
----------------------------------------------------------------------------------------------------------- M+2_KJ\h
T:JnKs-
Yu-Gi-Oh! World Championship 2007 uO[X:| ]
Game ID: AY7E-12AB4257 a yzX :$a
[%:[,02a
Max / Infinite DP eM4*Vxw0
02110360 05f5e0ff >54m<nxG
+Pi>NL AU
Press START to Restore HP $||a@=9Q
9210ff08 00000008 ;lW)}bl
022ed570 0000270f E^ '3/V
022f06b0 0000270f BtmcgoV4l
d2000000 00000000 7y VzLqE '
) "1KDr
Press SELECT for Instant Win bnmhf
9210ff08 00000004 4K1(99:|%
022ed574 00000000 i70 VN%*K
022f0f18 00000000 TezuQ8f?:w
d2000000 00000000 \Eg%/="yD
GTd4^.C3`

在线等级

⑤ 求红警2单位【模型】编辑器

类似的回答
http://..com/question/29210899.html

单位编辑器下载地址
http://bd.52pk.com/soft/soft_1646.html

建模3DMAX下载地址
http://..com/question/85728863.html

可以参考的帖子
http://tieba..com/f?kz=84314666
http://tieba..com/f?kz=88420370
http://tieba..com/f?kz=84260593
http://tieba..com/f?kz=83923120
http://tieba..com/f?kz=81217976
http://tieba..com/f?kz=66759122

⑥ 突袭之秘密行动地图编辑器怎么用

突袭2秘密行动2的地图编辑器就是可以制作地图和战役的那种要中文版的 只要你安装了突袭2秘密行动就已经安装地图编辑器,它是游戏自带的,一般在突袭2秘密行动\Run\APRM WW II_Edit的文件夹里,名称叫Mapedidor的图标就是启动文件。

⑦ 谁可以告诉我md5加密原理

2004年,已经被山东大学的王小云教授破解了。

以下是她在国际密码学会上发表的破解原理论文。
Collisions for Hash Functions
Collisions for Hash Functions
MD4, MD5, HAVAL-128 and RIPEMD
Xiaoyun Wang1, Dengguo Feng2, Xuejia Lai3, Hongbo Yu1
The School of Mathematics and System Science, Shandong University, Jinan250100, China1
Institute of Software, Chinese Academy of Sciences, Beijing100080, China2
Dept. of Computer Science and Engineering, Shanghai Jiaotong University, Shanghai, China3
[email protected]
revised on August 17, 2004

1 Collisions for MD5
MD5 is the hash function designed by Ron Rivest [9] as a strengthened version of MD4 [8]. In 1993 Bert den
Boer and Antoon Bosselaers [1] found pseudo-collision for MD5 which is made of the same message with two
different sets of initial value. H. Dobbertin[3] found a free-start collision which consists of two different 512-bit
messages with a chosen initial value 0 V I .
ED BA x C B F x C B AC x A V I 763 4 0 D , 97 62 5 0 , 341042 3 0x B , 2375 12 0 : 0 0 0 0 0
Our attack can find many real collisions which are composed of two 1024-bit messages with the original
initial value 0 IV of MD5:
10325476 0 , 98 0 , 89 0 67452301 0 : 0 0 0 0 0 x D badcfe x C xefcdab ,B x A IV
) 0 , 2 ,..., 2 ,..., 2 , 0 , 0 , 0 , 0 ( , 31 15 31
1 1 C C M M
) 0 , 2 ,..., 2 ,..., 2 , 0 , 0 , 0 , 0 ( , 31 15 31
2 2 C C N N i i
(non-zeros at position 4,11 and 14)
such that
) , ( 5 ) , ( 5 i i N M MD N M MD .
On IBM P690, it takes about one hour to find such M and M , after that, it takes only 15 seconds to 5
minutes to find i N and i N , so that ) , ( i N M and ) , ( i N M will proce the same hash same value. Moreover,
our attack works for any given initial value.
The following are two pairs of 1024-bit messages procing collisions, the two examples have the same 1-st
half 512 bits.
M
2dd31d1 c4eee6c5 69a3d69 5cf9af98 87b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a417125 e8255108 9fc9cdf7 f2bd1dd9 5b3c3780
X1
N1
d11d0b96 9c7b41dc f497d8e4 d555655a c79a7335 cfdebf0 66f12930 8fb109d1
797f2775 eb5cd530 baade822 5c15cc79 ddcb74ed 6dd3c55f d80a9bb1 e3a7cc35
M0
2dd31d1 c4eee6c5 69a3d69 5cf9af98 7b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a41f125 e8255108 9fc9cdf7 72bd1dd9 5b3c3780
X1
N1
d11d0b96 9c7b41dc f497d8e4 d555655a 479a7335 cfdebf0 66f12930 8fb109d1
797f2775 eb5cd530 baade822 5c154c79 ddcb74ed 6dd3c55f 580a9bb1 e3a7cc35
H 9603161f f41fc7ef 9f65ffbc a30f9dbf
M
2dd31d1 c4eee6c5 69a3d69 5cf9af98 87b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a417125 e8255108 9fc9cdf7 f2bd1dd9 5b3c3780
X2
N2
313e82d8 5b8f3456 d4ac6dae c619c936 b4e253dd fd03da87 6633902 a0cd48d2
42339fe9 e87e570f 70b654ce 1e0da880 bc2198c6 9383a8b6 2b65f996 702af76f
M0
2dd31d1 c4eee6c5 69a3d69 5cf9af98 7b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a41f125 e8255108 9fc9cdf7 72bd1dd9 5b3c3780

313e82d8 5b8f3456 d4ac6dae c619c936 34e253dd fd03da87 6633902 a0cd48d2
42339fe9 e87e570f 70b654ce 1e0d2880 bc2198c6 9383a8b6 ab65f996 702af76f
H 8d5e7019 6324c015 715d6b58 61804e08
Table 1 Two pairs of collisions for MD5
2 Collisions for HAVAL-128
HAVAL is proposed in [10]. HAVAL is a hashing algorithm that can compress messages of any length in 3,4
or 5 passes and proce a fingerprint of length 128, 160, 192 or 224 bits.
Attack on a reced version for HAVAL was given by P. R. Kasselman and W T Penzhorn [7], which
consists of last rounds for HAVAL-128. We break the full HAVAL-128 with only about the 26 HAVAL
computations. Here we give two examples of collisions of HAVAL-128, where
) 0 ,..., 0 , 2 ,.... 2 , 0 , 0 , 0 , 2 ( , 8 12 1 i i i C C M M
with non-zeros at position 0,11,18, and 31 ,... 2 , 1 , 0 i , such that ) ( ) ( M HAVAL M HAVAL .
M1
6377448b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 5630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299b2 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f4307f87
M1
6377488b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 d630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299ba 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f4307f87
H 95b5621c ca62817a a48dacd8 6d2b54bf
M2
6377448b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 5630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299b2 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f5b16963

6377488b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 d630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299ba 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f5b16963
H b0e99492 d64eb647 5149ef30 4293733c
Table 2 Two pairs of collision, where i=11 and these two examples differ only at the last word
3 Collisions for MD4
MD4 is designed by R. L. Rivest[8] . Attack of H. Dobbertin in Eurocrypto'96[2] can find collision with
probability 1/222. Our attack can find collision with hand calculation, such that
) 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 2 , 2 , 0 ( , 16 31 28 31 C C M M
and ) ( 4 ) ( 4 M MD M MD .
M1
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9
M1
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9
H 5f5c1a0d 71b36046 1b5435da 9b0d807a
M2
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 f713c240 a7b8cf69

4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 f713c240 a7b8cf69
H e0f76122 c429c56c ebb5e256 b809793
Table 3 Two pairs of collisions for MD4
4 Collisions for RIPEMD
RIPEMD was developed for the RIPE project (RACE Integrrity Primitives Evalustion, 1988-1992). In
1995, H. Dobbertin proved that the reced version RIPEMD with two rounds is not collision-free[4]. We show
that the full RIPEMD also isnOt collision-free. The following are two pairs of collisions for RIPEMD:
) 2 , 0 , 0 , 0 , 0 , 2 2 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 , 0 ( , 31 31 18 20 ' C C M M i i
M1
579faf8e 9ecf579 574a6aba 78413511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 47bc6d7d 9abdd1b1 a45d2015 817104ff 264758a8 61064ea5
M1
579faf8e 9ecf579 574a6aba 78513511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 c7c06d7d 9abdd1b1 a45d2015 817104ff 264758a8 e1064ea5
H 1fab152 1654a31b 7a33776a 9e968ba7
M2
579faf8e 9ecf579 574a6aba 78413511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 47bc6d7d 9abdd1b1 a45d2015 a0a504ff b18d58a8 e70c66b6

579faf8e 9ecf579 574a6aba 78513511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 c7c06d7d 9abdd1b1 a45d2015 a0a504ff b18d58a8 670c66b6
H 1f2c159f 569b31a6 dfcaa51a 25665d24
Table 4 The collisions for RIPEMD
5 Remark
Besides the above hash functions we break, there are some other hash functions not having ideal security. For
example, collision of SHA-0 [6] can be found with about 240 computations of SHA-0 algorithms, and a collision
for HAVAL-160 can be found with probability 1/232.
Note that the messages and all other values in this paper are composed of 32-bit words, in each 32-bit word
the most left byte is the most significant byte.
1 B. den Boer, Antoon Bosselaers, Collisions for the Compression Function of MD5, Eurocrypto,93.
2 H. Dobbertin, Cryptanalysis of MD4, Fast Software Encryption, LNCS 1039, D. , Springer-Verlag, 1996.
3 H. Dobbertin, Cryptanalysis of MD5 compress, presented at the rump session of EurocrZpt'96.
4 Hans Dobbertin, RIPEMD with Two-round Compress Function is Not Collision-Free, J. Cryptology 10(1),
1997.
5 H. Dobbertin, A. Bosselaers, B. Preneel, "RIPMEMD-160: A Strengthened Version of RIPMMD," Fast
Software EncrZption, LNCS 1039, D.Gollmann, Ed., Springer-Verlag, 1996, pp. 71-82.
6 FIPS 180-1, Secure hash standard, NIST, US Department of Commerce, Washington D. C., April 1995.
7 P. R. Kasselman, W T Penzhorn , Cryptananlysis od reced version of HAVAL, Vol. 36, No. 1, Electronic
Letters, 2000.
8 R. L. Rivest, The MD4 Message Digest Algorithm, Request for Comments (RFC)1320, Internet Activities
Board, Internet Privacy Task Force, April 1992.
9 R. L Rivest, The MD5 Message Digest Algorithm, Request for Comments (RFC)1321, Internet Activities
Board, Internet PrivacZ Task Force, April 1992.3RIPEMD-1281
10 Y. Zheng, J. Pieprzyk, J. Seberry, HAVAL--A One-way Hashing Algorithm with Variable Length of Output,
Auscrypto'92.

⑧ c++程序编译后自动生成的文件有什么用,分别解释下

1, PCH文件

预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码.

为什么需要预编译头文件?一言以蔽之:提高编译速度.一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西(eg.Macro宏,Preprocessor预处理),而VC程序中,这些头文件中所包括的东西往往是非常大的,编译之将占很长的时间.但它们又不常被修改,是较稳定的,为单独的一个小文件而重新编译整个工程的所有文件导致编译效率下降,因此引入了.PCH文件.

如何使用预编译头文件以提高编译速度?要使用预编译头文件,必须指定一个头文件(.H),它包含我们不会经常修改的代码和其他的头文件,然后用这个头文件(.H)来生成一个预编译头文件(.PCH)VC默认的头文件就是StdAfx.h,因为头文件是不能编译的,所以我们还需要一个.CPP文件来作桥梁,VC默认的文件为StdAfx.cpp,这个文件里只有一句代码就是:#include "StdAfx.h".接下来要用它生成.PCH文件,涉及到几个重要的预编译指令:/Yu,/Yc,/Yx,/Fp.简单地说,/Yc是用来生成.PCH文件的编译开关.在Project->setting->C/C++的Category里的Precompiled Header,然后在左边的树形视图中选择用来编译生成.PCH文件的.CPP文件(默认即StdAfx.cpp)你就可以看到/Yc这个开关,它表示这个文件编译了以后是否生成.PCH文件(可能/Yc的c表示create)./Fp指令指定生成的.PCH文件的名字及路径(可能/Fp的p代表path)./Yu的u即use使用,工程中只要包括了.H文件的文件都会有这个/Yu指令.如果选择自动Automatic...的话则原来为/Yc的地方就换成了/Yx指令.如果选择自动,则每次编译时编译器会看以前有没有生成过.PCH文件,有则不现生成否则就再次编译产生.PCH文件.

注意:

A,实际上,由Appzard项目向导生成的默认的头文件及CPP文件StdAfx.h和StdAfx.cpp可以是任何名字的.原因很简单.但如果你要这样做就要记得修改相应的Project->setting...下的几个预编译指令(/Yc,/Yu,/Yx,/Fp)的参数.

B.在任何一个包括了将要预编译的头文件而使用了.PCH文件的工程文件的开头,一定必须要是在最开头,你要包含那个指定生成.PCH文件的.H文件(通过.CPP文件包括,默认为StdAfx.cpp),如果没包括将产生我最开头产生的错误.如果不是在最开头包括将产生让你意想不到的莫名其妙错误,如若不信,盍为试之?

C.预编译文件.PCH生成之很耗时间,而且生成之后它也很占磁盘空间,常在5-6M,注意项目完成之后及时清理无用的.PCH文件以节约磁盘空间.

D.如果丢了或删了.PCH文件而以后要再修改工程文件时,可将指定的/Yc的.CPP文件(默认为StdAfx.cpp)重新编译一次即可再次生成.PCH文件,不用傻傻的按F7或Rebuild All

2, NCB文件

.ncb 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。build后会自动生成

3, OBJ文件

目标文件,一般是程序编译后的二进制文件,再通过链接器和资源文件链接就成exe文件了。

OBJ只给出了程序的相对地址,而EXE是绝对地址。

4, PDB文件

程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。当以 /ZI 或 /Zi(用于 C/C++)生成时,将创建一个 PDB 文件。

在 Visual C++ 中,/Fd 选项用于命名由编译器创建的PDB 文件。当使用向导在Visual Studio 中创建项目时,/Fd 选项被设置为创建一个名为 project.PDB 的 PDB。

如果使用生成文件创建 C/C++ 应用程序,并指定 /ZI 或 /Zi 而不指定 /Fd 时,则最终将生成两个 PDB 文件:

*VC80.PDB (更笼统地说就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)该文件存储各个 OBJ 文件的所有调试信息并与项目生成文件驻留在同一个目录中。

*project.PDB 该文件存储 .exe 文件的所有调试信息。对于C/C++,它驻留在 \debug 子目录中。

每当创建 OBJ 文件时,C/C++ 编译器都将调试信息合并到 VCx0.PDB 中。插入的信息包括类型信息,但不包括函数定义等符号信息。因此,即使每个源文件都包含公共头文件(如 <windows.h>),这些头文件中的 typedef 也只存储一次,而不是在每个 OBJ 文件中都存在。

链接器将创建 project.PDB,它包含项目的 EXE 文件的调试信息。project.PDB文件包含完整的调试信息(包括函数原型),而不仅仅是在 VCx0.PDB 中找到的类型信息。这两个 PDB 文件都允许增量更新。链接器还在其创建的 .exe 或 .dll 文件中嵌入 .pdb 文件的路径。

Visual Studio 调试器使用 EXE 或 DLL 文件中的PDB 路径查找 project.PDB 文件。如果调试器在该位置无法找到 PDB 文件或者如果路径无效(例如,如果项目被移动到了另一台计算机上),调试器将搜索包含 EXE 的路径,即在“选项”对话框(“调试”文件夹,“符号”节点)中指定的符号路径。调试器不会加载与所调试的二进制不匹配的 PDB。

5, ILK文件

在增量链接时,LINK 更新在第一次增量链接期间创建的 .ilk 状态文件。该文件和 .exe文件或 .dll 文件具有相同的基名称,并具有扩展名 .ilk。在后面的增量链接期间,LINK 更新 .ilk 文件。如果缺少 .ilk 文件,则 LINK 执行完全链接并创建新的 .ilk 文件。如果 .ilk 文件无法使用,则 LINK 执行非增量链接。有关增量链接的详细信息,请参见渐进式链接(/INCREMENTAL) 选项。

6, MAP文件

Windows和linux系统下都有map文件,map文件一般是用来保存符号的地址信息。这里的符号一般是指函数名及变量(局部、全局)。根据这个地址信息,便可以把地址翻译成相应的符号,很多系统工具、debug方法都要用到这种信息。

(一)一个程序编译完以后内容会分成两大类保存,一类是code,一类是data:

(1)code指程序代码,常存在.text section

(2)data指存程序中声明的变量,常存在.data section,未初始化的变量会被存在.bss section。

(二)Windows

(1)单个模块的map文件

在Windows下每一个模块(dll/exe)对应一个map文件,只需编译时打开相应的选项即可。

visual studio中方法:右击工程,选择Properties,然后选择 Configuration Properties -Linker - Debugging,将Generate Map File项改成Yes。

编译后在debug/release目录里便可以找到与应用程序同名的map文件。

如下为map文件内容:

Timestamp is4b9603e2 (Tue Mar 09 16:16:34 2010) //这个是时间戳,每次编译都不同,后面符号对应的地址一般也不同。

Preferred loadaddress is 00010000 //这是编译时的预装载地址,实际上模块被加载的地址可能跟这个不同,所以来确定某个地址对应哪个符号信息的时候,还需要知道该模块加载在内存的真正起始地址,然后根据偏移量来确定。

Start Length Name Class

0001:00000000 001c3950H .text CODE ==》存放程序代码

0003:000008b8000af67cH .data DATA ==》初始化的变量

0003:000aff40003930b1H .bss DATA ==》未初始化的变量

(2)操作系统总的map文件:不知道有没有。

(3)mpbin

mpbin是一个反汇编工具,可以输出exe/dll文件的许多信息。

mpbin /allyourmolename > a.txt 可以把所有的信息保存在一个a.txt中,里面可以找到时间戳、原debug路径信息及函数列表等。

如下:

FILE HEADERVALUES

1C2 machine (Thumb)

6 number of sections

49EC0BAE time date stamp Mon Apr 2013:44:14 2009 //时间戳

0 file pointer to symbol table

0 number of symbols

E0 size of optional header

2102 characteristics

Executable

32 bit word machine

DLL

OPTIONAL HEADERVALUES

10B magic # (PE32)

9.00 linker version

53E00 size of code

76A00size of initialized data

0 size of uninitialized data

502ACentry point (100502AC)

1000 base of code

55000 base of data

10000000 image base (10000000 to100CDFFF)

1000 section alignment

200 file alignment

5.01 operating system version

0.00 image version

5.01 subsystem version

0 Win32 version

CE000 size of image

400 size of headers

其中 10000000 image base (10000000 to 100CDFFF)是重要的信息,与map file中的 Preferred load address is10000000 意义相同。

DebugDirectories

Time Type Size RVA Pointer

-------- ------ -------- -------- --------

49EC0BAE cv 81 000020FC CFC Format: RSDS, {A5C699F0-C26D-427E-BC54-3504731BA9B8}, 1,d:\Projects\Final\MyUsbToPc_CPL\MyUsbToPc\Windows Mobile 6 Professional SDK(ARMV4I)\Debug\MyUsbToPc.pdb //原编译路径

Begin End Prolog Excpt 32bit Fixup 【Function Name】

0000000010001000 10001040 10001010 N Y Y DllMain

0000000810001040 10001064 10001050 N Y Y ?InitApplet@@YAHPAUHWND__@@@Z (int __cdecl InitApplet(struct HWND__*))

0000001010001064 10001068 10001064 N Y Y ?TermApplet@@YAXXZ (void __cdecl TermApplet(void))

0000001810001068 100013DC 10001078 N Y Y CPlApplet

00000020 1000141C 100014B4 10001420 N Y Y _DllMainCRTStartup

00000028100014B4 100014BC 100014B4 N Y Y GetCurrentProcess

00000030100014BC 100014F0 100014C0 N Y Y

00000038 100014F0 1000155C 100014F4 N Y Y _cinit

00000040 1000155C 10001660 10001560 N Y Y

0000004810001660 10001678 10001664 N Y Y exit

0000005010001678 10001690 1000167C N Y Y _exit

0000005810001690 100016AC10001694 N Y Y _cexit

00000060 100016AC 100016F8 100016B0 N Y Y _c_exit

begin栏对应的地址与map里的地址是一致的,非常类似于map文件。

【注意:很多exe或dll在编译时时将此信息隐藏的,Function Name会变成空的】

(三)Linux

(1)单个模块的map文件

暂还不清楚,大家知道的请告知。

(2)操作系统总的map文件

linux系统编译Image后会生成一个system.map,里面存了被编译进内核的符号信息,不同次的编译生成的system.map会有差异。

因为是操作系统的符号信息,装载的地址都是固定的,所以不像windows单个模块那样靠偏移量定位,直接通过地址就可以直接找到对应的符号。

其内容的重要的几个符号如下:

_stext//代码段开始

_etext//代码段结束

__data_start//初始化的数据开始

_edata//初始化的数据结束

__bss_start//未初始化数据开始

_end//全部结束

Linux相对windows有个很重要的不同是,linux启动后在proc\kallsyms里也有一份类似Map文件的信息,cat命令可看到其内容,有了这个就可以得到任何一个内核的符号(变量及函数名)的地址信息,而不需要在编译完内核后特意保存map文件,这真是一个巨大的宝藏。

而且,proc\kallsym的信息比system.map多,在最后会有mole部分的符号信息,这些信息会随着系统的变化而变化。

(3)nm命令

nm命令用来显示某个可执行文件的符号信息。符号信息中会包含全局变量(比如下面的xyz)和函数名(比如下面的main),还有一些编译器插入的符号(比如下面的__data_start,__bss_start)

第二列表示符号的属性,其中大写代表global,小写代表local

Usage: nm[option(s)] [file(s)]

List symbols in[file(s)] (a.out by default).

示例:

nm helo

08049f20 d_DYNAMIC

08049ff4 d_GLOBAL_OFFSET_TABLE_

080484ec R_IO_stdin_used

w _Jv_RegisterClasses

08049f10 d__CTOR_END__

08049f0c d__CTOR_LIST__

08049f18 D__DTOR_END__

08049f14 d__DTOR_LIST__

08048500 r__FRAME_END__

08049f1c d__JCR_END__

08049f1c d__JCR_LIST__

0804a020 A__bss_start

0804a00c D__data_start

080484a0 t __do_global_ctors_aux

08048340 t__do_global_dtors_aux

0804a010 D__dso_handle

w __gmon_start__

0804849a T __i686.get_pc_thunk.bx

08049f0c d__init_array_end

08049f0c d__init_array_start

08048430 T__libc_csu_fini

08048440 T__libc_csu_init

U __libc_start_main@@GLIBC_2.0

0804a020 A _edata

0804a028 A _end

080484cc T _fini

080484e8 R_fp_hw

08048298 T _init

08048310 T_start

0804a020 bcompleted.6635

0804a00c Wdata_start

0804a024 bdtor_idx.6637

080483a0 t frame_mmy

080483c4 T main

U printf@@GLIBC_2.0

0804a014 D x

0804a018 D y

0804a01c D z

helo.c如下:

#include<stdio.h>

int x = 10;

int y = 20;

int z = 30;

extern int__data_start;//这里引用了编译器插入的符号

int main(void)

{

int *ds = &__data_start;

printf("%p\n", ds);

printf("now x = %d\n", x);

ds+=3;

*ds = 100;

printf("now x = %d\n", x);

}

7, IDB文件

The compiler savesstate information from the first compile in the project’s .IDB file (the default name is project.IDB or VC60.IDBfor files compiled without a project).

The compiler usesthis state information to speed subsequent compiles.

8, SLN文件

Visual Studio.Solution 通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。

⑨ 物理磁盘的二进制转化为十六进制编辑器里的十六进制数的顺序

二进制转化为十六进制的技巧:从右往左,四个一数 然后计数。比如你的题目,四个一数:1011 0110 0010 1100;
1011对应的就是8+2+1=11=B;
0110对应的就是4+2=6;
0010对应的就是2;
1100对应的就是8+4=12=C;
所以结果是B62C.
或者B6 2C。
另外 如果是二进制转换为8进制则三位一数。
希望我的回答对你有帮助。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:613
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:945
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:742
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372