置頂隨筆

【基本信息】
將自己的想法付諸行動,那才是真正的有意思。

【更新列表】
==============================
 Release 2019-02-16
==============================
 Release 2018-09-21、Release 2018-08-30、Release 2018-01-18
==============================
 Release 2017-12-31、V1.0、Release 2017-10-26、Release 2017-07-03、Release 2017-02-10
==============================
 Release 2016-11-02、Release 2016-02-25
==============================
 Release 2015-07-14、Release 2015-03-23、Release 2015-01-28、Release 2015-01-13
==============================
 Release 2014-11-18、Release 2014-08-19、Release 2014-07-10、Release 2014-06-06、Release 2014-05-30、Release 2014-05-14、Release 2014-04-29、Release 2014-04-09、Release 2014-03-23、Release 2014-03-04、Release 2014-02-26、Release 2014-01-24、Release 2014-01-03
==============================
 Release 2013-12-31、Release 2013-12-03、Release 2013-11-26、Release 2013-11-05、Release 2013-10-14、Release 2013-09-29、Release 2013-09-10、Release 2013-08-22、Release 2013-08-09、Release 2013-07-09、Release 2013-07-08、Release 2013-06-01、Release 2013-05-09、Release 2013-04-22、Release 2013-04-12、Release 2013-04-07、Release 2013-03-29、Release 2013-03-24、Release 2013-03-16、Release 2013-03-07、Release 2013-02-26

posted @ 2012-09-02 00:00 CrHackOS 閱讀(1009) | 評論 (2)編輯 收藏

一些我的開源項目

Asylum:https://github.com/prefetchnta/asylum
CrHack:https://github.com/prefetchnta/crhack
QuestLAB:https://github.com/prefetchnta/questlab

一些有用文件存檔

MyBuild:https://github.com/prefetchnta/mybuild
GameViewer:https://github.com/prefetchnta/gameviewer

posted @ 2011-06-18 12:48 CrHackOS 閱讀(3643) | 評論 (11)編輯 收藏

2017年2月12日

  有一些程序之所以無法在 WinXP 下運行,除了子系統版本號之外,還有編譯器 C 庫的原因。VC2012 和 VC2013 在打某個補丁之前編譯出來的 EXE/DLL 會使用到 Vista 以后才有的系統 API 函數。無法運行的現象是:“無法定位程序輸入點 XXX 于動態鏈接庫 KERNEL32.DLL”。在沒有源代碼重新編譯的情況下,我做了一個中間跳轉的代理庫,基本可以解決這個問題。原理很簡單,就是系統有這個 API 函數就直接跳轉過去,沒有就使用自己實現的替換函數。下載地址在這里:https://github.com/prefetchnta/questlab/raw/master/bin/kernel33.dll。由于這個只是用來解決我所遇到的無法運行的問題的,因此并沒有補完所有 WinXP 缺失的函數(也不可能全補完),同時只映射了絕大部分 KERNEL32.dll 的 API 函數(大概 99%),所以并不能解決所有的此類問題。但是原理上是行得通的,而且也已經開源了(QuestLAB 里的 BackPort 子項目)。使用的方法就是把 EXE/DLL 導入表的 KERNEL32.dll 字符串改成 KERNEL33.dll 即可。

posted @ 2017-02-12 20:15 CrHackOS 閱讀(124) | 評論 (0)編輯 收藏

2015年3月19日

  選擇 v120_xp 平臺工具集即可使程序兼容 XP 系統。其實質就是加了一個 _USING_V110_SDK71_ 的宏,使用老版本的 Windows SDK,來防止用到 XP 沒有的系統 API。另外就是鏈接器里把子系統的版本號定義成 5.1 了(默認是 6.0)。我做了一下實驗,發現子系統的版本號只對 EXE 有效。6.0 的 EXE 在 XP 下運行會提示不是有效的 Win32 程序,而 DLL 似乎不會受到這個限制。所以只要沒有用到 XP 沒有的 API,VC2013 編譯的 DLL 可以直接使用,而 EXE 相差的其實就是那個版本號。(這里的 VC2013 是打過最新的 Update 的,XP 是 SP3 的。)

posted @ 2015-03-19 16:02 CrHackOS 閱讀(644) | 評論 (0)編輯 收藏

