『壹』 如何看c語言標准庫函數的源代碼
很遺憾,標准庫中的函數結合了系統,硬體等的綜合能力,是比較近機器的功能實現,所以大部分是用匯編完成的,而且已經導入到了lib和dll里了,就是說,他們已經被編譯好了,似乎沒有代碼的存在了.
能看到的也只有dll中有多少函數被共享.
第三方可能都是dll,因為上面也說了,dll是編譯好的,只能看到成品,就可以隱藏代碼,保護自己的知識產權,同時也是病毒的歸宿...... 當然,除了DLL的確還存在一種東西,插件程序~~~
『貳』 如何看c語言標准庫函數的源代碼
如果你用的是visual
studio的話,微軟提供了一部分C運行時(CRT)的源碼,裡面會有memcpy,strcpy之類的函數內的實現,我的visual
studio
2005下的路徑是容C:\Program
Files\Microsoft
Visual
Studio
8\VC\crt\src,你可以對比參照一下。
或者
http://www.gnu.org/software/libc/這里就有所有的c標准庫函數源碼。
再或者
http://www.pudn.com/downloads97/sourcecode/compiler/detail399455.html
『叄』 stm8s003單片機解密能提供完整的源代碼嗎
解密得不到源代碼,得到的都是反匯編後的二進制數字
『肆』 單片機原理的加密方法
科研成果保護是每一個科研人員最關心的事情,加密方法有軟體加密,硬體加密,軟硬體綜合加密,時間加密,錯誤引導加密,專利保護等措施有矛就有盾,有盾就有矛,有矛有盾,才促進矛盾質量水平的提高加密只講盾,也希望網友提供更新的加密思路,現先講一個軟體加密:利用MCS-51 中A5 指令加密,其實世界上所有資料,包括英文資料都沒有講這條指令,其實這是很好的加密指令A5 功能是二位元組空操作指令加密方法在A5 後加一個二位元組或三位元組操作碼,因為所有反匯編軟體都不會反匯編A5 指令,造成正常程序反匯編亂套,執行程序無問題仿製者就不能改變你的源程序。
硬體加密:8031/8052單片機就是8031/8052掩模產品中的不合格產品,內部有ROM,可以把8031/8052 當8751/8752 來用,再擴展外部程序器,然後調用8031 內部子程序當然你所選的同批8031晶元的首地址及所需用的中斷入口均應轉到外部程序區。
硬體加密
用高電壓或激光燒斷某條引腳,使其讀不到內部程序,用高電壓會造成一些器件損壞重要RAM 數據採用電池(大電容,街機採用的辦法)保護,拔出晶元數據失去機器不能起動,或能初始化,但不能運行。
用真假方法加密
擦除晶元標識
把8X52單片機,標成8X51 單片機,並用到後128B的RAM 等方法,把AT90S8252 當AT89C52,初始化後程序段中並用到EEPROM 內容,你再去聯想吧!
用激光(或絲印)打上其它標識如有的單片機引腳兼容,有的又不是同一種單片機,可張冠李戴,只能意會了,這要求你知識面廣一點 。
用最新出廠編號的單片機,如2000 年後的AT89C 就難解密,或新的單片機品種,如AVR 單片機。
DIP 封裝改成PLCC,TQFP,SOIC,BGA等封裝,如果量大可以做定製ASIC,或軟封裝,用不需外晶振的單片機工作(如AVR 單片機中的AT90S1200),使用更復雜的單片機,FPGA+AVR+SRAM=AT40K系列。
硬體加密與軟體加密只是為敘說方便而分開來講,其實它們是分不開的,互相支撐,互相依存的軟體加密:其目的是不讓人讀懂你的程序,不能修改程序,你可以………….....
利用單片機未公開,未被利用的標志位或單元,作為軟體標志位,如8031/8051有一個用戶標志位,PSW.1 位,是可以利用的程序入口地址不要用整地址,如:XX00H,XXX0H,可用整地址-1,或-2,而在整地址處加二位元組或三位元組操作碼,在無程序的空單元也加上程序機器碼,最好要加巧妙一點用大容量晶元,用市場上模擬器不能模擬的晶元,如內部程序為64KB 或大於64KB 的器件,如:AVR 單片機中ATmega103 的Flash 程序存儲器為128KBAT89S8252/AT89S53中有EEPROM,關鍵數據存放在EEPROM 中,或程序初始化時把密碼寫到EEPROM 中,程序執行時再查密碼正確與否,盡量不讓人家讀懂程序。關於單片機加密,講到這里,就算拋磚引玉。
『伍』 stm8庫文件在哪裡要自己下載嗎
您好,stm8庫文件在IAR的安裝路徑里可以找到,位置如下(以安裝在電腦D盤為例):
D:Program FilesIAR SystemsEmbedded Workbench 7.3stm8examplesSTM8SSTM8S105C6-BoardLibrariesSTM8S_StdPeriph_Driver
「STM8S_StdPeriph_Driver」文件夾里有兩個庫文件夾「inc」和「src」,分別用來存放.h和.c文件,截圖如下:
滿意請採納好評,謝謝!
『陸』 STM8的初始化裡面 while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSE)這個什麼意思
首先,你要明白STM8的驅動時鍾可以採用外部晶振,也可採用STM8內部的RC振盪器,二者只能選其一。三個語句中的HSI表明是採用內部RC振盪器。
你先看STM8內部的時鍾樹結構:
看到了嗎?它是表明時鍾准備好了沒有的狀態標志,就像你去叫別人辦事,別人要經過考慮,這就需要等待,同理,你在STM8S內部配置好了時鍾後,內部需要產生一定的延遲,而且受各種狀況的影響,比如外部供電電壓變化、引腳干擾等,有可能導致配置時鍾失敗,這就要經過查詢這個寄存器的值來看是否配置好時鍾沒有,如果這個寄存器不等於0,則配置成功,否則失敗。第三句的while里的意思就是不斷地取CMSR的值,看是否等於宏定義CLK_SOURCE_HSI(OXE1),如果相等了,則跳過循環,繼續執行以後的語句。