ไปที่เนื้อหา


รูปภาพ

เรื่องการ pack ไฟล์ของ .net


  • กรุณาลงชื่อเข้าใช้เพื่อตอบกระทู้
มี 4 โพสต์ตอบกลับกระทู้นี้

#1 X CroSs

X CroSs

    Truebot Co-Developer

  • Root Administrator
  • 102427 โพสต์
  • Gender:Male

โพสต์เมื่อ 22 July 2007 - 10:15:22 AM

เท่าที่รู้ๆมา เกือบๆทุกภาษาที่ compile ออกมาเปน native code/machine code มันจะสามารถเอามา pack เพื่อลดขนาดไฟล์ และ
ป้องกันการ debug/decompile ได้ในระดับนึง แต่ .net มัน compile ออกมาเปน ms il code คือคล้ายๆ กะ byte code ของ java
ที่ต้องรันบน java virtual machine แต่ของ .net รันบน .net framework แทน ซึ่งด้วยความที่ ms il มันน่าจะมีมาตรฐานออกมา
เพื่อให้หลายๆคนพัฒนาตัว .net framework ของ platform อื่นได้ เลยกลายเปนว่า ms il เลย decompile ได้ง่ายๆ เลย โปรแกรม
pack ไฟล์exe ทั่วๆไป ก้อใช้ไม่ได้ เคยใช้บางตัวมันก้อซ่อนได้แค่ชื่อ properties/methods แต่ก้อไม่ได้เข้าระหัสทั้งหมด

ใครพอมีประสพการณ์ด้านนี้ หรือ มีความคิดเห็นยังไง เชิญมาแลกเปลี่ยนกันหน่อยคับ wink.gif

ts.gif

manutd18wm.png


#2 AssertionFailed

AssertionFailed

    Exclusive Member

  • Exclusive Programmer
  • 10116 โพสต์

โพสต์เมื่อ 22 July 2007 - 07:20:07 PM

ล่มซะนานจนลืม smile.gif

เดี๋ยวนี้คนส่วนหนึ่งแพคไฟล์ ก็เพียงเพือลดขนาดเพื่อง่ายต่อการแชร์ผ่านเครือข่าย
กับช่วยเรื่องเวลาตอนรันไทม์ นิดนึง
ซึ่งก็คงไม่มีปัญหากับ .net มั้งครับ
เรื่องการป้องกันไม่อยากไปคิด เพราะมันกันไม่ได้
แม้แต่คนที่ออกแบบการแพค ทั้งฟรีและขาย บางแห่งก็บอกตรงๆ เลยว่า
ของเขากันได้ ในระดับนึง กันเซียนไม่ได้
(จำไม่ได้ว่าใครพูดนะครับ อาจจะ yodas หรือ asprotect หรือเปล่าไม่แน่ใจ)
ส่วนพวกที่บอกกันได้ 100% บอกได้คำเดียว โม้ ครับ
ตราบใดที่เครื่องรันได้ คนก็แกะได้

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

อีกอย่าง ที่ผมไม่ชอบ คือ ประสิทธิภาพ
ที่เราเคยทำมา
โค้ด->คอมไพล์->ระบบปฏิบัติการ->ฮาร์ดแวร์

ปัญหาที่ปวดหัว คือ ต่างเครื่องต่างโค้ด
ด้วยแนวคิดของสองระบบที่ว่ามา(.net กับ จาวา)
โด้ดเดียว->คอมไพล์->ตัวกลาง->ระบบปฏิบัติการ->ฮาร์ดแวร์

ผมว่าใช้แนวคิดเดิมน่าจะดีกว่า ปล่อยให้เรืองปวดหัวอยู่ที่คอมไพล์เลอร์
โค้ดเดียว->คอมไพล์->ระบบปฏิบัติการ->ฮาร์ดแวร์

โค้ดเดียวที่ว่า อาจใช้ภาษาใหม่ หรือภาษาเก่า แต่เขียนตามข้อกำหนด

