การป้องกันซอร์สโค้ด Java จากการเข้าถึง [ปิด]


97

สัปดาห์ที่แล้วต้องสร้าง GUI สำหรับทำการบ้านเล็กน้อย เพื่อนในโรงเรียนของฉันไม่มีใครทำ พวกเขาขโมยของฉันไปจากที่ที่เราต้องอัปโหลดแล้วอัปโหลดอีกครั้งเป็นของพวกเขา เมื่อฉันบอกครูว่าเป็นงานทั้งหมดของฉันเขาไม่เชื่อฉัน

ดังนั้นฉันจึงคิดที่จะใส่วิธีที่ไร้ประโยชน์หรืออะไรบางอย่างไว้ข้างในโดยมีหลักฐานว่าฉันเขียนโค้ดไว้ ฉันคิดถึงการเข้ารหัส ความคิดที่ดีที่สุดของฉันจนถึงตอนนี้:

String key = ("ZGV2ZWxvcGVkIGJ5IFdhckdvZE5U"); //My proof in base64

คุณคิดวิธีอื่นที่ดีกว่านี้ได้ไหม


31
ไฟล์ไม่มีการประทับเวลาในไซต์อัปโหลดหรือไม่
Averroes

76
คุณกำลังบอกว่าพวกเขาสามารถดาวน์โหลดโค้ดของคุณจากที่ที่คุณอัปโหลดได้หรือไม่? ดูเหมือนจะบ้า คุณควรตั้งคำถามกับวิธีการของครู ควรพูดคุยกับหัวหน้าของเขา / เธอเนื่องจากเขา / เธอดูเหมือนจะไม่มีเหตุผลเล็กน้อย
คีย์เซอร์

56
มหากาพย์ล้มเหลวหนึ่งในการบ้านของคุณและปล่อยให้ทั้งชั้นเรียนล้มเหลว
จัดขึ้น

25
ดูเหมือนอาจารย์จะเป็นมือใหม่เหมือนกัน ...
UmNyobe

22
สิ่งเดียวที่ควรทำในสถานการณ์นี้คือพยายามแก้ไขปัญหาโดยพูดคุยกับครูเกี่ยวกับวิธีอัปโหลดการบ้านของคุณ การอัปโหลดลงในพื้นที่ที่คุณสามารถดาวน์โหลดสิ่งที่คนอื่นส่งมานั้นเป็นเพียงเรื่องโง่ ๆ เท่านั้น - ฉันไม่แน่ใจว่าครูที่คิดว่าแนวทางนั้นดีควรจะสอนจริงๆ!
Michael Berry

คำตอบ:


104

ฉันมีปัญหาเดียวกับคุณเมื่อนานมาแล้ว เรามีเครื่อง Windows 2000 และอัปโหลดไฟล์ไปยังโฟลเดอร์เครือข่าย Novel ที่ทุกคนสามารถเห็นได้ ฉันใช้กลเม็ดหลายอย่างเพื่อเอาชนะแม้แต่หัวขโมยที่เก่งที่สุด: การเว้นวรรคลายน้ำ; การใส่ลายน้ำข้อมูลเมตา อักขระที่ผิดปกติ การประทับเวลาที่เชื่อถือได้ modus operandi นี่คือพวกเขาตามลำดับ

ลายน้ำช่องว่าง:

นี่คือผลงานดั้งเดิมของฉันในการสร้างลายน้ำ ฉันต้องการลายน้ำที่มองไม่เห็นซึ่งใช้ได้กับไฟล์ข้อความ เคล็ดลับที่ฉันคิดขึ้นคือการใส่รูปแบบเฉพาะของช่องว่างระหว่างข้อความการเขียนโปรแกรม (หรือย่อหน้า) ไฟล์มีลักษณะเหมือนกันกับพวกเขา: คำสั่งการเขียนโปรแกรมและการแบ่งบรรทัด การเลือกข้อความอย่างระมัดระวังจะแสดงช่องว่าง แต่ละบรรทัดว่างจะมีช่องว่างจำนวนหนึ่งซึ่งเห็นได้ชัดว่าไม่ใช่การสุ่มหรือโดยบังเอิญ (เช่น 17) ในทางปฏิบัติวิธีนี้ได้ผลสำหรับฉันเพราะพวกเขาคิดไม่ออกว่าฉันกำลังฝังอะไรลงไปในเอกสาร

ลายน้ำข้อมูลเมตา

