Re: [討論] n萬行的code

作者: ggg12345 (ggg)   2016-07-21 14:53:40
這個標題在 tech_j 版又有另一個驚人的題目
強者不需要註解
=========================================================================
: 以高階語言寫的程式是容易被人看得懂的.
: =====================================
:
: 學過資訊科技的人都清楚高階語言完成的程式是有這個特性的.
: 要用高階語言寫出 "self modified code" 或 "dirty code" 其實不容易. 這需要
: 把程式的指令碼當成資料來處理.
========
資料是能被拿來修改的, 但指令碼通常不准被拿來修改. 指令碼的部分就如同硬體,
做好了就不再更改. 有些資料如起始的設定值也是不改的. 譬如限制試用期的時間
鎖. 高階語言編譯器對這些不同的項目是區分得很清楚. 要用高階語言寫出一段會
自我修正程式碼的程式在先天上就不是很容易.
就今天的IC晶片言, 電子電路的設計也是用軟體寫出來的, 那麼IC晶片能否隨時間
對已完成的電路做自我修正, 把不良的電路自動更新為正確又新的電路?
PC 的 BIOS ROM 可以更新就是其中一例. 這是從記憶體做覆蓋的範例, 如果把某些
能被更改的資料放在網路上, 這些資訊可以透過網路被遮蔽或被依對象選擇性使用
或保護, 不同代差的電腦, 在某些功能上就隨時間是否有更新而有所不同了.
更新就是把特定對象的項目換成一個新的狀態, 這個新狀態替換了舊狀態.
更新要能進行, 首先就要先能找到舊狀態的位置.
某個錯誤的電路或程式碼先要被找到, 其次才能對之做更換.
程式的可讀性, 可被修改的變數命名是否易記, 是否容易被人區分辨識, 就影響某
個關鍵變數能否很快被人找出來? 這就涉及變數的命名及可以舉一反三的命名規則.
反組譯的程式也是有自動產生symbolic name 的功能, 會把被程式修改到的變數及
其位置列印出來讓人參考.
需要用人(包含自己)協同合作發展的軟體, 在程式的設計上需要把關鍵用到的變數
或連接點等資訊, 透過人類的命名使下一個接替發展的人可以快速找到. 對這些點
的額外描述就是 易記名稱及comment.
但如果連這些關鍵變數的名稱及備註說明都不給, 下一個接手的人能不能後續接手
做進一步改進或發展?
從對程式的反組譯來比較, 有symbolic debug 支援修改變數對照表的產生, 原始程
式隱蔽關鍵變數的作用, 只是變得很難被一眼找出.
self modified code 的行為, 通常只在 kernerl code 才會使用到. 譬如中斷服務
程式, 總是要把中段處理程式的入口位址需要到中斷向量表處做串接的修改. 這種
連接點的修改會影響程式與事件間的關連. 是否有正確的連接是在程式執行才發生,
核心系統的除錯追蹤工具可以協助把這種非正規(把指令當資料)的修改展示出來.
Qemu 虛擬機的作者使用code translation 及類似 just in-time compiler 的轉譯
技術可以自動對 self modified code 及時進行對應的機器碼轉換. 這種 dirty
code 招數也是能被破解的.
===============
程式軟體做出來是要讓電腦遵循, 替人類服務的. 也就是會被人拿去使用. 沒有人
肯用或能用的軟體, 跟不存在是一樣的.
電腦硬體設計同樣會出錯, 但電路的除錯, 麻煩太多, 所以造IC的產業會用軟體寫
的模擬器幫忙找出照做下去的IC可能會發生的錯誤. 預先防止錯誤, 是否能讓機器
自動執行? 機器是否能達到程式設計員的智能? 機器人時代的到來, 自動化程式的
產生暗示隱藏程式資訊, 不做備註只是在防人做合作學習而非防機器自動接手處理
後續工作.
程式設計師基本上就是透過機器來協助發展程式, 機器會取代後續處理的工作者是
必然發生的, 因為最後就是讓機器代替人做計算工作.
電腦協助除錯, 當然也會針對那些想隱藏軟體功能動作資訊的成品做處理.
: → ggg12345: 可以維護的就找免付費的高手來做,不給改的就建平台找更 07/19 10:22
: → ggg12345: 高手私下給高薪來提供工具,工具能自動識別與處理萬行. 07/19 10:25
==========================================================================
作者: Ommm5566 (56天團)   2016-07-21 15:42:00
頭香發費文喜批幣的渣無法可管嗎 煩死了言之有物 先推一個 等等沒內涵的老屁股會做垃圾護航這種文章有內涵 整篇都在發光 看了我都高潮了人不要臉天下無敵 目前為止我說的話都在跟我自已說話tech_j有這種板嗎? 就算有在這邊發文也是討噓地一行就不用客氣的2下去了 回文我懶得選自我不知道這樣洗批必有什麼意義 打完的時間工作還比較高幫補血 等等再來快了 等等再一下x1
作者: csfgsj (切割對半)   2016-07-21 17:26:00
5566 似乎與樓主有血海深仇,噓成這樣
作者: meowyih (meowyih)   2016-07-21 17:44:00
這篇噓一下也是情理之中, 通篇不知所云 :p
作者: ns1234 (FAR)   2016-07-21 17:52:00
工三小跨隆摸
作者: Ommm5566 (56天團)   2016-07-21 17:54:00
csf在科技版也是肺紋王 還會幫gggg護航 不用客氣2下去
作者: UNIQLOCK (UNIQ)   2016-07-21 18:19:00
看到Ommm5566 就覺得PTT真好,讓負面力量不會出現在現實社會PTT近幾年的好文也變少了,感謝這些破壞別人撰文美意的人
作者: ggBird (ggBird)   2016-07-21 19:12:00
純推不下
作者: kyoin (nioyk)   2016-07-21 19:14:00
原來不是只有我看不懂 每次看他的文都很痛苦
作者: y3k (激流を制するは静水)   2016-07-21 19:26:00
這啥小XDD
作者: winken2004 (新竹肥宅)   2016-07-21 19:48:00
工殺小
作者: angusyu (〒△〒)   2016-07-21 20:39:00
整篇不知所云,我到底看了三小啊,基本上真的是一種強者了
作者: alan3100 (BOSS)   2016-07-21 20:49:00
看內文加上某護航真的很好笑 故事中再編故事一下就露底
作者: hizuki (ayaka)   2016-07-21 21:10:00
bios有修改電路?efuse吧
作者: atpx (秋雨的心情)   2016-07-21 22:14:00
感覺原po很強的樣子, 但是跟題目有關?
作者: edward13 (-_-)   2016-07-21 22:44:00
原po講的太抽象 又太跳痛 被噓情有可原XD
作者: Ommm5566 (56天團)   2016-07-21 23:08:00
哈哈哈 只有垃圾會幫垃圾護航 剛剛看了一下uniq的文章誰才是只出現在ptt不會湧入現實的負能量 白癡都分得出來
作者: KanoLoa (卡)   2016-07-22 00:20:00
我看不懂,但是噓成這樣你是不是要冷靜下...連9噓耶?何苦浪費時間在自己不喜歡的文章上
作者: longlongint (華哥爾)   2016-07-22 00:51:00
覺得讀起來還好。教科書差不多就是這個調調
作者: kenimai (非理法権天)   2016-07-22 01:54:00
這廢文王又出來了...
作者: ADYex (寵物狼音樹)   2016-07-22 03:19:00
看起來超像文章自動產生器的東西…
作者: xdraculax (首席怪叔叔)   2016-07-22 11:57:00
學習了,邁向高階主管之路,能在台上連續講1小時廢話是必須的
作者: duckfly (Java ass)   2016-07-23 14:34:00
看似高深卻牛頭不對馬尾的廢文
作者: otaku5566 (オタク56)   2016-07-24 03:46:00
0.0
作者: dou0228 (7777)   2016-07-28 22:32:00
end

Links booklink

Contact Us: admin [ a t ] ucptt.com