2015年1月24日

Open source libraries for Android and Windows.
https://github.com/prefetchnta/mybuild



  官方只有 3.02 版的 VS2008 編譯的最終二進制。為了完全去掉 WinSXS 的 CRT 依賴(強迫癥),花了一天時間把所有依賴庫全都用 VC10 編譯了一遍(網上有個不純潔的版本,混雜了調試版的 CRT),順便都升級到最新的了。以后用到的一些開源庫(沒有官方二進制或依賴庫還是幾萬年前的版本)也放到這個倉庫里來。

posted @ 2015-01-24 17:12 CrHackOS 閱讀(439) | 評論 (0)編輯 收藏

2014年8月16日

  最近在玩新唐的 N32926。這顆芯片最大的優勢就是把 DDR 內存和 ARM9 的芯片做在一起了,提供非 BGA 的芯片封裝(QFP128)。比起三星之類的硬件可以簡單不少,性價比也不錯。缺點就是,可能是封裝管腳太少的緣故,很多功能都是復用的,導致管腳資源緊張。例如,以太網接口和8位以上的 LCD 屏接口是沖突的。以太網切換到第二端口上又和一個串口沖突。本來芯片上就只有兩個串口。這就造成,所有的串口設備必須要掛在同一個串口上,用一個模擬開關芯片去切換??啥竦氖?,Linux 內核和控制臺也會時不時的輸出東西。但是又不想徹底關掉它們,到時候還能看看調試信息。所以就去找了一下如何臨時關閉控制臺輸出的方法。
  臨時關閉控制臺輸出(打開控制臺輸出即是把 tty0 重新設置為默認終端輸出):
1 int fd;
2 
3 fd = open("/dev/tty1", O_RDONLY);
4 if (fd >= 0) {
5     ioctl(fd, TIOCCONS);
6     close(fd);
7 }
  臨時關閉內核信息輸出:echo 0 > /proc/sys/kernel/printk;重新打開內核信息輸出:echo 7 > /proc/sys/kernel/printk。
  這樣,要用串口設備的時候,就先臨時關閉,然后開關切換,搞完之后再切回來,最后打開輸出。好在使用的串口設備都是被動的,可以臨時用一下的,不用一直掛在上面,不然就麻煩了。

posted @ 2014-08-16 13:23 CrHackOS 閱讀(11273) | 評論 (1)編輯 收藏

2014年3月17日

(1)選取三個素數:P、Q、E;
(2)計算 N = P * Q,F = (P - 1) * (Q - 1);
(3)求方程 E * x - F * y = 1 最小整數解 D;
(4)(E,N) 為公鑰,(D,N) 為私鑰;
(5)加密過程為:C = (M ^ E) mod N(C 為密文,M 為明文);
(6)解密過程為:M = (C ^ D) mod N(C、M 不能大于 N);
(7)P、Q 必須是有一定長度的強素數,使得 N 因式分解很難;
(8)P、Q 之間最好相差很大,一般相差個幾位;
(9)E 不可取得太小,一般取16位的素數,65537是一個常用數;
(10)Java 下 RSA 和大整數運算的數據存放方式都是大端格式。

posted @ 2014-03-17 13:55 CrHackOS 閱讀(368) | 評論 (0)編輯 收藏

2013年3月24日

(1)EditPlus
  這個是我寫代碼的主要工具,幾乎所有的代碼都是用它寫出來的。功能雖然沒有其他編輯器或 IDE 那樣強大,但是配置容易,簡單清爽,上手很快,并且功能也沒有像記事本那么弱,走的是中庸路線。

(2)TortoiseSVN
  每個做開發的人都應該自己搞一套版本管理系統,我的內部項目全都是用它管理的(不用裝服務端,直接可以用它來建倉庫)。自從用上了 SVN,已經徹底無法離開了。真無法想象從前人肉管理源代碼的日子是怎么過來的。最早 TortoiseSVN 不帶命令行工具,需要另外裝一套工具,后來從某個版本開始自帶了,所以只要裝這一個就可以了。