นี่คือที่ที่คุณเปลี่ยนข้อมูลเมตาของไฟล์ให้มีข้อมูล คุณสามารถฝังชื่อแฮช ฯลฯ ในส่วนที่มองไม่เห็นของไฟล์โดยเฉพาะอย่างยิ่งของ EXE ใน NT วันกระแสข้อมูลสำรองได้รับความนิยม

อักขระที่ผิดปกติ

ฉันจะโยนอันนี้เพื่อเตะ เคล็ดลับการแอบอ้างบุคคลอื่นของ IRC คือการตั้งชื่อด้วยตัวอักษรที่ดูคล้ายกับชื่อของบุคคลอื่น คุณสามารถใช้สิ่งนี้ในการสร้างลายน้ำ Character Map ใน Windows จะให้อักขระผิดปกติหลายตัวที่มีลักษณะคล้ายกัน แต่ไม่ใช่ตัวอักษรหรือตัวเลขที่คุณอาจใช้ในซอร์สโค้ดของคุณ สิ่งเหล่านี้ปรากฏในจุดเฉพาะในงานของคนอื่นไม่สามารถเกิดขึ้นโดยบังเอิญได้

การประทับเวลาที่เชื่อถือได้

สรุปได้ว่าคุณส่งไฟล์ (หรือแฮช) ไปยังบุคคลที่สามซึ่งจะต่อท้ายการประทับเวลาและเซ็นชื่อด้วยคีย์ส่วนตัว ใครก็ตามที่ต้องการหลักฐานว่าคุณสร้างเอกสารเมื่อใดสามารถไปที่บุคคลที่สามที่เชื่อถือได้ซึ่งมักจะเป็นเว็บไซต์เพื่อตรวจสอบหลักฐานเวลาสร้างของคุณ สิ่งเหล่านี้ถูกนำมาใช้ในคดีในศาลสำหรับข้อพิพาทด้านทรัพย์สินทางปัญญาดังนั้นจึงเป็นหลักฐานที่แข็งแกร่งมาก นี่เป็นวิธีมาตรฐานในการบรรลุข้อพิสูจน์ที่คุณต้องการ (ฉันรวม b / c อื่น ๆ ไว้ก่อนแล้วมันง่ายพวกเขาสนุกกว่าและอาจจะได้ผล)

บทความ Wikipedia นี้อาจช่วยให้ผู้สอนเข้าใจหลักฐานของคุณและส่วนลิงก์ภายนอกมีผู้ให้บริการหลายรายรวมถึงผู้ให้บริการฟรี ฉันจะเรียกใช้ไฟล์ทดสอบผ่านไฟล์ฟรีสองสามวันก่อนที่จะใช้สำหรับบางสิ่งที่สำคัญ

ตัวดำเนินการ Modus

คุณทำอะไรบางอย่างและตอนนี้คุณมีหลักฐานแล้วใช่ไหม ไม่นักเรียนยังสามารถพูดได้ว่าคุณขโมยความคิดไปจากพวกเขาหรือเรื่องไร้สาระอื่น ๆ การแก้ไขของฉันสำหรับเรื่องนี้เป็นการส่วนตัวสร้างวิธีการอย่างน้อยหนึ่งวิธีกับผู้สอนของฉัน ฉันบอกให้ผู้สอนมองหาช่องว่างมองหาสัญลักษณ์บางอย่าง ฯลฯ แต่ห้ามบอกคนอื่นว่าลายน้ำคืออะไร หากผู้สอนยินยอมที่จะเก็บเทคนิคง่ายๆของคุณไว้เป็นความลับพวกเขาอาจจะยังคงทำงานได้ดี มิฉะนั้นจะมีการประทับเวลาที่เชื่อถือได้เสมอ ;)


5
+1 - คำตอบที่ดีและครอบคลุม น่าจะเป็นคำตอบที่ได้รับการยอมรับ
Andy Thomas

5
อีกหนึ่งแนวคิด: เข้ารหัสชื่อย่อของคุณในชื่อตัวแปรชื่อฟิลด์ชื่อเมธอดชื่อคลาส ฯลฯ ขโมยจะมีเวลายากที่จะเขียนทุกอย่างใหม่ (ฉันพูดถึงที่นี่เนื่องจากเป็นคอลเลกชันที่ดี)
gaborsch