การใช้ตัวกลาง นับวันจะทำให้อ้วน เพราะการที่ต้องคงของเก่า และเพิ่มของใหม่
คงของเก่า เพื่อให้โปรแกรมเก่ารันได้
เพิ่มของใหม่ เพื่อให้ได้ประสิทธิภาพสูงสุด
ฯลฯ (แค่นี้ดีกว่า เดี๋ยวหาว่ามีอคติ)

แต่ผมก็เห็นด้วย ที่มันเหมาะสำหรับงานบางอย่าง
แต่ผมไม่อยากเห็นคนเห่อวิ่งตามกัน อะไรๆ ก็จาวา อะไรๆ ก็ .net

อย่างเรื่องของคำว่า trend ใหม่ ฟังดูดีนะ
ถ้ามองมุมกลับ ก็เหมือน ขี้เกียจคิด(จะบอกว่า ไร้ความคิด ก็จะแรงไป) ทำตามเขาง่ายดี
เดินดูห้างคอมฯ ตอนนี้ ดำวาว ขาววาว เต็มร้าน
ที่เคยเห็น ซัมซุง นำก่อนนะ แต่ใครบุกเบิกจริงๆ ไม่รู้

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

เอ๊ะนอกเรื่องหรือเปล่านิ laugh.gif laugh.gif laugh.gif
พอดีกว่า

#3 X CroSs

X CroSs

    Truebot Co-Developer

  • Root Administrator
  • 102427 โพสต์
  • Gender:Male

โพสต์เมื่อ 23 July 2007 - 01:57:50 AM

ด้วยความที่ผมทำงานกับ vb6 มาก่อนอ่ะครับ เลยชอบ vb.net กะ c#.net เปนพิเศษ ^^ ด้วยความเปน oop
ด้วย gabage collector (ที่ลอกชาวบ้านเค้ามา) มันกับสามารถๆใหม่ๆ มันทำให้ดีกว่า vb6 อยู่หลายขุมทีเดียว