(3)TortoiseGit
  這個是最近才開始用的版本管理工具外殼,它的操作方式與 TortoiseSVN 的差不多,上手很快。使用它前必須先裝 Git for Windows 。Git 比 SVN 爽多了,GitHub 也是個很爽的網站,最喜歡里面的源代碼統計功能,加了幾行,刪了幾行,源碼類型百分比統計,ZIP 打包下載等等。另外,建議使用英文版(包括 TortoiseSVN),一些詞條換成中文就搞不清楚到底是哪個命令了。

(4)HaSHer
  這個是我自己寫的工具,可以批量計算文件的哈希值,并且比較前后兩次哈希值列表的差異(需要外部文本比較工具 TextDiff 和 TortoiseMerge)。我都是掛在右鍵菜單上用的。

(5)grepWin
  TortoiseSVN 作者做的一個文本查找替換的小工具,掛在右鍵菜單上可以很方便的查找替換源碼(脫離編輯環境)。

(6)HashCalc
  一個計算哈希的免費工具。我主要用它來計算源代碼里的字符串哈希值,同時用來對比自己代碼計算哈希值的正確性,做個參考。

(7)Rapid Environment Editor
  一個非常好的環境變量配置工具,免費的。配置編譯器路徑和環境變量時很方便(Windows 自帶的環境變量設置工具到了 Win7 還是那副德性,完全沒有可用性,讓人忍無可忍,難道是為了留口飯給別人吃?)。

(8)FreeFileSync
  免費開源的文件同步工具,用來備份文件很方便。我都是用它來把文件備份到移動硬盤里去的,使用鏡像模式。

(9)010 Editor
  分析二進制文件的時候使用。雖然有不爽的地方,但是功能還算夠用。在沒有更好的選擇之前用用還算不錯。以后 QuestLAB 里會做一個類似的二進制觀察分析工具,可以自己定制一些自己想要的功能。

(10)Foxit Reader
  看 DataSheet PDF 用的,比起又大又臭的那什么要小巧清爽多了,不過聽說其安全漏洞很多。中文版貌似版本很老,一直沒有更新,現在直接使用英文版。

(11)Greenfish Icon Editor
  一個免費的圖標編輯工具。QuestLAB 里的圖標都是用它編輯的(網上找來中意的圖標,然后刪除圖標文件里的那些超大圖標,并按大小排成一致的順序)。

(12)Sysinternal Suite
  微軟出的一組免費的實用工具。常用的有 AutoRuns(刪注冊表僵尸、自啟動和垃圾驅動用)、Desktops(可實現多個桌面)、Junction(XP 下用來實現 NTFS 文件鏈接)、SigCheck(檢查文件的數字簽名,我是掛在右鍵菜單上用的)、Sync(刷磁盤寫緩存用,強行斷移動硬盤前執行幾次)。

(13)WinDV
  一個德國人寫的視頻采集小程序。抓 DV 視頻的時候文件名會以拍攝日期命名并分割文件,這個是會聲會影做不到的。
 

posted @ 2013-03-24 22:25 CrHackOS 閱讀(652) | 評論 (0)編輯 收藏

2012年9月2日

【基本信息】
將自己的想法付諸行動,那才是真正的有意思。

【更新列表】
==============================
 Release 2019-02-16
==============================
 Release 2018-09-21、Release 2018-08-30、Release 2018-01-18
==============================
 Release 2017-12-31、V1.0、Release 2017-10-26、Release 2017-07-03、Release 2017-02-10
==============================
 Release 2016-11-02、Release 2016-02-25
==============================
 Release 2015-07-14、Release 2015-03-23、Release 2015-01-28、Release 2015-01-13
==============================
 Release 2014-11-18、Release 2014-08-19、Release 2014-07-10、Release 2014-06-06、Release 2014-05-30、Release 2014-05-14、Release 2014-04-29、Release 2014-04-09、Release 2014-03-23、Release 2014-03-04、Release 2014-02-26、Release 2014-01-24、Release 2014-01-03
==============================
 Release 2013-12-31、Release 2013-12-03、Release 2013-11-26、Release 2013-11-05、Release 2013-10-14、Release 2013-09-29、Release 2013-09-10、Release 2013-08-22、Release 2013-08-09、Release 2013-07-09、Release 2013-07-08、Release 2013-06-01、Release 2013-05-09、Release 2013-04-22、Release 2013-04-12、Release 2013-04-07、Release 2013-03-29、Release 2013-03-24、Release 2013-03-16、Release 2013-03-07、Release 2013-02-26