1
+1 GaborSch. นั่นเป็นการเพิ่มที่ดี หากคุณไม่หลงประเด็นสำหรับชื่อเมธอดที่คลุมเครือกลวิธีนั้นจะทำให้ชัดเจนน้อยลงและชื่อย่อเองก็สามารถแพร่กระจายไปในชื่อได้
Nick P

4
อีกหนึ่งความคิดเห็นของ GaborSch เป็นแรงบันดาลใจ: จงใจสะกดผิดบางสิ่ง ทำการสะกดผิดของฟังก์ชันหรือชื่อตัวแปรที่ผิดปกติมาก คนอื่น ๆ อีก 10 คนก็ทำแบบเดียวกันนี้เอง? ใช่แล้ว ... (หมายเหตุ: นักวิจารณ์ที่โดดเด่นคนหนึ่งของการแปลพระคัมภีร์ New World อ้างว่าเป็น KJV knockoff และหลักฐานก็คือข้อผิดพลาดทางไวยากรณ์ที่หายากใน KJV อยู่ใน NWT "ใหม่เอี่ยม" ดังนั้นจึงมีแบบอย่างสำหรับการทำงานนี้ )
Nick P

7
จุดหนึ่งที่ควรทราบเกี่ยวกับ "การเว้นวรรคลายน้ำ" คือถ้า IDE (ใหม่) จัดรูปแบบโค้ดของคุณ (เช่น VS C # / Eclipse) รหัสเหล่านี้จะหายไป
Alvin Wong

63

หากเพื่อนร่วมชั้นของคุณขโมยรหัสของคุณจากเว็บไซต์อัปโหลดฉันจะเข้ารหัสการบ้านของคุณและส่งรหัสให้ครูทางอีเมล คุณสามารถทำได้ด้วย PGP หากคุณต้องการที่จะซับซ้อนหรืออะไรง่ายๆอย่างไฟล์ Zip ที่มีรหัสผ่าน

แก้ไข: PGP จะช่วยให้คุณเข้ารหัส / เซ็นชื่อโดยไม่ต้องเปิดเผยคีย์ของคุณ แต่คุณไม่สามารถเอาชนะความเรียบง่ายในการตัดไฟล์ Zip ด้วยรหัสผ่านได้ดังนั้นเพียงแค่เลือกคีย์ใหม่ทุกการบ้าน สวยงามในความเรียบง่าย :)


2
นี่คือ apporach ที่ง่ายที่สุด
Jon Raynor

2
คุณพิสูจน์ได้อย่างไรว่ารหัสเป็นของคุณ ฉันสามารถขโมยรหัสของคุณและรูดซิปราวกับว่ามันเป็นของฉัน
gaborsch

4
@GaborSch ถ้าฉันอัปโหลดรหัสของฉันไปยังไฟล์ซิปพร้อมรหัสผ่านฉันจะเห็นเวอร์ชันที่ถูกขโมยของคุณไม่นานหลังจากที่ดวงอาทิตย์เสียชีวิต (ด้วยรหัสผ่านที่เลือกอย่างเหมาะสม)
SeanC

11
คุณสามารถพิสูจน์ได้ว่าเป็นรหัสของคุณโดยใส่คีย์ถอดรหัสสำเร็จ
โจนาธานเอส. ฟิชเชอร์

10
แน่นอนว่ามีช่องโหว่มากมายในทางทฤษฎี แต่ในความเป็นจริงแล้วไม่น่าจะมีใครเข้าถึงไฟล์ของเขาได้หากเขาส่งมันเข้ารหัส: มีข้อ จำกัด ว่าพวกเขาจะไปได้ไกลแค่ไหนและมีขีดจำกัดความสามารถของพวกเขา หากพวกเขาไม่สามารถจัดการเขียน GUI สำหรับทำการบ้านได้โอกาสที่พวกเขาจะไม่เจาะรหัสผ่านหรือแฮ็คเข้าสู่คอมพิวเตอร์ทุกคนในไม่ช้า
Supr

39

หากคุณให้ซอร์สโค้ดแก่ครูเพียงแค่เพิ่มserialVersionUIDไฟล์ในชั้นเรียนของคุณซึ่งเป็นชื่อของคุณในเวอร์ชันเข้ารหัส คุณสามารถถอดรหัสให้ครูด้วยตัวคุณเอง

นั่นไม่ได้มีความหมายอะไรสำหรับคนอื่น ๆ แต่สำหรับคุณ คุณสามารถพูดได้ว่าเป็นรหัสที่สร้างขึ้นหากพวกเขาขโมยไปอาจไม่ต้องกังวลกับการแก้ไขเลย