java นี่ผมเห็นด้วยกับตัว byte code นะ เพราะมานเน้น platform independent คือเขียนใช้บน net / windows / linux / mobile ได้หมด
ต่างกะ .net ที่แทบจะใช้ได้แค่บน windows อย่างเดียว (มี c# มั้งที่มี framework บน linux)
ถึง .net framework จะช่วยแก้ปัญหา dll hell ได้ก้อจริงอยู่ แต่ก้อน่าจะทำให้ deploy มาเปน exe ที่ใช้บนเครื่องที่ไม่มี framework ได้
เหมือน compiler ที่เก่าหน่อยอย่าง vb6 / delphi หรือ vc++ อาจจะ แยก dll ที่จำเปนแปะมา หรือ รวมไปใน exe เลยก้อได้

เรื่อง pack ไฟล์ที่ถามๆไว้ เพราะเพื่อนเคยโดนเอา โปรแกรม ที่เขียนกะ vb6 (ซึ่งมี tool สำหรับ decompile เยอะมัก) ไป revserse engineer
แล้วทำใหม่เป็น c# หน้าตาโปรแกรม แทบจะหมือนกันเด๊ะ ต่างกันที่ ตัวที่ copy ไป สวยกว่า เพราะใช้ interface ของ .net
ที่รู้เพราะลูกเล่นอะไรหลายๆอย่าง มันดูแล้วรู้ว่าเราเปนคนคิดเอง เค้าคงไม่เลียนแบบซะทุกอย่างแน่นอน

อย่างน้อยก้อกันพอจะป้องกันพวกรู้ครึ่งๆกลางๆ ได้บ้าง ไอพวกเซียนๆระดับเทพไม่ต้องไปพูดถึง ขนาด tool pack แบบเก็บตังแพงๆ ยังเอาไม่อยู่เลย

ปล.host มีปัญหาอ่ะคับ แล้วผมไม่ได้ดูเองซักที เค้าเลยแก้ให้ไม่ได้

ts.gif

manutd18wm.png


#4 JackY

JackY

    หนี Microsoft ไม่พ้นซักทีเรา

  • Exclusive Programmer
  • 10072 โพสต์
  • Location:ซอกเล็กๆในหัวใจเธอ

โพสต์เมื่อ 29 September 2007 - 12:30:59 PM

เรื่องการเลือกใช้ภาษาไหนในการพัฒนาโปรแกรมนั้นผมว่ามันขึ้นอยู่กับความชอบส่วนตัวของแต่ละท่านน่ะครับ

ผมเองก็ยอมรับว่าโตมากะการใช้เดลไฟ โดยเฉพาะช่วงแรกๆนี่เป็นพวกแอนตี้ MS เลยนะครับ แบบว่าไม่ค่อยอยากแตะมัน แต่บางโอกาสก็ต้องรับ Job ที่ใช้ VB เลยต้องปรับมุมมองของตัวเองหน่อย เพราะว่าตราบใดที่เรายังใช้ OS ที่เป็น Windows อยู่ล่ะก็ชีวิตคุณหนี MS Technology ไม่พ้นแน่ๆ โบราณบอกว่าน้ำเชี่ยวอย่าเอาเรือขวาง ก็เลยต้องเรียนรู้เทคโนโลยีใหม่ๆเพิ่มเติม

หลายคนอาจจะท้วงว่ารู้หลายๆภาษาแต่รู้ไม่ถึงแก่นก็ไร้ประโยชน์ ข้อนี้ผมไม่ค้านแต่ด้วยชีวิตที่ต้องหากินกะการเขียนโปรแกรม เห็นได้ว่าตอนนี้ 80% ของงานที่รับมีแต่ Java And .NET Programmer แทบทั้งนั้น แล้วเราจะทนอยู่กับของเดิมๆบน Native Win32 ในเดลไฟไปได้อีกซักเท่าไหร่ ตอนนี้ Vista ออกมา ถ้าผมจำไม่ผิดเห็นว่ามี api บางตัวที่เปลี่ยนไป(อันนี้ไม่ชัวร์นะครับ) แล้วต่อไป OS ทั้งหมดก็คงเปลี่ยนมาเป็น Vista แล้วโปรแกรมเดิมๆ จะมีปัญหาหรือไม่ อันนี้น่าคิดนะครับ

สรุปดีกว่าว่าส่วนตัวผมนั้นเห็นว่าการตามเทคโนโลยีให้ทันดีกว่าครับ

#5 JackY

JackY

    หนี Microsoft ไม่พ้นซักทีเรา

  • Exclusive Programmer
  • 10072 โพสต์
  • Location:ซอกเล็กๆในหัวใจเธอ

โพสต์เมื่อ 01 October 2007 - 10:29:46 AM

จากที่คุณจูนเปิดประเด็นเรื่องการทำ reverse engineering ตัว execute file พอดีผมไปเปิดหนังสือ vb 2005 ที่โหลดมานานแล้ว(พอดีตอนนี้กะจะเริ่มพัฒนาด้วย vb2005) ก็พบว่าตัว VS2005(ที่ไม่ใช่ version express) จะมี Tools ตัวนึงมาช่วยให้การทำ reverse engineering ทำได้ยากขึ้น Tools ตัวนี้ชื่อว่า Dotfuscater ครับ ลองๆใช้ดูนะครับ แต่ในหนังสือบอกว่ามันช่วยให้โค้ดไล่ยากขึ้นเท่านั้นเอง อาจจะกันพวกเซียนๆไม่ได้ แต่อย่างว่าพวกเซียนๆมันคงไม่มาแฮคโปรแกรมกระจอกๆที่เราเขียนหรอกมั้ง ฮ่าๆๆ




0 สมาชิกกำลังอ่านกระทู้นี้

0 สมาชิก, 0 ผู้เยี่ยมชม, 0 ผู้ใช้งานที่ซ่อนตัว