❶ linux下怎麼用C 語言實現判斷ZIP壓縮文件是否已加密
我們知道在windows系統編譯的可執行文件在Linux下是不能直接運行的,那麼在Linux下用C語言編寫的可執行程序能在windows系統下運行嗎?
❷ 如何將Linux Shell程序使用shc編譯加密
第一步非常簡單,就是獲取到
shc
程序的源碼文件,這個可以從官方站點(現在視乎無法訪問)下載,或者從參考資料裡面提供的地址下載。
2
下載到源文件後,先要解壓出來,使用Tarball工具進行解壓,命令時
tar
-xvf
shc.tar
這樣就能得到解壓後的文件,。
3
這時候我們自己編譯shc得到可以使用的可執行程序,過程如下:
make
make
install
等待系統完成即可,我這里因為許可權問題,幫助文件安裝出了些問題,但整體還是沒有問題的。
4
我們准備一個程序,這里就使用簡單的顯示語句,文件名
test.sh
echo
"
this
is
a
shell"
然後
sch
-f
test.sh
完成編譯操作,會發現目錄下多出如下圖所示的文件
5
這里是編譯完成後的目錄內容,可以看到
.x
的已經編譯後的二進制可執行文件,而
.x.c
的是轉化的C語言源文件。
6
這里顯示的是經過轉化過的C語言源文件,可以在同一目錄下看到,內容已經經過處理,字元串都進行了編碼處理。
7
我們直接執行對應的編譯後的二進製程序,可以看到,效果和shell文件是一樣的,但是這樣源代碼隱藏了起來,保密性強。
END
注意事項
shc需要自己編譯,因此您需要有GCC的環境
shc
在使用了
-r
選項的時候具有通用性,很多系統之間可以直接運行,參數如下:
shc
並不是真正意義的高強度加密,因此很容易被逆向工程,所以不要依靠這個的安全性
❸ 在linux中編譯C輸入完程序後輸入個:wq然後按什麼鍵就然後就回到了上一個界面
vi 編輯器里。
先 按一下 ESC 退出,然後 按 : 鍵,然後輸入 wq 保存並退出的意思,再打回車,即可退出編輯狀態。
使用 gcc -o C源文件
即可編譯。
1 29
lzbltx
2010-10-11 超過23用戶採納過TA的回答
關注
:wq是vi的編輯命令,vi編輯命令中「:」命令最後輸入回車鍵執行。找一個LINUX入門的書,學習一下簡單的vi命令就可以編輯程序了。
0果在命令行下使用gedit, 關閉程序窗口(一般先保存文件),就自動退到命令行界面。
如果在命令行下使用vim,先按下ESC退出編輯模式,然後輸入:wq 保存並退出或者q退出或者q!強制退出,從而回到命令行界面。
(3)linuxc語言文件加密擴展閱讀:
linux常見命令:
命令
apropos whatis 顯示和word相關的命令。 參見線程安全
man -t man | ps2pdf - > man.pdf 生成一個PDF格式的幫助文件
which command 顯示命令的完整路徑名
time command 計算命令運行的時間
time cat 開始計時. Ctrl-d停止。參見sw
nice info 運行一個低優先順序命令(這里是info)
renice 19 -p $$ 使腳本運行於低優先順序。用於非交互任務。
目錄操作
cd - 回到前一目錄
cd 回到用戶目錄
(cd dir && command) 進入目錄dir,執行命令command然後回到當前目錄
pushd . 將當前目錄壓入棧,以後你可以使用popd回到此目錄
文件搜索
alias l='ls -l --color=auto' 單字元文件列表命令
ls -lrt 按日期顯示文件. 參見newest
ls /usr/bin | pr -T9 -W$COLUMNS 在當前終端寬度上列印9列輸出
find -name '*.[ch]' | xargs grep -E 'expr' 在當前目錄及其子目錄下所有.c和.h文件中尋找'expr'. 參見findrepo
find -type f -print0 | xargs -r0 grep -F 'example' 在當前目錄及其子目錄中的常規文件中查找字元串'example'
find -maxdepth 1 -type f | xargs grep -F 'example' 在當前目錄下查找字元串'example'
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done 對每一個找到的文件執行多個命令(使用while循環)
find -type f ! -perm -444 尋找所有不可讀的文件(對網站有用)
find -type d ! -perm -111 尋找不可訪問的目錄(對網站有用)
locate -r 'file[^/]*\.txt' 使用locate 查找所有符合*file*.txt的文件
look reference 在(有序)字典中快速查找
grep --color reference /usr/share/dict/words 使字典中匹配的正則表達式高亮
歸檔 and compression
gpg -c file 文件加密
gpg file.gpg 文件解密
tar -c dir/ | bzip2 > dir.tar.bz2 將目錄dir/壓縮打包
bzip2 -dc dir.tar.bz2 | tar -x 展開壓縮包 (對tar.gz文件使用gzip而不是bzip2)
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg' 目錄dir/壓縮打包並放到遠程機器上
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 將目錄dir/及其子目錄下所有.txt文件打包
find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents 將目錄dir/及其子目錄下所有.txt按照目錄結構拷貝到dir_txt/
( tar -c /dir/to/ ) | ( cd /where/to/ && tar -x -p ) 拷貝目錄/到目錄/where/to/並保持文件屬性
( cd /dir/to/ && tar -c . ) | ( cd /where/to/ && tar -x -p ) 拷貝目錄/下的所有文件到目錄/where/to/並保持文件屬性
( tar -c /dir/to/ ) | ssh -C user@remote 'cd /where/to/ && tar -x -p' 拷貝目錄/到遠程目錄/where/to/並保持文件屬性
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' 將整個硬碟備份到遠程機器上
0
❹ 在unbuntu下使用openssl 寫一個加密的C程序,編譯提示找不到頭文件openssl/*.h
哥門 <openssl/aes.h> 里 的openssl只是文件夾名字而已,
在linux下面 /usr/local/include/ /usr/include/ 這兩個路徑是默認引用的。
所以你沒加 -I 也是可以編譯的 。
當交叉編譯時,那就完全不一樣了,必須配置好所有路徑。
❺ c語言暴力破解linux系統密碼文件「/etc/shadow」的程序源代碼
這個文件中的密碼是局神RSA加密演算法好沖加密的,很難破解,你可以用窮舉演算法來試試(^_^)
例如:a a的密碼
b b的密碼
...
aa aa的密碼
bb bb的密碼
...
aaa aaa的密碼
...
只要你還能用友臘殲sudo命令,就能重新輸入密碼:sudo passwd root
❻ 如何在Linux下用C語言實現MD5/DES解密
相關庫函數如下:
#include <openssl/md5.h>
unsigned char *MD5(const unsigned char *d, unsigned long n,unsigned char *md);
int MD5_Init(MD5_CTX *c);
int MD5_Update(MD5_CTX *c, const void *data,unsigned long len);
int MD5_Final(unsigned char *md, MD5_CTX *c);