หากคุณต้องการทำอย่างมีสไตล์คุณสามารถใช้เคล็ดลับนี้หากคุณพบเมล็ดพันธุ์แบบสุ่มที่สร้างชื่อของคุณ :) นั่นจะเป็นหมายเลขของคุณและทุกที่ที่ปรากฏจะพิสูจน์ได้ว่าคุณเป็นคนสร้างรหัสนั้น


5
ขโมยอาจทำการเปลี่ยนแปลงรหัสเครื่องสำอางเพื่อให้การโจรกรรมน้อยลง UID เวอร์ชันอนุกรมจะเปลี่ยนเครื่องสำอางได้ง่าย
Andy Thomas

3
@GaborSch หนึ่งที่มี serialVersionUID สมบูรณ์แบบขอบคุณผู้จัดสรร
LoremIpsum

2
@ AndyThomas-Cramer ใช่ฉันควรตั้งโปรแกรมเมธอดด้วยชื่อที่เข้ารหัสของฉันและถ้ามันถูกลบโปรแกรมจะไม่ทำงานฮ่าฮ่า
LoremIpsum

2
@ AndyThomas-Cramer ในทางทฤษฎีใช่ ในทางปฏิบัติคนขี้โกงส่วนใหญ่มักเกียจคร้านและทำเพียงขั้นต่ำที่คิดว่าจำเป็นเท่านั้น (อาจแทนที่//written by WarGodNTด้วย//Written by ImaCheata) ยังไม่น่าเป็นไปได้ที่หลายคนรู้ว่า svUID สามารถทำลายได้ แม้ว่าบางคนจะฉลาดขนาดนั้นก็ตาม หากชั้นเรียนส่วนใหญ่โกงไม่กี่คนก็เกือบจะถูกจับได้ อย่างน้อยก็น่าจะเพียงพอที่จะโน้มน้าวให้ครูยกเลิกกระบวนการของเขาได้
Dan Is Fiddling By Firelight

3
@WilQu: คุณจะไม่เซ็นรหัสของคุณเองด้วยชื่อของคนอื่นหรือคีย์ส่วนตัวใช่ไหม
Unslander Monica

35

เหตุการณ์นี้เกิดขึ้นกับนักเรียนคู่หนึ่งของฉันที่อาศัยอยู่ในอพาร์ตเมนต์เดียวกัน คนหนึ่งขโมยซอร์สโค้ดจากดิสก์ที่ทิ้งไว้ในลิ้นชักโต๊ะ

ขโมยปรับเปลี่ยนแหล่งที่ถูกขโมยเล็กน้อยเพื่อไม่ให้เห็นได้ชัด ฉันสังเกตเห็นความคล้ายคลึงกันของโค้ดและตรวจสอบแหล่งที่มาในตัวแก้ไข บางบรรทัดมีช่องว่างเพิ่มเติมที่ปลาย แหล่งที่มาของนักเรียนแต่ละคนมีช่องว่างจำนวนเท่ากัน

คุณสามารถใช้ประโยชน์จากสิ่งนี้เพื่อเข้ารหัสข้อมูลโดยไม่ต้องเปิดเผย คุณสามารถเข้ารหัสชื่อย่อหรือรหัสนักศึกษาของคุณที่ส่วนท้ายของบางบรรทัดโดยเว้นวรรค

โจรมักจะทำการเปลี่ยนแปลงความสวยงามกับรหัสที่มองเห็นได้ แต่อาจพลาดอักขระที่มองไม่เห็น

แก้ไข:

เมื่อนึกถึงเรื่องนี้อีกหน่อยคุณสามารถใช้ช่องว่างและแท็บเป็นรหัสมอร์สและ dahs และใส่ชื่อของคุณต่อท้ายหลายบรรทัด ขโมยสามารถลบจัดลำดับใหม่หรือพิมพ์บรรทัดบางบรรทัดใหม่โดยไม่ทำลายข้อมูลประจำตัวของคุณ

แก้ไข 2:

"Whitespace Steganography" เป็นคำสำหรับการปกปิดข้อความในช่องว่าง Googling เผยให้เห็นการใช้งานโอเพ่นซอร์สนี้ย้อนหลังไปถึงยุค 90 โดยใช้การเข้ารหัส Huffman แทนรหัสมอร์ส


2
ยินดีขอบคุณสำหรับคำถาม เปิดโอกาสให้ฉันคิดการเว้นวรรครหัสมอร์ส
Andy Thomas

1
Java IDE ใด ๆ สามารถจัดรูปแบบรหัสโดยลบอักขระที่มองไม่เห็นทั้งหมด ;-) ยังคงเป็นแนวคิดรหัสมอร์สที่ดี :-)
Prakash K