posted @ 2012-09-02 00:00 CrHackOS 閱讀(1009) | 評論 (2)編輯 收藏

2012年8月17日

  以前剛開始搞 GameViewer 的時候,主要目的是做一個自娛自樂的東西,用來打發打發時間。后期發現,當中有很多東西與平時的工作、興趣愛好等等有很多的關聯。所以后來,才逐漸加入了一些諸如 3D 模型、圖片濾鏡、腳本之類的功能。希望一些東西能夠集成到那里去,有個可以測試和試驗的統一環境。同時,那里面的東西也能夠拿出來實際使用,不光光只是用來提取別人的東西,別無他用。
  之前用的是 C++Builder 6.0 做的界面,用 VC2003 寫的一些庫和插件。后來發現,這樣的組合越來越偏離了本身的目標,局限性太大了,很多現成的資源無法利用,所以就果斷停止了進一步的開發。而且,我想玩的東西還有很多,比如換用 QT 或者 WX 寫寫界面;用 OpenCV 做圖形圖像處理;加入 Lua、Python 等等來做腳本引擎;嘗試一下那些開源的 3D 引擎;甚至想換用 .NET 和 Java 來做一點東西。一直以那樣的組合為中心,實在是太無聊了,而且很難把所有不同的東西都拉到一起,或者說實現一個大統一的環境本來就是不可能的。
  為了實現目標,這次打算用《UNIX編程藝術》一書里提到的思想方法來重新設計。其根本手段就是:(1)應用與庫分開。這就實現了一些東西集成到里面去,并且可以拿出來實際使用。打個比方就是,寫完一個游戲插件,就可以拿這個庫直接使用別人的資源來開發自己的游戲(所以本次設計的主要目標不是提取游戲資源,而是直接渲染游戲數據)。(2)多進程的架構。這就實現了多框架、多開發環境的問題。由于都是獨立的程序,我想用什么來開發就用什么來開發,自由的很。(3)一個程序只做好一件事。這才是??榛淖罡呔辰?,給你一種豁然開朗的感覺。一個程序寫爛了,可以直接扔,不會影響大局。(4)進程間通訊交互。這個才是最最重要的部分,一定要仔細設計交互協議,否則就是天下大亂。
  我把項目的源代碼放到了這里 https://github.com/prefetchnta/questlab ,除了用到的第三方閉源開發庫外,其他都是開放源代碼的。目前還沒有完全重現 GameViewer 的所有功能,但是整體框架已經有點成型了。以后會不定期更新,把以前做過的那些東西逐步開源出來?;掛啞淥閔⒌男」ぞ?、小程序統一集成到這個環境里來,形成一個大統一的應用程序。

posted @ 2012-08-17 17:10 CrHackOS 閱讀(1157) | 評論 (2)編輯 收藏

2012年7月7日

(1)想要成為一個超級大惡(賤)人,首先要明確,做大惡(賤)人的目的是什么。那就是,打擊自己認為、以為或者圈定的對手(哪怕只是自己一廂情愿),給對方帶來最大痛苦,實現自己齷齪的想法,進而滿足自己變態的心理欲望或者貪婪的物質欲望(心理是絕大多數)。

(2)一定要從自己的親人、親戚、好友里尋找自己下手的目標。因為陌生人與你不熟,大多很快會把痛苦忘記掉。而自己的親人、親戚、好友會一直記在那里,從而把這種痛苦一直延續下去。而且,你自己也會產生一種所謂的族群里的心理優越感,把自己變態、齷齪的心理快感放大到最大。

(3)不能有內疚的心理。如果你把一個人給害慘了,你自己感到有點內疚,那證明,你離超級大惡(賤)人還有一段距離要走。當然也不能有真正的同情心。但是虛假的同情和關心是很有必要的,那樣就像是在對方的傷口上撒鹽一樣,讓對方更痛苦,自己更愉悅。

(4)要以老實、內向的人為下手目標。一來,比較好耍弄和陷害;二來,可以保證自己的安全。這一條也是第二條的補充:出于種種情面上的原因,你的親人、親戚、好友不會明的把你怎么樣,最多也只是敬而遠之。

