能力值:
( LV9,RANK:610 )
2 楼
能力值:
( LV2,RANK:10 )
在线值:
3 楼
用查壳工具PEID DIE 等等
下载地址:http://www.pediy.com/tools/unpacker.htm
如果没有壳则可以看出使用什么语言编写的。举例说装了peid后,选中exe文件一般在鼠标右键会有一个scan with peid的选项,选择此项若该exe文件没有加壳就会显示类似下图的内容:
可以看出所查exe文件是用microsoft visual c++v6.0编的
上传的附件:
能力值:
( LV2,RANK:10 )
在线值:
4 楼
一般没有办法可以保证获取EXE文件是什么语言写的,只是对于编译后没有进行任何处理的EXE文件,可以去看它是否符合常见的DELPHI、VB、VC++等编译器的规律,然后猜测其是什么语言编写的。对于高级语言的反编译,理论上就是不可能的,除非是对于PHP、FOXPRO这些伪编译系统。虽然EXE都可以反汇编,但是真正想反汇编之后做个什么大的手足,是非常非常困难的。
能力值:
( LV2,RANK:10 )
在线值:
5 楼
用PEID或FI来查啊,其他的也有
能力值:
( LV2,RANK:10 )
在线值:
6 楼
看输入表
有vb的vb写的
mfc的是vc
delphi看pe区段有规律
看的多了1眼就知道,就是加密的看pe区段也有规律
能力值:
( LV2,RANK:10 )
7 楼
很好很强大,上面的ocean7和用peid都可以查出来
能力值:
( LV2,RANK:10 )
8 楼
看程序入口点特征也行
能力值:
(RANK:420 )
9 楼
除了眾版友的方法外,還有一個更簡單的方法。
去查看 eof 的那個 sector.
什麼叫 eof 的 sector?
簡單來說,就是查看那個 exe file 的磁區(sector),通常在 eof( end of file)後,會有 "空著" (available)的一些 information,而這些 information 都是以 "plaintext" 的 ascii 方式呈現出來的。
有時後運氣好,可以直接看見這些 information,譬如那一種 compiler 及 version.
上传的附件:
能力值:
( LV5,RANK:60 )
10 楼
这个方法不好找到。。。
能力值:
( LV2,RANK:10 )
在线值:
11 楼
请教9楼的rockinuk朋友,你说的eof( end of file) 一般是怎么判断的
是在什么位置呢
能力值:
(RANK:420 )
12 楼
To adairs,
所謂的 eof, 指的就是檔案的尾巴。
為什麼要去找檔案的尾巴? 因為....這涉及到 FS (file system) 及 diskette 的設計原理。
這個方法對所有的 file 都適用,不一定只有 exe file.
能力值:
( LV2,RANK:10 )
13 楼
学习了,直接深入内部
14 楼
用PEID还是比较直接的
能力值:
(RANK:420 )
15 楼
有時候得看運氣。
舉例來說:
當 我 compiled 一個 exe file,然後我 send 給你時,在 tail 的 sector 上會有 " 殘餘" 的 information. 當這個 file 轉手很多人之後,這個 " 殘餘" 會隨之降低。
這個關係是與轉手次數成反比遞減。
能力值:
( LV9,RANK:610 )
16 楼
能力值:
(RANK:420 )
17 楼
因為你只看見你看懂的,你沒仔細理解我所說的。
能力值:
( LV9,RANK:610 )
18 楼
1
這涉及到 FS (
file
system) 及 diskette 的設計原理
应该是因为我不懂上面那知识导致的!
能力值:
(RANK:420 )
19 楼
這樣說好了。
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
int a;
printf
(
"Hello World!"
);
system(
"PAUSE"
);
return
0;
}
分別透過 DEV C++ 4.01 版 及 Mscrosoft Visuall C++ 6.0 版進行 compiled.
(在附件可見)
然後透過 file dump 或是其他的 hex editor 去看看這個 exe file 的內容。
我們可以得到初步的結果:
1) 對於 DEV C++ 所產生的 exe file 來說,裡面沒辦法直接的看到 DEV 等字樣的 information.
2) 對於 Microsoft Visuall C++ 6.0 版所 compiled 的 exe file 來說,比較容易 search 到 " Microsoft Visuall C++ " 這個字樣。
當然,這方法只是簡易地,在你沒有任何像 PEiD這類的 tools 在手邊時,你得想辦法用其它的方法達到目的。
以上是直接 view file 的 contents.
3) 第三種是, “殘餘”。
什麼是 tail of remainder?
For example, test.ex_.DEVC401.txt 是 21.5 KB (22,016 bytes),這是這個 file 的 size,
但,在電腦上,並不是這樣。 22016/ 2048 = 10.75
一個 sector 可以儲存 2048 bytes. 那 22016 bytes 則需要 10.75 個 sectors.
又,你的 PC 會用 11 個 sectors 來放 這個 file.
所以,最後的那個 sector (也就是第 11 個 sector),只存放 1536 bytes. 那還有 512 個unavailable bytes,這個 512 bytes 就叫 "殘餘"。
殘餘並沒辦法用來當做 available disk space,那這 512 會放什麼 contents?
Good question!
沒人知道。
可能....如....
1) 當你 read/write file 時,尤其在 compiling 階段所產生 exe file 時,PC 就 "隨手" 把 memory 某一個 fragmentation segment 的內容給 "填補" 進去。講白話文叫 " 湊整數"。
2) 其它。
※ 以上描述的很雜亂,請見諒。如有興趣者,請自己去 try try 看,体驗一次就會明白。
上传的附件:
能力值:
( LV17,RANK:1820 )
20 楼
PEID也会误报的,不要太过于依赖它
能力值:
( LV17,RANK:1820 )
21 楼
顺道过来膜拜一下R大,呵呵
能力值:
( LV2,RANK:10 )
在线值:
22 楼
不愧是版主呀,答案果然很独特~~~
能力值:
( LV3,RANK:20 )
23 楼
楼上说的英文我全区百度后还是不明白
汗,看来我还有很远的路要走啊
能力值:
( LV2,RANK:10 )
在线值:
24 楼
学习了,望多发一点出来!
能力值:
(RANK:420 )
25 楼
File System ( FS , 檔案系統) : 就是 Linux, OS/2 及 MS DOS/ Windows XP 所需要用到的檔案格式。
譬如, FAT 16, FAT 32, NTFS 等,就是 File System.
Sector (磁區): 一個磁軌 ( track) 包函若干個磁區( sector).
EOF (End of File): 指檔案的結尾,一個檔案(file)不一定是連續儲存在一起,何時表示檔案是最後一個 byte時,就要借助 eof 這個 symbol 來辨認,當然這也要與 partition table 及 root directories 搭配比較精確。
sorry~~我這個內容~~是20幾年前的舊東西,請見諒。