5
ส่วนขยาย: ในสตริงลิเทอรัลใด ๆ ให้แทนที่ช่องว่างบางส่วนด้วยอักขระที่ดูเหมือนว่าง เช่นเดียวกับอักขระ # 255 ใน ASCII หรือ "ช่องว่างที่ไม่สามารถแก้ไขได้" ใน Unicode มือใหม่ส่วนใหญ่จะไม่ทราบถึงความแตกต่างและจะช่วยให้คุณระบุได้ว่าใคร (น่าจะ!) ขโมยแหล่งที่มาของคุณ
TheBlastOne

@PrakashK - ใช่ว่าจะตอบโต้มาตรการนี้ การใช้มาตรการร่วมกันน่าจะดีที่สุด
Andy Thomas

@TheBlastOne - ความคิดที่ดี ไม่ได้ระบุตัวตนของคุณด้วยตัวเอง แต่จะไม่สูญหายไปหากขโมยฟอร์แมตใหม่
Andy Thomas

19

ดูเหมือนว่าจะเป็นปัญหาในการดูแลระบบไอทีสำหรับฉัน นักเรียนแต่ละคนควรมีพื้นที่อัพโหลดของตัวเองซึ่งนักเรียนคนอื่นไม่สามารถเข้าถึงได้

ครูจะอยู่ในระดับที่สูงขึ้นสามารถเข้าถึงโฟลเดอร์อัปโหลดของนักเรียนแต่ละคนได้ หากเป็นไปไม่ได้ให้ใช้คำตอบ @exabrial เนื่องจากเป็นวิธีที่ง่ายที่สุด


9

สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือเพียงแค่ซิปซอร์สโค้ดพร้อมรหัสผ่านและส่งรหัสผ่านไปทางอีเมลถึงครู

แก้ไขปัญหา.


2
+1 วิธีแก้ปัญหาง่ายๆ อย่าเกินวิศวกร แต่ตรวจสอบกับศาสตราจารย์ว่าเขาโอเคกับเรื่องนี้หรือไม่
Eduardo

6

ใช้การกระจาย (= สแตนด์อโลน) ระบบการควบคุมเวอร์ชันเช่นคอมไพล์ อาจจะมีประโยชน์ด้วย

ประวัติเวอร์ชันที่มีชื่อของคุณและวันที่อาจมีความน่าเชื่อถือเพียงพอ


2
แต่ OP ไม่ล้มเหลวในการพิสูจน์ว่าแหล่งที่มาของเขาถูกสร้างขึ้นโดยเขา เขามีช่วงเวลาที่ยากลำบากในการพิสูจน์ว่าเพื่อนร่วมโรงเรียนใช้แหล่งข้อมูลของเขาเพื่อพวกเขา
TheBlastOne

2
VCS แบบกระจายนั้นค่อนข้างซับซ้อน ผู้เขียนต้องการทั้งหมดคือการพิสูจน์ความเป็นต้นฉบับของเนื้อหาและ / หรือการคัดลอก สิ่งนี้สามารถทำได้ด้วยกลไกการส่งไฟล์ใด ๆ ที่ประทับเวลาการส่งระบุผู้ส่งและไม่อนุญาตให้นักเรียนลบการส่ง สิ่งนี้สามารถทำได้ด้วยสิ่งง่ายๆเช่น FTP หรือเว็บเซิร์ฟเวอร์
Nick P

1
เป็นเรื่องง่ายมากที่จะเขียนสคริปต์ที่จะสแกนบันทึกการกระทำและสร้าง repo ใหม่ด้วยประวัติเดียวกัน แต่เป็นผู้ใช้ที่แตกต่างกัน
mikerobi

@mikerobi git filter-branchถูกสร้างขึ้นมาเพื่อของบ้าๆแบบนั้นมันไม่น่าจะง่าย
Izkata