(5)要從背后捅刀子。最好還是從對方周邊的親人中來尋找捅刀子的機會??梢砸槐呤占楸?,一邊隔山打羊。借他們的手捅人那可是最佳。一旦事情敗露,關系可以推得一干二凈。自己逍??旎?,讓別人痛苦去吧。最佳的尋找人選是對方的上一輩老人,因為那一輩人比較純樸,也比較無知,比較容易相信你那有著不可告人目的的謊話。

(6)一旦真面目被戳穿、揭破,要馬上披上道歉者、同情者、彌補者的外衣。當然,那些肯定都只是虛假的,沒有實際行動的口頭表示罷了。在那些外衣的?;ず脫諢は?,你可以一次次地在對方的傷口上撒鹽,而對方卻拿你沒有什么辦法。

(7)在對方的正面,要以最丑惡、最裝逼的面目出現。比如,自己的收入比別人哪怕只高一元錢,也要說一個人的收入決定一個人的能力;又比如,自己比別人哪怕只早工作一個月,工作內容也只有一點點相關,也要做出一副老前輩、老資格的樣子,對別人指指點點、諄諄教誨。因為你是超級大惡(賤)人,你的存在就是為了讓你的目標惡心、反胃與痛苦。

(8)強怕狠,狠怕沒天良。在這片沒有更無恥,只有更下賤的土地上,正迎來了一個超級大惡(賤)人輩出的偉大時代。往往越是無恥的人,活的越滋潤。正所謂好人難做,而惡人卻謀世界。等你喪盡天良,人性泯滅的時候,一個頂級的超級大惡(賤)人就這樣誕生了。

(9)鄭重聲明:人在做,天在看。告誡學習了此手冊,并打算付諸于行動的同學,懸崖勒馬,回頭是岸。要知道,善惡終有報,不是不報,時辰未到。一旦有任何不良后果,與本手冊的作者無關。

posted @ 2012-07-07 08:53 CrHackOS 閱讀(414) | 評論 (0)編輯 收藏

2012年5月20日

  昨天升級了最新的 Keil MDK 4.53,怕它老是提示 J-Link 要升級,就去 SEGGER 的網站下了個最新版的 J-Link 軟件包(4.46F 版的),裝好后運行 J-Link Commander 提示要升級固件。以前一直是刷的,沒有問題,這次竟然升級后連不上仿真器了。提示 "Communication timed out: Requested 1 bytes, received 0 bytes !"。SEGGER 終于開始玩花招了。到 Keil 里打開了以前的一個工程,發現竟然還能調試,一看那 DLL 的版本是 4.40C 的,看來是在 DLL 里做了些手腳。
  今天用 IDA 跟了一下 J-Link Commander,并對比了一下兩個動態庫的差別,發現新版的在打開 J-Link 函數的過程里多了兩個調用。前一個判斷了一下仿真器的功能字符串里是否有 GDBFull,有就會多一步 USB 通訊,超時的就是這一步操作;后一個通過序列號槍斃了一些老的(被偷的?)J-Link??戳艘幌?GDBFull 這個字符串,只在這里用了一次,將其全部改為大寫,發現可以連上了。另外,序列號為 11111117 和 805306163 的會強制校驗 GDBFull 功能。
  大致上猜了一下,可能是 SEGGER 更新了一下 GDBFull 功能與序列號的綁定算法,下面的固件里也應該改過了,那一步 USB 通訊就是下面返回上來的認證結果,所以接收的只有一個字節。GDBFull 這個功能貌似從來沒有用過,反正我沒有用到過。
  節約空間資源,刪掉了下載。具體改法就是找到那個字符串,改成別的就行了。

posted @ 2012-05-20 18:32 CrHackOS 閱讀(11888) | 評論 (19)編輯 收藏

曾道人内部中特图  下一頁
后二组选包胆什么意思 重庆时时计划哪里买 下载麻将游戏免费四人 包胆号码什么意思 球探体育比分破解版 破解大小单双软件 吉林快3走势图跨度和值 高手总结的打麻将技巧 看4张牌玩牛牛技巧口诀 竞彩足球比分即时比分 王中王36码资料 手机购彩什么时候恢复 通比牛牛怎么玩法介绍 老虎机app自助领取彩金38 麻将二八杠游戏下载 鱼丸游戏手机号登录版