@Izkata ฉันไม่ได้พิจารณาถึงความเป็นไปได้ในการเปลี่ยนประวัติการแก้ไข ฉันกำลังคิดถึงสคริปต์ที่ตรวจสอบการแก้ไขครั้งแรกและส่งไปยัง repo อื่นจากนั้นตรวจสอบการแก้ไขครั้งที่สองและแก้ไขการกระทำ repo ใหม่ทำซ้ำ คล้ายกับเครื่องมือบางอย่างในการแปลงจาก VCS หนึ่งไปยังอีกงานหนึ่ง
mikerobi

3

โดนขโมยอะไร

  • ที่มา? คุณสามารถใส่สตริงแบบสุ่มได้ (แต่สามารถเปลี่ยนแปลงได้) คุณยังสามารถลองเพิ่มพฤติกรรมพิเศษที่คุณรู้เท่านั้น (การกดแป้นพิเศษจะเปลี่ยนแถวสี) จากนั้นคุณสามารถถามครูว่า "คนอื่นรู้จักคำสั่งผสมพิเศษนี้ไหม" วิธีที่ดีที่สุดคือทำให้โปรแกรมหยุดทำงานหากไม่มีไฟล์ว่างเปล่าที่ไม่มีประโยชน์อยู่ในที่เก็บถาวรหลังจากทำกิจกรรมไปแล้ว 5 นาทีเพื่อนร่วมโรงเรียนของคุณจะขี้เกียจเกินไปที่จะรอเวลานี้

  • ไบนารี? แค่เปรียบเทียบการตรวจสอบของแต่ละ. class ก็เพียงพอแล้ว (เพื่อนในโรงเรียนของคุณขี้เกียจเขียนไฟล์ชั้นเรียนซ้ำ)


2

เพียงโพสต์วิธีแก้ปัญหาของคุณในนาทีสุดท้าย สิ่งนี้จะไม่ให้เวลาใครลอกเลียนแบบ

และส่งคำติชมไปยังผู้ดูแลระบบเพื่อไม่อนุญาตให้นักเรียนดูงานของนักเรียนคนอื่น ๆ


1

หากคุณอัปโหลดไฟล์ในรูปแบบ. zip ด้วยการเข้ารหัสรหัสผ่านทุกคนก็สามารถถอดรหัสรหัสผ่านได้โดยดาวน์โหลดไฟล์. zip และให้ cpu ของพวกเขาเรียกใช้แบบสอบถามเป็นล้านรายการหากพวกเขาเป็นคนขี้โกงรายใหญ่ น่าเสียดายที่บางอย่างทำได้ง่าย

นักเรียนคนอื่น ๆ สามารถดูแหล่งที่มาของคุณบนเซิร์ฟเวอร์ที่ใช้ร่วมกันได้ ครูควรให้ไดเรกทอรีเข้ารหัสรหัสผ่านของคุณเองเพื่ออัปโหลด สามารถทำได้ง่ายๆเพียงแค่เพิ่มโดเมนย่อย แต่บางทีครูอาจอนุญาตให้คุณอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ของคุณเองเพื่อให้เขาเข้าถึงได้ที่นั่น

นอกจากนี้ยังสามารถทำให้สคริปต์สับสนเพื่อให้มี document.write ('หน้านี้เขียนโดย xxxxx') บังคับให้ใครก็ตามที่คัดลอกงานของคุณไม่สามารถลบเครดิตได้เว้นแต่จะถอดรหัสก่อน แต่คำตอบที่แท้จริงคือโรงเรียนของคุณต้องให้นักเรียนแต่ละคนมีไดเรกทอรีป้องกันด้วยรหัสผ่านของตนเอง


0

ในกรณีของฉันครูของฉันมาพร้อมกับแนวทางที่ดีกว่า คำถามที่พวกเขาระบุมีบางอย่างเกี่ยวข้องกับหมายเลขทะเบียนของเรา เช่น:

ข้อมูลเข้าสู่ฟังก์ชัน / ทฤษฎีคือหมายเลขทะเบียนของเราซึ่งจะแตกต่างกันไปสำหรับนักเรียนแต่ละคน

ดังนั้นคำตอบหรือแนวทางในการแก้ปัญหาจึงค่อนข้างแตกต่างจากนักเรียนแต่ละคนสิ่งนี้ทำให้นักเรียนทุกคนจำเป็นต้องทำการบ้านด้วยตัวเองหรืออย่างน้อยก็ต้องรู้วิธีแฮ็ควิธีการด้วยการลงทะเบียนของตนเอง [มัน อาจจะยากกว่าการเรียนรู้น้อยกว่านั้น)].

Hope your lecturer will read this thread before his next tutorial :D
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.