Read-only archive. Login and posting are unavailable.
View Full Version : cùng khám phá mã nguồn.
talailata_01
14-01-2008, 19:56
lại lạc chủ đề của voz .Các anh em này bây giờ mã nguồn mở phổ biến rồi nhưng mình lại ko biết làm sao có thể xem mã nguồn của một chương trình như thế nào làm sao có thể xem đc nó đây.Có chương trình nào có thể đọc đc mã nguồn của một chương trình khác ko.Chẳnng hạn như thay đổi mã nguồn của open office .Thanks :haha:
lại lạc chủ đề của voz .Các anh em này bây giờ mã nguồn mở phổ biến rồi nhưng mình lại ko biết làm sao có thể xem mã nguồn của một chương trình như thế nào làm sao có thể xem đc nó đây.Có chương trình nào có thể đọc đc mã nguồn của một chương trình khác ko.Chẳnng hạn như thay đổi mã nguồn của open office .Thanks :haha:
Bác lên trang chủ của nó mà tải :go:
Chừng nào Microsoft công bố mã nguồn Windows mới thú vị chứ :rofl:
talailata_01
14-01-2008, 20:05
bác nói vậy khó hiểu quá thế tất cả các chương trình đều có mã nguồn trên đó sao ạ.Anh em nào biết chỉ "dáo" giùm "cí".Thanks
emtraisieunhan
14-01-2008, 20:13
Oài bác chưa hiểu tí gì về mã nguồn mà đòi sửa nó là sao ta...:oh:...
Cái gì cũng phải củ từ...lmao
lại lạc chủ đề của voz .Các anh em này bây giờ mã nguồn mở phổ biến rồi nhưng mình lại ko biết làm sao có thể xem mã nguồn của một chương trình như thế nào làm sao có thể xem đc nó đây.Có chương trình nào có thể đọc đc mã nguồn của một chương trình khác ko.Chẳnng hạn như thay đổi mã nguồn của open office .Thanks :haha:
Chịu với bạn, ý tưởng thì lớn trong khi hình như bạn chưa có khái niệm gì ... muốn sửa mã nguồn của những chương trình nguồn mở, ít nhất bạn phải ... PRO cái ngôn ngữ lập trình đi đã ... giờ còn hỏi chương trình nào xem được mã nguồn của nó thì :canny: :stick:
PS: NOTEPAD đi :byebye:
Bác lên trang chủ của nó mà tải :go:
Chừng nào Microsoft công bố mã nguồn Windows mới thú vị chứ :rofl:
2000 và XP đã công bố nhưng không rộng rãi :look_down:
Còn chuyện xem mã nguồn thì coi trình độ mình có đủ để coi nó hay không thôi.:pudency:
tontan2004
14-01-2008, 21:57
buồn cười nhỉ, nói thật có quăng code ra mà không có document thì cũng bể đầu mà chết(không tính soft quy mô nhỏ). Cùng lắm là chỉnh sửa, hack mode vớ vẩn gì đó thôi.
.Net, java để có các trình decompile đó.
supermad1234
15-01-2008, 02:16
lại lạc chủ đề của voz .Các anh em này bây giờ mã nguồn mở phổ biến rồi nhưng mình lại ko biết làm sao có thể xem mã nguồn của một chương trình như thế nào làm sao có thể xem đc nó đây.Có chương trình nào có thể đọc đc mã nguồn của một chương trình khác ko.Chẳnng hạn như thay đổi mã nguồn của open office .Thanks :haha:
Các software khi phát hành thì đều được đóng gói (packaged) cả rồi, mình không thể nào xem được cấu trúc và chỉnh sửa được. Do đó thường thì các phần mềm nguồn mở này sẽ cung cấp các bộ SDK (Software Development Kit) để người dùng có thể chỉnh sửa tùy thích. Tuy nhiên nói vắn tắt thì dễ hiểu vậy thôi, còn thực hiện thì...:(( :((
bro chả hiểu gì về mã nguồn mở mà đòi khám phá :(
các phần mềm open source thường thì nó cung cấp link download cả bộ binary (dùng để chạy chương trình) và cả source code. Bro có thể lên http://sourceforge.net, đây là 1 trong những cộng đồng mã nguồn mở có thể coi là lớn nhất.
Bất kể chương trình là mã nguồn mở hay đóng, một khi đã compile thành binary thì tức là nó đã trở thành ngôn ngữ máy (hoặc 1 dạng ngôn ngữ trung gian mà ta không đọc được). Muốn lấy source code của mấy cái này thì cần dùng decompiler, tuy nhiên hiện tại người ta cũng phát minh ra nhiều cách chống decompile để bảo vệ source code.
SDK không ăn nhằm gì tới vấn đề mã nguồn đóng hay mở. SDK là hổ trợ cho 3rd party company có thể viết thêm các add-on hoặc extension cho 1 chương trình hoặc 1 hệ thống có sẵn. Một bộ SDK thường bao gồm document, các thư viện (dll) và tool. SDK không phải nhằm mục đích để người dùng có thể chỉnh sửa tùy ý 1 chương trình nào đó.
Các project mã nguồn mở thường do nhiều hơn 1 người thực hiện. Nếu project được quản lý tốt (vd các prj trên sourceforge thì ngay từ đầu người ta đã đưa ra các quy tắc về lập trình để mọi người làm theo, chỉ cần có kinh nghiệm về ngôn ngữ lập trình đó và xem được các tài liệu liên quan (thường thì tài liệu cũng có sẵn cho xem luôn) thì việc đọc code không có gì là phức tạp đâu.
...thường thì các phần mềm nguồn mở này sẽ cung cấp các bộ SDK (Software Development Kit) để người dùng có thể chỉnh sửa tùy thích...
Tra hộ tớ từ điển xem Software Development Kit là cái gì cái!:oh:
Bây giờ tớ lấy bộ cài NetBeans về rồi dùng JavaEE SDK 5 Update 4 xem mã nguồn của NetBeans được không vậy? :haha:
supermad1234
15-01-2008, 11:53
bro chả hiểu gì về mã nguồn mở mà đòi khám phá :(
các phần mềm open source thường thì nó cung cấp link download cả bộ binary (dùng để chạy chương trình) và cả source code. Bro có thể lên http://sourceforge.net, đây là 1 trong những cộng đồng mã nguồn mở có thể coi là lớn nhất.
Bất kể chương trình là mã nguồn mở hay đóng, một khi đã compile thành binary thì tức là nó đã trở thành ngôn ngữ máy (hoặc 1 dạng ngôn ngữ trung gian mà ta không đọc được). Muốn lấy source code của mấy cái này thì cần dùng decompiler, tuy nhiên hiện tại người ta cũng phát minh ra nhiều cách chống decompile để bảo vệ source code.
SDK không ăn nhằm gì tới vấn đề mã nguồn đóng hay mở. SDK là hổ trợ cho 3rd party company có thể viết thêm các add-on hoặc extension cho 1 chương trình hoặc 1 hệ thống có sẵn. Một bộ SDK thường bao gồm document, các thư viện (dll) và tool. SDK không phải nhằm mục đích để người dùng có thể chỉnh sửa tùy ý 1 chương trình nào đó.
Các project mã nguồn mở thường do nhiều hơn 1 người thực hiện. Nếu project được quản lý tốt (vd các prj trên sourceforge thì ngay từ đầu người ta đã đưa ra các quy tắc về lập trình để mọi người làm theo, chỉ cần có kinh nghiệm về ngôn ngữ lập trình đó và xem được các tài liệu liên quan (thường thì tài liệu cũng có sẵn cho xem luôn) thì việc đọc code không có gì là phức tạp đâu.
Thế ra mình hiểu nhầm :pudency: :pudency: , thanks Jay đã giải thích rõ nhá :byebye: :byebye:
talailata_01
15-01-2008, 20:13
thật sự cái vấn đề này mình chưa hiểu rõ lắm đâu ,những chương trình mã nguồn mở mọi người vẫn chỉnh sửa đc đó thôi vậy họ chỉnh sửa ra sao và họ chỉnh sửa nó như thế nào, mà làm sao họ lại thấy đc mã nguồn của chương trình đó nhỉ.Mọi người giải thích cho mình cái.Thanks anh em nha.Ngốc như mình khổ quá.
hanachacha
15-01-2008, 20:17
thật sự cái vấn đề này mình chưa hiểu rõ lắm đâu ,những chương trình mã nguồn mở mọi người vẫn chỉnh sửa đc đó thôi vậy họ chỉnh sửa ra sao và họ chỉnh sửa nó như thế nào, mà làm sao họ lại thấy đc mã nguồn của chương trình đó nhỉ.Mọi người giải thích cho mình cái.Thanks anh em nha.Ngốc như mình khổ quá.
đọc cái bài ở trên mà vẫn chưa hiểu :surrender: đi học lại từ căn bản đi, chừng nào tự lập trình vững thì quay trở lại chủ đề này.
phamthaihoa
15-01-2008, 21:04
Chắc bạn này chưa đọc mã nguồn mấy :)
Cái chương trình còi còi vài ngàn dòng đã đau hết cả đầu rồi, cho mã nguồn Windows có mà đứt ah.
Nhớ hồi ngồi hack mã nguồn con vi điều khiển cỡ 1.5K dòng ASM, đọc xong nhìn thấy ASM là sợ :(( :stick:
beatƖemania
15-01-2008, 21:08
thật sự cái vấn đề này mình chưa hiểu rõ lắm đâu ,những chương trình mã nguồn mở mọi người vẫn chỉnh sửa đc đó thôi vậy họ chỉnh sửa ra sao và họ chỉnh sửa nó như thế nào, mà làm sao họ lại thấy đc mã nguồn của chương trình đó nhỉ.Mọi người giải thích cho mình cái.Thanks anh em nha.Ngốc như mình khổ quá.
họ thấy được mã nguồn của chương trình nguồn mở bởi vì chính tác giả của chương trình đó up mã nguồn lên :stick:
Nói mã nguồn mở vậy thôi chớ cũng chả dễ ăn đâu ... đọc để hiểu thôi cũng là 1 vấn đề ... :-<
Down đống mã nguồn về rồi compile cho nó chạy được là mừng rồi, chứ ở đó mà đòi sửa, keke.
talailata_01
16-01-2008, 20:55
như các bạn nói thì là không có cách nào để thấy mã nguồn của một chương trình àh,vậy thì yên tâm rồi.
như các bạn nói thì là không có cách nào để thấy mã nguồn của một chương trình àh,vậy thì yên tâm rồi.
Có vẻ bạn này chưa hiểu mã nguồn là gì thì phải :-s
Nếu nhà nhà đều có thể chỉnh sửa mã nguồn như bạn nghĩ thì chắc các bạn học lập trình phí xiền vô ích bao lâu nay rài :sosad:
chỉnh sửa bằng assembly đi :D , dịch ngược ra assembly đc đó :D
talailata_01
17-01-2008, 20:16
thế như các bạn nói thì là ko thay đổi đc một chương trình khi đã chạy đúng ko .Thế nhưng XP vẫn bị mọi người thay đổi đó thôi.Chẳng hạn như giả lập giao diện vista trên xp.Trong khi xp là mã nguồn đóng các bạn giải thích cho mình cái đoạn này dùm .
hanachacha
17-01-2008, 20:21
thế như các bạn nói thì là ko thay đổi đc một chương trình khi đã chạy đúng ko .Thế nhưng XP vẫn bị mọi người thay đổi đó thôi.Chẳng hạn như giả lập giao diện vista trên xp.Trong khi xp là mã nguồn đóng các bạn giải thích cho mình cái đoạn này dùm .
mấy cái đó đâu có sửa mã nguồn của XP đâu :surrender: chỉ là chỉnh lại mấy cái resource.Nói thật hình như bạn chưa có căn bản gì về lập trình cả :nosebleed:
Down đống mã nguồn về rồi compile cho nó chạy được là mừng rồi, chứ ở đó mà đòi sửa, keke.
câu này hay, trúng phóc :D
đôi khi để compile được phải đọc document chết dịch luôn
thế như các bạn nói thì là ko thay đổi đc một chương trình khi đã chạy đúng ko .Thế nhưng XP vẫn bị mọi người thay đổi đó thôi.Chẳng hạn như giả lập giao diện vista trên xp.Trong khi xp là mã nguồn đóng các bạn giải thích cho mình cái đoạn này dùm .
trời ơi, cái đó có can thiệp gì đến source đâu, chỉ là nghịch ngợm tìm hiểu mấy file thôi mà :oh:
Bạn talailata_01 đăng ký suất học lập trình đi rùi ta bàn típ :stick:
Bạn talailata_01 đăng ký suất học lập trình đi rùi ta bàn típ :stick:
cũng không cần học lập trình, chỉ cần để ý dùng nhiều 1 tí rồi suy nghĩ trước khi lập thread :stick:
còn sau đó nếu muốn đọc hiểu source thì mới đi học :)
talailata_01
19-01-2008, 20:50
thế là bạn bảo mình là ngốc à
talailata_01
19-01-2008, 20:53
thật ra mình mới học lập trình thôi nên phải đi tìm hiểu chứ.
talailata_01
19-01-2008, 20:54
Bạn talailata_01 đăng ký suất học lập trình đi rùi ta bàn típ :stick:
bác nói hơi quá rồi:((
banchamthichet
19-01-2008, 21:41
khi chưa biết thì ai cũng có thể sẽ đặt câu hỏi như bạn Talailata, ý của các bro là khi bạn biết tí chút về lập trình thì sẽ hiểu vấn đề sâu hơn chứ ko phải là bạn dốt, dốt và chưa biết là khác nhau hoàn toàn.
Mình lấy ví dụ so sánh như sau có thể hơi khập khiễng nhưng hy vọng giúp bạn Talailata hình dung rõ rơn
Bạn cứ coi một chươgn trình như một cáy máy tính đi, một cái máy tính được cấu thành từ các tụ điện, cách bản mạch, dây điện...được hàn lắp kết nối vào với nhau theo một trật tự nhất định, còn chươgn trình thì được cấu thành từ các câu lệnh cũng theo một thứ tự nhất định.
Để có thể chế tạo được một cái máy tính, ban cần một cuốn tài liệu (document) hướng dẫn trong đó có nói các thành phần cụ thể nêu trên dùng để làm gì và cách thức hàn lắp kết nối chúng vào với nhau. Trừ khi bạn đã giỏi và nhiều kinh nghiệm
Mã nguồn chính là các câu lệnh đã được sắp xếp trước, để có thẻ can thiệp vào nó bạn cần phải có một tài liệu tương tự như cuốn hướng dẫn ở trên (các bro khác cũng đã đề cập trong topic này), trừ khi bạn đã giỏi và nhiều kinh nghiệm. Các chươg trình ko phải là mã nguồn mở sẽ không cho phép bạn xem mã nguồn
Nhưng trong thực tế, bằng cách này hay cách khác chúng ta có được mã nguồn nhưng lại ko có được cái tài liệu hướng dẫn đó thành ra khó can thiệp được sâu, như bạn phamthaihoa có nói đọc vài ngàn dòng lệnh đã đau đầu mà các chươgn trình thông thườgn có tới hàng chục trăm ngàn dòng lệnh.
Còn mã nguồn mở thì lại khác, chúng sẽ cho ta xem và cho cả tài iệu hướng dẫn sửa mã nguồn trong một phạm vi nhất định và có tính chất phổ thông nhất, ngoài phạm vi đó bạn cũng ko can thiệp được (trừ khi bạn đã giỏi và nhiều kinh nghiệm), điều này giống như các nhà sản xuất đã làm sẵn cho bạn mainboard, vga card, ram, màn hình.... và cho bạn cuốn hướng dẫn lắp chúng vào thành mọt cái máy tính theo ý của bạn dựa trên các thiết bị nền tảng đó. Cái tập hợp mainboard, vga card... đó có thể ví như mã nguồn mở và kết quả là chúng ta lắp ra đựoc nhièu cái máy tính khác nhau về loại CPU,dung lượng RAM... nhưng về căn bản chúng cùng nền tảng và ngừoi lắp ráp thì chẳng cần phải quan tâm xem từng con tụ, từng bóng đèn, từng mạch điện được hàn lắp như thế nào.
Rât khó tìm phép so sánh tuyệt đối để bạn hiểu tường minh về vấn đề này, nếu thực sự bạn muốn tìm tòi thì nên học (tự học) một khoá lập trình cơ bản
thế là bạn bảo mình là ngốc à
không có ý nặng thế đâu bro, chỉ có điều là có lẽ bro chưa hiểu về tổng quan 1 chút thôi :)
bác nói hơi quá rồi:((
Ý kiến như look_out :go:
talailata_01
20-01-2008, 19:54
thế các bạn cho mình hỏi thêm một câu là .Nếu ko biết mã đc mã nguồn của chương trình thì làm sao mà các chương trình riệt virus có thể sinh ra đc.Mà làm sao các chương trình đó ra đời nhỉ.Các bác đừng cười em nhé thật em chẳng biết gì cả đâu.Thanks các pro.
talailata_01
20-01-2008, 20:01
khi chưa biết thì ai cũng có thể sẽ đặt câu hỏi như bạn Talailata, ý của các bro là khi bạn biết tí chút về lập trình thì sẽ hiểu vấn đề sâu hơn chứ ko phải là bạn dốt, dốt và chưa biết là khác nhau hoàn toàn.
Mình lấy ví dụ so sánh như sau có thể hơi khập khiễng nhưng hy vọng giúp bạn Talailata hình dung rõ rơn
Bạn cứ coi một chươgn trình như một cáy máy tính đi, một cái máy tính được cấu thành từ các tụ điện, cách bản mạch, dây điện...được hàn lắp kết nối vào với nhau theo một trật tự nhất định, còn chươgn trình thì được cấu thành từ các câu lệnh cũng theo một thứ tự nhất định.
Để có thể chế tạo được một cái máy tính, ban cần một cuốn tài liệu (document) hướng dẫn trong đó có nói các thành phần cụ thể nêu trên dùng để làm gì và cách thức hàn lắp kết nối chúng vào với nhau. Trừ khi bạn đã giỏi và nhiều kinh nghiệm
Mã nguồn chính là các câu lệnh đã được sắp xếp trước, để có thẻ can thiệp vào nó bạn cần phải có một tài liệu tương tự như cuốn hướng dẫn ở trên (các bro khác cũng đã đề cập trong topic này), trừ khi bạn đã giỏi và nhiều kinh nghiệm. Các chươg trình ko phải là mã nguồn mở sẽ không cho phép bạn xem mã nguồn
Nhưng trong thực tế, bằng cách này hay cách khác chúng ta có được mã nguồn nhưng lại ko có được cái tài liệu hướng dẫn đó thành ra khó can thiệp được sâu, như bạn phamthaihoa có nói đọc vài ngàn dòng lệnh đã đau đầu mà các chươgn trình thông thườgn có tới hàng chục trăm ngàn dòng lệnh.
Còn mã nguồn mở thì lại khác, chúng sẽ cho ta xem và cho cả tài iệu hướng dẫn sửa mã nguồn trong một phạm vi nhất định và có tính chất phổ thông nhất, ngoài phạm vi đó bạn cũng ko can thiệp được (trừ khi bạn đã giỏi và nhiều kinh nghiệm), điều này giống như các nhà sản xuất đã làm sẵn cho bạn mainboard, vga card, ram, màn hình.... và cho bạn cuốn hướng dẫn lắp chúng vào thành mọt cái máy tính theo ý của bạn dựa trên các thiết bị nền tảng đó. Cái tập hợp mainboard, vga card... đó có thể ví như mã nguồn mở và kết quả là chúng ta lắp ra đựoc nhièu cái máy tính khác nhau về loại CPU,dung lượng RAM... nhưng về căn bản chúng cùng nền tảng và ngừoi lắp ráp thì chẳng cần phải quan tâm xem từng con tụ, từng bóng đèn, từng mạch điện được hàn lắp như thế nào.
Rât khó tìm phép so sánh tuyệt đối để bạn hiểu tường minh về vấn đề này, nếu thực sự bạn muốn tìm tòi thì nên học (tự học) một khoá lập trình cơ bản
thanks banchamthichet nhé nhờ bạn mà mình cũng hiểu thêm đc về vấn đề này.
thế các bạn cho mình hỏi thêm một câu là .Nếu ko biết mã đc mã nguồn của chương trình thì làm sao mà các chương trình riệt virus có thể sinh ra đc.Mà làm sao các chương trình đó ra đời nhỉ.Các bác đừng cười em nhé thật em chẳng biết gì cả đâu.Thanks các pro.
Các chương trình đó ra đời là nhờ ... có người viết, vậy cũng hỏi :brick:
Đồng ý là bác đi học khóa cơ bản gì đi rồi hỏi tiếp, chứ cứ hỏi "ko có mã nguồn thì làm sao nó làm dc thế này, ko có mã nguồn thì làm sao nó làm dc thế kia" hoài :go:
thế các bạn cho mình hỏi thêm một câu là .Nếu ko biết mã đc mã nguồn của chương trình thì làm sao mà các chương trình riệt virus có thể sinh ra đc.Mà làm sao các chương trình đó ra đời nhỉ.Các bác đừng cười em nhé thật em chẳng biết gì cả đâu.Thanks các pro.
Cái lày thì đi học an ninh mạng may ra :go:
banchamthichet
20-01-2008, 23:37
thế các bạn cho mình hỏi thêm một câu là .Nếu ko biết mã đc mã nguồn của chương trình thì làm sao mà các chương trình riệt virus có thể sinh ra đc.Mà làm sao các chương trình đó ra đời nhỉ.Các bác đừng cười em nhé thật em chẳng biết gì cả đâu.Thanks các pro.
Để dễ dàng lây nhiễm nên các chương trình virus thường rất nhỏ, vì thế các nhà sản xuất ra các chương trình antivirus như Norton, Bkav... mới có cơ hội dịch ngược và hiểu được mã nguồn của nó. Chứ nếu mỗi con virus mà lớn cỡ một chương trình game thì chắc họ chỉ có mà ôm nhau khóc, hàng trăm nghìn dòng lệnh làm sao mà hiểu hết được.
Hoặc họ làm theo kiểu quan sát sự hoạt động của virus rồi tìm quy luật và mô phỏng sự hoạt động của nó và viết chương trình diệt tương ứng - cách này thường dẫn tới diệt nhầm!
talailata_01
21-01-2008, 20:23
thế nhưng mình nghĩ virus nó cũng phải có mã nguồn là các dòng lệnh chứ .Thế nếu mình ko thể xem mã nguồn của nó thì làm sao mà riệt đc nó .Trong khi người viết virus ai họ up mã nguồn lên mạng cho mọi người cùng xem.
DTT_11-1983
21-01-2008, 20:44
Đã nói là đi học mã nguồn mở đi rồi quay lại hỏi mà không chịu nghe. :what:
thế nhưng mình nghĩ virus nó cũng phải có mã nguồn là các dòng lệnh chứ .Thế nếu mình ko thể xem mã nguồn của nó thì làm sao mà riệt đc nó .Trong khi người viết virus ai họ up mã nguồn lên mạng cho mọi người cùng xem.
Khi thấy 1 thằng cầm dao dí vào cổ người khác thì người ta không có time để lật profile nó ra mà check xem nhân thân họ hàng thế lào đâu bạn :go:
talailata_01
22-01-2008, 08:59
ý mình là người ta cũng phải tìm nhân thân họ hàng của nó rồi mới có cách giải quyết cái thằng đó chứ nếu ko biết dc tông tích nó ra đời như thế nào thì làm sao có thể giải quyết nó một cách êm đẹp đc .Thanks
Để diệt virus thì người ta không đọc trực tiếp mã nguồn của virus (vì làm gì có mà đọc) mà thường dùng chương trình riêng, dịch file thực thi của virus (.com, .exe) sang Assembly hoặc mã Hexadecima rồi đọc cái đó. Trước đây, khi chưa có NNLT bậc cao, các Developer toàn làm việc với mấy thứ ngôn ngữ cấp thấp này đấy.
Sau khi tìm hiểu thì người ta sẽ biết quá trình thực thi của con virus đó như thế nào mà có giải pháp chống lại.
Nếu thích thử, bạn có thể dùng ResHack đọc nội dung file .exe bất kỳ, nhưng nói trước là cái này không dễ nuốt đâu!
ý mình là người ta cũng phải tìm nhân thân họ hàng của nó rồi mới có cách giải quyết cái thằng đó chứ nếu ko biết dc tông tích nó ra đời như thế nào thì làm sao có thể giải quyết nó một cách êm đẹp đc .Thanks
Nói chung người lập trình sẽ nghĩ ra thuật toán để giải quyết vấn đề mà họ muốn, 1 cách tốt nhất, ko phải hễ chút là dính đến mã nguồn, mã nguồn... :brick:
Bác chỉ cần biết như thế thôi, chứ bây giờ bác hỏi cụ thể cách anitivirus nó làm thế nào thì sv IT năm 2 như iem cũng éo biết đây :brick:
Học sâu thì sẽ biết, bác nên đi học khóa căn bản đi ạ :go:
talailata_01
23-01-2008, 20:58
tại sao bạn lugiavn cứ bảo mình đi học một khoá căn bản là thế nào nhỉ mình cũng đang học mà .Nhưng ko đc học về mã nguồn nên mơí nhờ mọi người .Và cũng gặt hái đc một ít thành công.Thật ra ko phải là mình ko biết mã nguồn là gì chỉ là hiếu kì muốn biết làm cách nào để biết đc mã nguồn của chương trình ko thôi .và qua đây mình cũng biết đc thông tin thật cảm ơn mọi người.Nhưng mình nghĩ tất cả các chương trình đều phải có mã nguồn của nó chứ và cái mà mình muốn biết là làm sao để có thể lấy đc mã nguồn của chương trình kể cả nguồn mở và đóng.
tại sao bạn lugiavn cứ bảo mình đi học một khoá căn bản là thế nào nhỉ mình cũng đang học mà .Nhưng ko đc học về mã nguồn nên mơí nhờ mọi người .Và cũng gặt hái đc một ít thành công.Thật ra ko phải là mình ko biết mã nguồn là gì chỉ là hiếu kì muốn biết làm cách nào để biết đc mã nguồn của chương trình ko thôi .và qua đây mình cũng biết đc thông tin thật cảm ơn mọi người.Nhưng mình nghĩ tất cả các chương trình đều phải có mã nguồn của nó chứ và cái mà mình muốn biết là làm sao để có thể lấy đc mã nguồn của chương trình kể cả nguồn mở và đóng.
Cách lấy mã nguồn đóng: đi ăn cướp :brick:
Rùi lấy được source code của nó thì bro định làm gì tiếp với nó đây :baffle:
Vimvq1987
23-01-2008, 21:30
Bác chủ thớt nên học căn bản tí đi.
Chưa học làm thợ đã lo làm thầy, chán ỉn.
:|
tại sao bạn lugiavn cứ bảo mình đi học một khoá căn bản là thế nào nhỉ mình cũng đang học mà .Nhưng ko đc học về mã nguồn nên mơí nhờ mọi người .Và cũng gặt hái đc một ít thành công.Thật ra ko phải là mình ko biết mã nguồn là gì chỉ là hiếu kì muốn biết làm cách nào để biết đc mã nguồn của chương trình ko thôi .và qua đây mình cũng biết đc thông tin thật cảm ơn mọi người.Nhưng mình nghĩ tất cả các chương trình đều phải có mã nguồn của nó chứ và cái mà mình muốn biết là làm sao để có thể lấy đc mã nguồn của chương trình kể cả nguồn mở và đóng.
Hãy học các môn:
+ Cấu trúc máy tính
+ Hợp ngữ (Assembler)
+ Lập trình hệ thống
+ Hệ điều hành
để có kiến thức cơ bản.
Sau đó tự mày mò, tìm tài liệu tiếng anh trên mạng đọc thêm.
Tất cả các chương trình đều được xây dựng theo sơ đồ:
Mã nguồn (Ngôn ngữ bậc cao : C,Pascal, C++) ==Biên dịch==> Mã máy (Chương trình chạy).
Các chương trình đã được biên dịch thành mã máy hầu như không thể biên dịch ngược lại mã nguồn gốc ( ngôn ngữ bậc cao). Tuy nhiên có thể dễ dàng dịch thành hợp ngữ (Assembler) vì hợp ngữ rất gần với mã máy. Nhưng hợp ngữ là ngôn ngữ bậc thấp, khó đọc và lập trình.
Các chương trình mã mở thì có nguyên cả mã nguồn gốc (ngôn ngữ lập trình bậc cao).
Học khóa căn bản là thế nào ? học ĐH à? Nếu là ĐH thì phải chuyên ngành IT hoặc tương tự, nhưng năm thứ 3 thì cũng chưa chắc đã nắm được nhiều đâu ...
Cái lày thì đi học an ninh mạng may ra :go:
Virus thì chẳng liên quan gì tới mạng hay an ninh mạng cả. Muốn hiểu virus thì phải nắm được Hợp ngữ và lập trình hệ thống.Virus trên window thì phải lập trình Win32 API, hiểu cấu trúc file thực thi (*.exe, *.vxd)của hệ điều hành (PE format).....
Virus thì chẳng liên quan gì tới mạng hay an ninh mạng cả. Muốn hiểu virus thì phải nắm được Hợp ngữ và lập trình hệ thống.Virus trên window thì phải lập trình Win32 API, hiểu cấu trúc file thực thi (*.exe, *.vxd)của hệ điều hành (PE format).....
Thế mấy con lây qua net ấy không phải là an ninh mạng ah :go: Như mấy con biến PC của người ta thành zombie thì sao :go:
Nếu không mượn đường Internet để lây lan thì mấy chương trình AV sao cứ cặp kè với IS để làm gì :go: Không nhờ net thì mấy con virus của đám hacker từ nước ngoài lấy đường gì lây vào Việt Nam :go:
tại sao bạn lugiavn cứ bảo mình đi học một khoá căn bản là thế nào nhỉ mình cũng đang học mà .Nhưng ko đc học về mã nguồn nên mơí nhờ mọi người .Và cũng gặt hái đc một ít thành công.Thật ra ko phải là mình ko biết mã nguồn là gì chỉ là hiếu kì muốn biết làm cách nào để biết đc mã nguồn của chương trình ko thôi .và qua đây mình cũng biết đc thông tin thật cảm ơn mọi người.Nhưng mình nghĩ tất cả các chương trình đều phải có mã nguồn của nó chứ và cái mà mình muốn biết là làm sao để có thể lấy đc mã nguồn của chương trình kể cả nguồn mở và đóng.
Ko có cách nào lấy dc mã nguồn của 1 chương trình trừ khi người viết public (hay gọi là mở), sao bác cứ hỏi đi hỏi lại vậy nhỉ :nosebleed:
Iem nghe bác hỏi thì hình như bác ko hiều gì về tin học lập trình, như "ko có source thì làm sao nó làm dc thế này, nó làm dc thế kia" chẳng hạn, như iem, iem cũng chẳng biết làm sao nó làm dc thế này, làm sao nó làm dc thế kia, nhưng iem biết là điều đó có thể làm dc thôi, tụi programmer viết soft kiếm tiền thì cái đầu tụi nó phải nghĩ ra cách để làm chứ :sogood:
PS : Thật ra viết chương trình để can thiệp vào quá trình hoạt động của 1 chương trình khác là 1 điều rất dễ dàng, cũng chẳng cần phải có source siếc gì hết. Muốn làm dc thì cứ học cao lên :D
mr.newbie
23-01-2008, 23:04
Ko có cách nào lấy dc mã nguồn của 1 chương trình trừ khi người viết public (hay gọi là mở), sao bác cứ hỏi đi hỏi lại vậy nhỉ :nosebleed:
Iem nghe bác hỏi thì hình như bác ko hiều gì về tin học lập trình, như "ko có source thì làm sao nó làm dc thế này, nó làm dc thế kia" chẳng hạn, như iem, iem cũng chẳng biết làm sao nó làm dc thế này, làm sao nó làm dc thế kia, nhưng iem biết là điều đó có thể làm dc thôi, tụi programmer viết soft kiếm tiền thì cái đầu tụi nó phải nghĩ ra cách để làm chứ :sogood:
PS : Thật ra viết chương trình để can thiệp vào quá trình hoạt động của 1 chương trình khác là 1 điều rất dễ dàng, cũng chẳng cần phải có source siếc gì hết. Muốn làm dc thì cứ học cao lên :D
tao đem về rao lên forum lớp he, ngưỡng một mày quá :beauty:
Ko có cách nào lấy dc mã nguồn của 1 chương trình trừ khi người viết public (hay gọi là mở), sao bác cứ hỏi đi hỏi lại vậy nhỉ
có á, giống như dạng decompile 1 tập tin flash vậy, trừ phi được mã hóa này kia cẩn thận thui. Nghe bảo autoIT còn làm dc. Anyway, mình hông rành gì về ba cái này đâu, toàn nghe nói :go:
nói chung là anh em trong đây trừ mấy ông lớn đầu học rồi hiểu rõ, đa phần còn lại cũng qua kinh nghiệm phá máy mà hiểu sơ sơ cấu trúc thôi, nhưng cũng không đến nỗi hỏi một cách ngô nghê như bác này, em nghe qua em đoán bác là con gái thì phải, nếu không phải thì cũng đừng giận nhé, em không có ý gì đâu, bởi có vẻ bác ít tiếp xúc "liều" với máy tính quá :)
Thế mấy con lây qua net ấy không phải là an ninh mạng ah :go: Như mấy con biến PC của người ta thành zombie thì sao :go:
Cái đó là spyware,worm ko phải virus. Mấy con USB cũng chỉ là worm thôi.
[COLOR="Sienna"]
Nếu không mượn đường Internet để lây lan thì mấy chương trình AV sao cứ cặp kè với IS để làm gì :go: Không nhờ net thì mấy con virus của đám hacker từ nước ngoài lấy đường gì lây vào Việt Nam :go:
Virus có nhiều đường để lây lan, thế nếu nó lây qua USB và CD-ROM, đĩa cứng, đĩa mềm... thì cũng phải học mấy công nghệ an ninh CD-ROM hay an ninh USB ..... à ? :D
tao đem về rao lên forum lớp he, ngưỡng một mày quá :beauty:
có á, giống như dạng decompile 1 tập tin flash vậy, trừ phi được mã hóa này kia cẩn thận thui. Nghe bảo autoIT còn làm dc. Anyway, mình hông rành gì về ba cái này đâu, toàn nghe nói :go:
Có 1 chương trình decompile dc flash, nhưng từ 8 trở xuống thôi.
Mà dịch ngược thì dù có dc đi chăng nữa, bảo đảm mã nguồn nhận dc ko bao vờ giống y mã nguồn gốc, có thể bị lỗi tùm lum nữa. Mà đó là nói mấy chương trình bài tập linh tinh vài 3 trăm dòng mình tự viết thì còn may ra nhé, chứ mấy chương trình của người ta viết để bán, down trên mạng thì có mà mơ mới dịch ngược dc :sexy:
Nếu muốn tìm hiểu thì thường người ta dịch sang assembly, rồi cố lằm thì có thể chỉnh sửa 1 tí ti, ví dụ như crack :)
Cái đó là spyware,worm ko phải virus. Mấy con USB cũng chỉ là worm thôi.
Virus có nhiều đường để lây lan, thế nếu nó lây qua USB và CD-ROM, đĩa cứng, đĩa mềm... thì cũng phải học mấy công nghệ an ninh CD-ROM hay an ninh USB ..... à ? :D
Virus hay trojan hay worm thì với đa số người dùng chả khác nhau là mấy :go:
Tất nhiên ngoài net thì nó còn nhiều đường lây lan, lúc ấy phải học thêm. Nhưng tớ đâu có bảo chỉ học an ninh mạng là đủ, nhưng sure an ninh mạng là phần không thể thiếu nếu nghiên cứu về các nguy cơ trên :go:
huythach83
24-01-2008, 22:50
Hic, chủ topic này nói là có học lập trình mà sao không biết gì về định nghĩa "mã nguồn" nhỉ? Chả biết ông này lập trình kiểu gì???
talailata_01
25-01-2008, 16:08
Ko có cách nào lấy dc mã nguồn của 1 chương trình trừ khi người viết public (hay gọi là mở), sao bác cứ hỏi đi hỏi lại vậy nhỉ :nosebleed:
Iem nghe bác hỏi thì hình như bác ko hiều gì về tin học lập trình, như "ko có source thì làm sao nó làm dc thế này, nó làm dc thế kia" chẳng hạn, như iem, iem cũng chẳng biết làm sao nó làm dc thế này, làm sao nó làm dc thế kia, nhưng iem biết là điều đó có thể làm dc thôi, tụi programmer viết soft kiếm tiền thì cái đầu tụi nó phải nghĩ ra cách để làm chứ :sogood:
PS : Thật ra viết chương trình để can thiệp vào quá trình hoạt động của 1 chương trình khác là 1 điều rất dễ dàng, cũng chẳng cần phải có source siếc gì hết. Muốn làm dc thì cứ học cao lên :D
ac thế thì nói làm gì nữa.
talailata_01
25-01-2008, 16:11
Hic, chủ topic này nói là có học lập trình mà sao không biết gì về định nghĩa "mã nguồn" nhỉ? Chả biết ông này lập trình kiểu gì???
cũng chưa hẳn là mình ko biết nhưng cái mà mình ko biết là có thể thấy dc mã nguồn của một chưong trinh chẳng hạn như windows Media ko thôi ,tức là có cách nào thấy dc mã nguồn của chương trình ko ấy.
talailata_01
25-01-2008, 16:17
nói chung là anh em trong đây trừ mấy ông lớn đầu học rồi hiểu rõ, đa phần còn lại cũng qua kinh nghiệm phá máy mà hiểu sơ sơ cấu trúc thôi, nhưng cũng không đến nỗi hỏi một cách ngô nghê như bác này, em nghe qua em đoán bác là con gái thì phải, nếu không phải thì cũng đừng giận nhé, em không có ý gì đâu, bởi có vẻ bác ít tiếp xúc "liều" với máy tính quá :)
ý bạn là tiếp xúc liều với phần cứng hay phần mềm nếu phần cúngư thì nó có liên quan gì đến vấn đề này chứ,còn phần mêm thì bây giờ muốn tiếp xúc "liều" thì mới hỏi mọi người thì mới có thêm kiến thức chứ.Chán vãi
không mình là boy
talailata_01
25-01-2008, 16:25
bác nào thông thạo về cái này thì làm ơn pm qua
roimaithucgiac_01
với mình nhé thật đọc bài viết của mọi người mình vẫn lơ mơ lắm cho dù có hiểu một vài thứ .
thế như bạn lugiavn nói thì là có lấy đc mã nguồn của chương trình hả và có thể dịch ngược nó dúng ko nếu đc thì sẽ lấy bằng cách nào vậy ai biết chỉ cho mình với
talailata_01
25-01-2008, 16:29
Cách lấy mã nguồn đóng: đi ăn cướp :brick:
bác này có vẻ bực mình vì các câu hỏi của mình hả,bình tĩnh thôi bạn vì mình ko biết mà mình cũng chỉ mới học tin thôi mà và mới ra nhập cộng đồng tin học nên ít hiểu biết mà ít hiểu biết thì thường có những câu hỏi ngu ngốc nên mong các bạn giải thích cho mình nhé.
ý bạn là tiếp xúc liều với phần cứng hay phần mềm nếu phần cúngư thì nó có liên quan gì đến vấn đề này chứ,còn phần mêm thì bây giờ muốn tiếp xúc "liều" thì mới hỏi mọi người thì mới có thêm kiến thức chứ.Chán vãi
không mình là boy
nếu chán vãi thì đi chỗ khác mà hỏi, vcl, nói 1 hồi góp ý đi phát ngôn 1 câu chẳng ra sao cả, biết thế lần sau cạch mặt rồi, chẳng thèm góp ý nữa .:go:
Thực sự mà nói thì đồng chí talailata_01 này chậm hiểu quá!
Bây giờ Developer toàn làm việc với NNLTBC, trong đó các dòng lệnh thân thiện hơn với Developer. Tuy nhiên, muốn chạy được chương trình, tức là các dòng lệnh do Developer viết chạy được thì cần phải biên dịch nó sang mã máy (Machine Code) hoặc một thứ ngôn ngữ trung gian ở mức thấp hơn (VD : Byte Code với Java).
Những dòng lệnh ban đầu và các tài nguyên khác kèm theo được gọi là MÃ NGUỒN.
Phần mềm nguồn mở là những phần mềm có cung cấp mã nguồn kèm theo các file đã biên dịch để người dùng có thể tự do chỉnh sửa lại theo ý muốn.
Phần mềm nguồn đóng là những phần mềm không cung cấp mã nguồn cho người dùng nhằm bảo vệ bản quyền cho tác giả. Mã nguồn lúc đó trở thành tài liệu tuyệt mật. Vì thế, việc xem hay lấy mã nguồn là điều không thể, trừ phi đi ăn trộm.
Có mã nguồn rồi, nhưng có xem và hiểu được hay không lại là điều khác, rồi sau đó mới nói đến chuyện chỉnh sửa để có một phiên bản mới 'Made in tự tui'.
Các phần mềm thường có số lượng mã nguồn từ khá lớn đến vô cùng lớn, từ 1 Module đến hàng ngàn Module. Bên cạnh đó còn cần có tài liệu phân tích và thiết kế nữa. Đừng nghĩ rằng tôi có trong tay mã nguồn của soft nào đó thì tôi có thể thay đổi được nó mà nó vẫn chạy tốt!
talailata_01
25-01-2008, 19:51
bác dunghd nói đúng thật sự là mình chậm hiểu thật mình thừa nhận cái đó,bài viết này mục đích mình chỉ muốn biết là mã nguồn thì có thể xem dc ko thôi.Mà dịch ngược lại là như thế nào vậy có phải là như một chương trình AV ko.
talailata_01
25-01-2008, 19:54
nếu chán vãi thì đi chỗ khác mà hỏi, vcl, nói 1 hồi góp ý đi phát ngôn 1 câu chẳng ra sao cả, biết thế lần sau cạch mặt rồi, chẳng thèm góp ý nữa .:go:
cho mình xin lỗi .Cũng chỉ vì mình chưa hiểu rõ vấn đề nên cùng thảo luận mà
bác nào thông thạo về cái này thì làm ơn pm qua
roimaithucgiac_01
với mình nhé thật đọc bài viết của mọi người mình vẫn lơ mơ lắm cho dù có hiểu một vài thứ .
thế như bạn lugiavn nói thì là có lấy đc mã nguồn của chương trình hả và có thể dịch ngược nó dúng ko nếu đc thì sẽ lấy bằng cách nào vậy ai biết chỉ cho mình với
Học lập trình bộ không biết 1 chương trình lớn là phải chia rất nhiều thành phần sao, thực tế dịch ngược để có được mã nguồn ban đầu mà đội lập trình code ra là impossible, dịch ra mã máy cũng chẳng qua là làm đến một cái công đoạn gần cuối là đưa cho máy nó compile thôi. Nói nhiều sao ko hiểu nhỉ, đã nói là không thể thì đừng có cố mà hỏi thì làm sao người khác không bực ?
:amazed:~>hỏi-->trả lời::)
~>:amazed:~>hỏi-->trả lời:surrender:
~>:amazed:~>hỏi-->trả lời:((
~>:amazed:~>hỏi-->trả lời:choler::This is madness!!!
~>:amazed:~>hỏi: Madness??? This !!! is!!!! talailataaaaaaaaa!!!!:matrix:
PS:sao ko có hình thằng Leonidas nhỉ?
Có 1 chương trình decompile dc flash, nhưng từ 8 trở xuống thôi.
Mà dịch ngược thì dù có dc đi chăng nữa, bảo đảm mã nguồn nhận dc ko bao vờ giống y mã nguồn gốc, có thể bị lỗi tùm lum nữa. Mà đó là nói mấy chương trình bài tập linh tinh vài 3 trăm dòng mình tự viết thì còn may ra nhé, chứ mấy chương trình của người ta viết để bán, down trên mạng thì có mà mơ mới dịch ngược dc :sexy:
Nếu muốn tìm hiểu thì thường người ta dịch sang assembly, rồi cố lằm thì có thể chỉnh sửa 1 tí ti, ví dụ như crack :)
Nếu có file chạy(.exe) thì có chương trình để dịch thành mã assembler, có thể chỉnh sửa trong đó được, nhưng cách này chỉ dành cho những chương trình rất đơn giản, chứ như Window Media Player thì chịu, có dịch ra được mã ASM cũng ko biết sửa kiểu nào.
Hỏi lại một câu là có source code rùi thì để làm gì :">
mr.newbie
25-01-2008, 21:59
Hỏi lại một câu là có source code rùi thì để làm gì :">
câu hỏi hay thật? coders họ cứ tìm cách mã hóa source code của họ chi vậy
Hỏi lại một câu là có source code rùi thì để làm gì :">
có source code rồi thì cứ đọc, còn đọc hiểu & sửa được hay không là phải tùy vào bảnh lĩnh. Nếu source chôm thì phải mò mù, còn source được cung cấp kèm sản phẩm thì thường có tài liệu hướng dẫn luôn.
talailata_01
26-01-2008, 10:53
thật cũng chẳng biết nói gì nữa cả .Chỉ biết là cảm ơn anh em nhưng thật đến giờ vẫn lơ mơ quá
thật cũng chẳng biết nói gì nữa cả .Chỉ biết là cảm ơn anh em nhưng thật đến giờ vẫn lơ mơ quá
Thì cứ đi học, rồi làm project lớn sẽ hiểu là đừng có mơ mà dịch ngược lại một software cực lớn, giống như chưa học điện mà cứ nói tại sao phải có bình dầu, tại sao phải cái này cái nọ... học và làm rồi sẽ biết. Chào thân ái và quyết thắng...:byebye:
talailata_01
26-01-2008, 21:57
biet lam the nao gio
Nói chung là cái thể lọai này rất là khó hiểu, anh em giải thích lòng vòng mà bạn vẫn chưa hiểu vì bạn hình như chỉ mới tập tọe code vài ba dòng vui chơi giải trí...
...tóm lại ý chung là cái chương trình sieu mini thì có thể dịch và hiểu sơ sơ, ví dụ như bạn tháo cái xe đồ chơi của đứa cháu trong nhà ra xem nó gồm có những gì :) cái thuộc lọai lớn thì không thể dịch, vì dịch được người ta đã bán ầm ầm rồi...ví dụ như bạn chỉ mới biết tháo cái xe đồ chơi ra thì ok, nhưng nhìn cái máy bay thì nói chung là bó tay...
...vì sao lại thế thì bạn nên học tiếp, học khi nào mà chả còn cái gì để code nữa thì bạn quay lại đây chỉ lại cho anh em, thế nhé :D
/mình chả biết gì về lập trình này nọ đâu, nhưng hi vọng bạn hiểu ý chung của tòan thể anh em ở trên đã cố giúp bạn hiểu, nếu họ không nhiệt tình thì thread của bạn chả dài đến mấy trang thế này đâu :D
talailata_01
28-01-2008, 21:14
mình có ý định dịch ngược đâu vì mình biết trình độ của mình chứ chỉ là hỏi cho biêt thôi.Vả lại mình có biết gì nhiều đâu chỉ để học hỏi cho biết thôi mà .Mục đích khi viết therd này chỉ là để cho biết mã nguồn là gì thôi mà.Bây giờ bạn nào có thể định nghĩa cho mình mã nguồn là gì dc ko vì mình còn đang lơ mơ quá.Thanks toàn bộ anh em voz nhé.
anhtuyenbk
28-01-2008, 21:49
Bạn cứ đi học lập trình đi rồi biết mã nguồn là cái gì thôi. Vậy là đơn giản nhất:) :)
talailata_01
30-01-2008, 19:39
mình có học nhưng mà lơ mơ lắm và cùng chẳng có ai nói với mình cái mã nguồn là gì nữa lên mình mới lơ mơ chẳng biết nó ra sao.Len mới xin mọi người cho mình biết định nghĩa
thaicuong
30-01-2008, 19:49
Thì mã nguồn hiểu nôm na nó là các dòng lệnh và các dòng lệnh này có cấu trúc và cú pháp riêng của từng ngôn ngữ lập trình mục đích của nó là làm cho máy tính hiểu là người viết ra nó muốn cái máy tính làm gì
P/s muốn hiểu rõ về nó thì phải tìm tài liệu mà đọc..
Nói nôm na kiểu sinh học thì nó tương đương với bộ nhiễm sắc thể trong cơ thể sinh vật >> quy định nên các tính trạng của cơ thể (như mã nguồn và phần mềm được tạo từ đó)
nói theo hướng của thím Ling luôn là với trình đơn giản, nếu bạn đã học lập trình rồi, vân vân và vân vân, thì có thể cái đơn giản thì như kiểu tháo cái xe đồ chơi và biết bộ phận này nọ, rồi ráp lại vào được, nhưng mấy cái khác thì chẳng khác gì tháo cái máy bay ra, mà có tháo được đã bản lĩnh rồi, xem chức năng từng cái còn kinh hơn, và nếu ráp lại được thì chuẩn bị đi xin việc ở cái corperation đó đi là vừa :lol:
còn thì bạn muốn hiểu tổng quan chung thì cũng như bao người ở đây, sử dụng và lướt web + google nhiều là sẽ có một tầm nhìn nhất định nào đấy, như kiểu 1 ngày bạn không biết máy bị điên điên thế nào cứ restart suốt, thế là lên VOZ, rồi thì tự nhiên ngó qua bên phần mềm lại thấy mấy soft hay quá, vào xem nhưng lại đụng Rapidshare, lại google -->> .... rồi thì sau này thấy mỗi cái crack 1 kiểu, thì mới google tiếp xem crack thực chất là cái giề ... ui dời nói chung là nhiều lắm, dần dần bạn khác hiểu :-s nói dài dòng, câu văn lủng củng quá, các bác thông cảm .
talailata_01
01-02-2008, 15:45
thank lockout nhưng thật mình chẳng hiểu bạn định nói gì hết
beatƖemania
01-02-2008, 17:37
thank lockout nhưng thật mình chẳng hiểu bạn định nói gì hết
nói chung là nó thế này :pudency: :
http://sharp-developer.net/Fun/img/I-will-use-Google-before-asking-dumb-questions.gif
chihaxinh
01-02-2008, 18:03
thank lockout nhưng thật mình chẳng hiểu bạn định nói gì hết
Vậy bạn thử xem qua nhé ..cái này của chương trình X-Unikey nè ..đây chỉ là một phần nhỏ thôi
// -*- coding:unix; mode:c++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
#include
#include
#include
#include
#include
#include
#include "vnconv.h"
#include "optparse.h"
#include "ukopt.h"
static char ConfigHeaderCmt[] =
"# Unikey XIM config file\n\n";
static char InitStateCmt[] =
"# Initial state: On|Off\n";
static char AutoSaveCmt[] =
"# AutoSave: Yes|No\n"
"# If AutoSave=Yes, unikey will save options on exit\n"
"# Be careful when editing this file while unikey is running with AutoSave enabled\n"
"# Upon exit unikey will overwrite your settings. To avoid that, tell unikey\n"
"# to reload config file when you finish editing. See unikey manual\n"
"# AutoSave is useful if you want unikey to remember its window position\n";
static char InputCmt[] =
"# Input: TELEX|VNI|VIQR|USER\n"
"# Input method. If you specify input=USER, you must also specify UsrKeyMapFile\n";
static char CharsetCmt[] =
"# Output charsets: UNICODE|TCVN|VNI|VIQR|BK2\n";
static char FreeStyleCmt[] =
"# FreeStyle: Yes|No\n"
"# \"Yes\" means you can type hook, breve marks anywhere after the base character\n"
"# not necessarily right after the base.\n"
"# VNI users should set to Yes. TELEX users: your choice\n"
"# Default: Yes\n";
/*
static char ToneManualCmt[] =
"# ToneManual: Yes|No\n"
"# You should set this to \"No\" to let Unikey determine position for tone marks.\n";
*/
static char ModernStyleCmt[] =
"# ModernStyle: Yes|No\n"
"# \"Yes\" means \"hoa', khoe?\" style, \"No\" means \"ho'a, kho?e\" style\n";
static char GtkImAloneCmt[] =
"# GtkImAlone: Yes|No. Default: No\n"
"# Set this to Yes if you want GTK unikey module enabled\n"
"# even when unikey GUI is not running\n";
static char MacroFileCmt[] =
"# Macrofile: path to macro file. Default: empty, macro is disabled\n"
"# To enable macro, specify the path to your macro file.\n"
"# For example: MacroFile = ~/ukmacro\n";
static char BellCmt[] =
"# Bell: Yes|No\n"
"# Turn on/off bell notification when key shortcuts are pressed\n";
static char XvnkbSyncCmt[] =
"# XvnkbSync: Yes|No\n"
"# Set to \"Yes\" to synchronize unikey-gtk with xvnkb GUI\n"
"# This applies only to unikey-gtk module, not XIM server (ukxim)\n"
"# To synchronize ukxim with xvnkb GUI, see doc/manual\n";
static char CommitMethodCmt[] =
"# CommitMethod: Send|Forward|Mixed. Default: Send\n"
"# Use XSendEvent or XIM forward key event to commit string\n"
"# Both methods will work with most applications.\n"
"# Some application with high-level security may\n"
"# block XSendEvent, so CommitMethod must be set to \"Forward\"\n"
"# Some versions of xterm are known to work only if CommitMethod=Send\n"
"# see doc/manual for information on xterm\n"
"# I recommend \"Send\" first. If it does not work, try \"Forward\"\n";
static char XimFlowCmt[] =
"# XimFlow = Static|Dynamic. Default: Static\n"
"# You should always use Static. If something does not work,\n"
"# then try Dynamic. Rxvt-unicode is known to work only with Dynamic mode.\n"
"# Before changing this option, make sure unikey is not loaded in memory.\n"
"# See manual, section unload/restart unikey.\n";
static char XimLocalesCmt[] =
"# XimLocales = List of locales separated by commas.\n"
"# Default: C,en_US,vi_VN,fr_FR,fr_BE,fr_CA,de_DE,ja_JP,cs_CZ,ru_RU\n"
"# Theses are locales that XIM Server must advertise to applications\n"
"# If your application runs in certain locale, make sure that locale is listed here.\n"
"# Before changing this option, make sure unikey is not loaded in memory.\n"
"# See manual, section unload/restart unikey.\n";
static char PosXCmt[] =
"# PosX: X Position of unikey window\n"
"# set a minus value to let unikey use the default position\n";
static char PosYCmt[] =
"# PosY: Y Position of unikey window\n"
"# set a minus value to let unikey use the default position\n";
static char UsrKeyMapFileCmt[] =
"# UsrKeyMapFile: path to user-defined input method file. Default: empty.\n"
"# To enable user-define input method, specify the path here\n"
"# For example: UsrKeyMapFile = ~/.unikey/my-telex\n";
static char EnableSpellCheckCmt[] =
"# EnableSpellCheck: Yes|No\n"
"# Enable Vietnamese spell checking\n"
"# Default: Yes\n";
static char AutoRestoreNonVnCmt[] =
"# AutoRestoreNonVn: Yes|No\n"
"# Enable auto-restore key strokes for non-Vietnamese word\n"
"# Default: No\n";
static OptMap InputLookup[] = {
{"TELEX", UkTelex},
{"VNI", UkVni},
{"VIQR", UkViqr},
{"VIQR*", UkViqr},
{"USER", UkUsrIM},
{0, 0}
};
static OptMap CharsetLookup[] = {
{"UNICODE", CONV_CHARSET_XUTF8},
{"UTF8", CONV_CHARSET_XUTF8},
{"UTF-8", CONV_CHARSET_XUTF8},
{"TCVN", CONV_CHARSET_TCVN3},
{"VNI", CONV_CHARSET_VNIWIN},
{"VIQR", CONV_CHARSET_VIQR},
{"BK2", CONV_CHARSET_BKHCM2},
{0, 0}
};
static OptMap StateLookup[] = {
{"ON", 1},
{"OFF", 0},
{0, 0}
};
static OptMap CommitLookup[] = {
{"Send", UkSendCommit},
{"Forward", UkForwardCommit},
{0, 0}
};
static OptMap XimFlowLookup[] = {
{"Static", UkXimStatic},
{"Dynamic", UkXimDynamic},
{0, 0}
};
OptItem UkXimOptList[] = {
{"AutoSave", AutoSaveCmt, offsetof(UkXimOpt, autoSave), BoolOpt, 0},
{"InitState", InitStateCmt, offsetof(UkXimOpt, enabled), LookupOpt, StateLookup},
{"Input", InputCmt, offsetof(UkXimOpt, inputMethod), LookupOpt, InputLookup},
{"Charset", CharsetCmt, offsetof(UkXimOpt, charset), LookupOpt, CharsetLookup},
{"FreeStyle", FreeStyleCmt, offsetof(UkXimOpt, uk.freeMarking), BoolOpt, 0},
{"ModernStyle", ModernStyleCmt, offsetof(UkXimOpt, uk.modernStyle), BoolOpt, 0},
{"XvnkbSync", XvnkbSyncCmt, offsetof(UkXimOpt, xvnkbSync), BoolOpt, 0},
{"Bell", BellCmt, offsetof(UkXimOpt, bellNotify), BoolOpt, 0},
{"CommitMethod", CommitMethodCmt, offsetof(UkXimOpt, commitMethod), LookupOpt, CommitLookup},
{"XimFlow", XimFlowCmt, offsetof(UkXimOpt, ximFlow), LookupOpt, XimFlowLookup},
{"MacroFile", MacroFileCmt, offsetof(UkXimOpt, macroFile), StrOpt, 0},
{"XimLocales", XimLocalesCmt, offsetof(UkXimOpt, ximLocales), StrOpt, 0},
{"GtkImAlone", GtkImAloneCmt, offsetof(UkXimOpt, gtkImAlone), BoolOpt, 0},
{"PosX", PosXCmt, offsetof(UkXimOpt, posX), LongOpt, 0},
{"PosY", PosYCmt, offsetof(UkXimOpt, posY), LongOpt, 0},
{"UsrKeyMapFile", UsrKeyMapFileCmt, offsetof(UkXimOpt, usrKeyMapFile), StrOpt, 0},
{"EnableSpellCheck", EnableSpellCheckCmt, offsetof(UkXimOpt, uk.spellCheckEnabled), BoolOpt, 0},
{"AutoRestoreNonVn", AutoRestoreNonVnCmt, offsetof(UkXimOpt, uk.autoNonVnRestore), BoolOpt, 0}
};
/*
//----------------------------------------------------
void testParse(UkXimOpt *options)
{
printf("Enabled: %s\n", options->enabled ? "Yes":"No");
printf("Input method: %ld\n", options->inputMethod);
printf("Charset: %ld\n", options->charset);
printf("FreeStyle: %s\n", options->uk.freeMarking? "Yes":"No");
printf("ToneManual: %s\n", options->uk.toneNextToVowel? "Yes":"No");
printf("ModernStyle: %s\n", options->uk.modernStyle? "Yes":"No");
printf("MacroFile: %s\n", options->macroFile? options->macroFile: "Unspecified");
}
*/
//----------------------------------------------------
int UkParseOptFile(const char *fileName, UkXimOpt *options)
{
int ret;
char *expName;
ret = ParseOptFile(fileName, options, UkXimOptList, sizeof(UkXimOptList)/sizeof(OptItem));
if (ParseExpandFileName(options->macroFile, &expName)) {
free(options->macroFile);
options->macroFile = expName;
}
if (ParseExpandFileName(options->usrKeyMapFile, &expName)) {
free(options->usrKeyMapFile);
options->usrKeyMapFile = expName;
}
// testParse(options);
return ret;
}
//----------------------------------------------------
int UkWriteOptFile(const char *fileName, UkXimOpt *options)
{
return ParseWriteOptFile(fileName, ConfigHeaderCmt, options,
UkXimOptList, sizeof(UkXimOptList)/sizeof(OptItem));
}
//------------------------------------------------------
char *UkGetDefConfFileName()
{
static char buf[128];
strcpy(buf, getenv("HOME"));
// strcat(buf, "/.unikeyrc");
strcat(buf, "/.unikey/options");
return buf;
}
//------------------------------------------------------
int createDefConfDir()
{
int ret;
char name[128];
strcpy(name, getenv("HOME"));
strcat(name, "/.unikey");
ret = mkdir(name, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
return (ret == 0 || errno == EEXIST);
}
//------------------------------------------------------
void UkSetDefOptions(UkXimOpt *options)
{
memset(options, 0, sizeof(UkXimOpt));
CreateDefaultUnikeyOptions(&options->uk);
options->inputMethod = UkTelex;
options->charset = CONV_CHARSET_XUTF8;
options->enabled = 1;
options->xvnkbSync = 0;
options->bellNotify = 1;
options->commitMethod = UkSendCommit;
options->ximFlow = UkXimStatic;
options->autoSave = 1;
options->posX = -1;
options->posY = -1;
options->macroFile = 0;
options->ximLocales = 0;
options->gtkImAlone = 0;
options->usrKeyMapFile = 0;
}
CreateDefaultUnikeyOptions(&options->uk);
options->inputMethod = UkTelex;
options->charset = CONV_CHARSET_XUTF8;
options->enabled = 1;
options->xvnkbSync = 0;
options->bellNotify = 1;
options->commitMethod = UkSendCommit;
options->ximFlow = UkXimStatic;
options->autoSave = 1;
options->posX = -1;
options->posY = -1;
options->macroFile = 0;
options->ximLocales = 0;
options->gtkImAlone = 0;
options->usrKeyMapFile = 0;
}
//------------------------------------------------------
// test if default config file and directory exist, if not then create them
//------------------------------------------------------
void UkTestDefConfFile()
{
FILE *f;
char *fname;
createDefConfDir();
fname = UkGetDefConfFileName();
f = fopen(fname, "r");
if (!f) {
UkXimOpt opt;
UkSetDefOptions(&opt);
UkWriteOptFile(fname, &opt);
}
else
fclose(f);
}
:surrender:
nói chung là nó thế này :pudency: :
http://sharp-developer.net/Fun/img/I-will-use-Google-before-asking-dumb-questions.gif
đáng nhẽ mình nên nói gọn thế này thôi thì hay biết mấy :pudency:
Vậy bạn thử xem qua nhé ..cái này của chương trình X-Unikey nè ..đây chỉ là một phần nhỏ thôi
// -*- coding:unix; mode:c++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
#include
#include
#include
#include
#include
#include
#include "vnconv.h"
#include "optparse.h"
#include "ukopt.h"
static char ConfigHeaderCmt[] =
"# Unikey XIM config file\n\n";
static char InitStateCmt[] =
"# Initial state: On|Off\n";
static char AutoSaveCmt[] =
"# AutoSave: Yes|No\n"
"# If AutoSave=Yes, unikey will save options on exit\n"
"# Be careful when editing this file while unikey is running with AutoSave enabled\n"
"# Upon exit unikey will overwrite your settings. To avoid that, tell unikey\n"
"# to reload config file when you finish editing. See unikey manual\n"
"# AutoSave is useful if you want unikey to remember its window position\n";
static char InputCmt[] =
"# Input: TELEX|VNI|VIQR|USER\n"
"# Input method. If you specify input=USER, you must also specify UsrKeyMapFile\n";
static char CharsetCmt[] =
"# Output charsets: UNICODE|TCVN|VNI|VIQR|BK2\n";
static char FreeStyleCmt[] =
"# FreeStyle: Yes|No\n"
"# \"Yes\" means you can type hook, breve marks anywhere after the base character\n"
"# not necessarily right after the base.\n"
"# VNI users should set to Yes. TELEX users: your choice\n"
"# Default: Yes\n";
/*
static char ToneManualCmt[] =
"# ToneManual: Yes|No\n"
"# You should set this to \"No\" to let Unikey determine position for tone marks.\n";
*/
static char ModernStyleCmt[] =
"# ModernStyle: Yes|No\n"
"# \"Yes\" means \"hoa', khoe?\" style, \"No\" means \"ho'a, kho?e\" style\n";
static char GtkImAloneCmt[] =
"# GtkImAlone: Yes|No. Default: No\n"
"# Set this to Yes if you want GTK unikey module enabled\n"
"# even when unikey GUI is not running\n";
static char MacroFileCmt[] =
"# Macrofile: path to macro file. Default: empty, macro is disabled\n"
"# To enable macro, specify the path to your macro file.\n"
"# For example: MacroFile = ~/ukmacro\n";
static char BellCmt[] =
"# Bell: Yes|No\n"
"# Turn on/off bell notification when key shortcuts are pressed\n";
static char XvnkbSyncCmt[] =
"# XvnkbSync: Yes|No\n"
"# Set to \"Yes\" to synchronize unikey-gtk with xvnkb GUI\n"
"# This applies only to unikey-gtk module, not XIM server (ukxim)\n"
"# To synchronize ukxim with xvnkb GUI, see doc/manual\n";
static char CommitMethodCmt[] =
"# CommitMethod: Send|Forward|Mixed. Default: Send\n"
"# Use XSendEvent or XIM forward key event to commit string\n"
"# Both methods will work with most applications.\n"
"# Some application with high-level security may\n"
"# block XSendEvent, so CommitMethod must be set to \"Forward\"\n"
"# Some versions of xterm are known to work only if CommitMethod=Send\n"
"# see doc/manual for information on xterm\n"
"# I recommend \"Send\" first. If it does not work, try \"Forward\"\n";
static char XimFlowCmt[] =
"# XimFlow = Static|Dynamic. Default: Static\n"
"# You should always use Static. If something does not work,\n"
"# then try Dynamic. Rxvt-unicode is known to work only with Dynamic mode.\n"
"# Before changing this option, make sure unikey is not loaded in memory.\n"
"# See manual, section unload/restart unikey.\n";
static char XimLocalesCmt[] =
"# XimLocales = List of locales separated by commas.\n"
"# Default: C,en_US,vi_VN,fr_FR,fr_BE,fr_CA,de_DE,ja_JP,cs_CZ, ru_RU\n"
"# Theses are locales that XIM Server must advertise to applications\n"
"# If your application runs in certain locale, make sure that locale is listed here.\n"
"# Before changing this option, make sure unikey is not loaded in memory.\n"
"# See manual, section unload/restart unikey.\n";
static char PosXCmt[] =
"# PosX: X Position of unikey window\n"
"# set a minus value to let unikey use the default position\n";
static char PosYCmt[] =
"# PosY: Y Position of unikey window\n"
"# set a minus value to let unikey use the default position\n";
static char UsrKeyMapFileCmt[] =
"# UsrKeyMapFile: path to user-defined input method file. Default: empty.\n"
"# To enable user-define input method, specify the path here\n"
"# For example: UsrKeyMapFile = ~/.unikey/my-telex\n";
static char EnableSpellCheckCmt[] =
"# EnableSpellCheck: Yes|No\n"
"# Enable Vietnamese spell checking\n"
"# Default: Yes\n";
static char AutoRestoreNonVnCmt[] =
"# AutoRestoreNonVn: Yes|No\n"
"# Enable auto-restore key strokes for non-Vietnamese word\n"
"# Default: No\n";
static OptMap InputLookup[] = {
{"TELEX", UkTelex},
{"VNI", UkVni},
{"VIQR", UkViqr},
{"VIQR*", UkViqr},
{"USER", UkUsrIM},
{0, 0}
};
static OptMap CharsetLookup[] = {
{"UNICODE", CONV_CHARSET_XUTF8},
{"UTF8", CONV_CHARSET_XUTF8},
{"UTF-8", CONV_CHARSET_XUTF8},
{"TCVN", CONV_CHARSET_TCVN3},
{"VNI", CONV_CHARSET_VNIWIN},
{"VIQR", CONV_CHARSET_VIQR},
{"BK2", CONV_CHARSET_BKHCM2},
{0, 0}
};
static OptMap StateLookup[] = {
{"ON", 1},
{"OFF", 0},
{0, 0}
};
static OptMap CommitLookup[] = {
{"Send", UkSendCommit},
{"Forward", UkForwardCommit},
{0, 0}
};
static OptMap XimFlowLookup[] = {
{"Static", UkXimStatic},
{"Dynamic", UkXimDynamic},
{0, 0}
};
OptItem UkXimOptList[] = {
{"AutoSave", AutoSaveCmt, offsetof(UkXimOpt, autoSave), BoolOpt, 0},
{"InitState", InitStateCmt, offsetof(UkXimOpt, enabled), LookupOpt, StateLookup},
{"Input", InputCmt, offsetof(UkXimOpt, inputMethod), LookupOpt, InputLookup},
{"Charset", CharsetCmt, offsetof(UkXimOpt, charset), LookupOpt, CharsetLookup},
{"FreeStyle", FreeStyleCmt, offsetof(UkXimOpt, uk.freeMarking), BoolOpt, 0},
{"ModernStyle", ModernStyleCmt, offsetof(UkXimOpt, uk.modernStyle), BoolOpt, 0},
{"XvnkbSync", XvnkbSyncCmt, offsetof(UkXimOpt, xvnkbSync), BoolOpt, 0},
{"Bell", BellCmt, offsetof(UkXimOpt, bellNotify), BoolOpt, 0},
{"CommitMethod", CommitMethodCmt, offsetof(UkXimOpt, commitMethod), LookupOpt, CommitLookup},
{"XimFlow", XimFlowCmt, offsetof(UkXimOpt, ximFlow), LookupOpt, XimFlowLookup},
{"MacroFile", MacroFileCmt, offsetof(UkXimOpt, macroFile), StrOpt, 0},
{"XimLocales", XimLocalesCmt, offsetof(UkXimOpt, ximLocales), StrOpt, 0},
{"GtkImAlone", GtkImAloneCmt, offsetof(UkXimOpt, gtkImAlone), BoolOpt, 0},
{"PosX", PosXCmt, offsetof(UkXimOpt, posX), LongOpt, 0},
{"PosY", PosYCmt, offsetof(UkXimOpt, posY), LongOpt, 0},
{"UsrKeyMapFile", UsrKeyMapFileCmt, offsetof(UkXimOpt, usrKeyMapFile), StrOpt, 0},
{"EnableSpellCheck", EnableSpellCheckCmt, offsetof(UkXimOpt, uk.spellCheckEnabled), BoolOpt, 0},
{"AutoRestoreNonVn", AutoRestoreNonVnCmt, offsetof(UkXimOpt, uk.autoNonVnRestore), BoolOpt, 0}
};
/*
//----------------------------------------------------
void testParse(UkXimOpt *options)
{
printf("Enabled: %s\n", options->enabled ? "Yes":"No");
printf("Input method: %ld\n", options->inputMethod);
printf("Charset: %ld\n", options->charset);
printf("FreeStyle: %s\n", options->uk.freeMarking? "Yes":"No");
printf("ToneManual: %s\n", options->uk.toneNextToVowel? "Yes":"No");
printf("ModernStyle: %s\n", options->uk.modernStyle? "Yes":"No");
printf("MacroFile: %s\n", options->macroFile? options->macroFile: "Unspecified");
}
*/
//----------------------------------------------------
int UkParseOptFile(const char *fileName, UkXimOpt *options)
{
int ret;
char *expName;
ret = ParseOptFile(fileName, options, UkXimOptList, sizeof(UkXimOptList)/sizeof(OptItem));
if (ParseExpandFileName(options->macroFile, &expName)) {
free(options->macroFile);
options->macroFile = expName;
}
if (ParseExpandFileName(options->usrKeyMapFile, &expName)) {
free(options->usrKeyMapFile);
options->usrKeyMapFile = expName;
}
// testParse(options);
return ret;
}
//----------------------------------------------------
int UkWriteOptFile(const char *fileName, UkXimOpt *options)
{
return ParseWriteOptFile(fileName, ConfigHeaderCmt, options,
UkXimOptList, sizeof(UkXimOptList)/sizeof(OptItem));
}
//------------------------------------------------------
char *UkGetDefConfFileName()
{
static char buf[128];
strcpy(buf, getenv("HOME"));
// strcat(buf, "/.unikeyrc");
strcat(buf, "/.unikey/options");
return buf;
}
//------------------------------------------------------
int createDefConfDir()
{
int ret;
char name[128];
strcpy(name, getenv("HOME"));
strcat(name, "/.unikey");
ret = mkdir(name, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
return (ret == 0 || errno == EEXIST);
}
//------------------------------------------------------
void UkSetDefOptions(UkXimOpt *options)
{
memset(options, 0, sizeof(UkXimOpt));
CreateDefaultUnikeyOptions(&options->uk);
options->inputMethod = UkTelex;
options->charset = CONV_CHARSET_XUTF8;
options->enabled = 1;
options->xvnkbSync = 0;
options->bellNotify = 1;
options->commitMethod = UkSendCommit;
options->ximFlow = UkXimStatic;
options->autoSave = 1;
options->posX = -1;
options->posY = -1;
options->macroFile = 0;
options->ximLocales = 0;
options->gtkImAlone = 0;
options->usrKeyMapFile = 0;
}
CreateDefaultUnikeyOptions(&options->uk);
options->inputMethod = UkTelex;
options->charset = CONV_CHARSET_XUTF8;
options->enabled = 1;
options->xvnkbSync = 0;
options->bellNotify = 1;
options->commitMethod = UkSendCommit;
options->ximFlow = UkXimStatic;
options->autoSave = 1;
options->posX = -1;
options->posY = -1;
options->macroFile = 0;
options->ximLocales = 0;
options->gtkImAlone = 0;
options->usrKeyMapFile = 0;
}
//------------------------------------------------------
// test if default config file and directory exist, if not then create them
//------------------------------------------------------
void UkTestDefConfFile()
{
FILE *f;
char *fname;
createDefConfDir();
fname = UkGetDefConfFileName();
f = fopen(fname, "r");
if (!f) {
UkXimOpt opt;
UkSetDefOptions(&opt);
UkWriteOptFile(fname, &opt);
}
else
fclose(f);
}
:surrender:
ai giải thix giùm em nhở:chaymau: j/k
beatƖemania
01-02-2008, 19:10
ai giải thix giùm em nhở:chaymau: j/k
trong đó có giải thích hết rồi mà :nosebleed:
nói chung là nó thế này :pudency: :
http://sharp-developer.net/Fun/img/I-will-use-Google-before-asking-dumb-questions.gif
Mong là chủ topic đọc xong cái bài trả lời này thì hiểu.
Công nhận anh em voz nhẫn nại thật :)
DTT_11-1983
01-02-2008, 21:33
nên hiểu như thế này.
Mã nguồn sau khi biên dịch sẽ trở thành chương trình.
Gạo sau khi nấu thì thành cơm.
Mong là chủ topic đọc xong cái bài trả lời này thì hiểu.
Công nhận anh em voz nhẫn nại thật :)
mọi người vì 1 người mờ
Gạo sau khi nấu thì thành cơm.
nên hiểu như thế nào?
Mong là chủ topic đọc xong cái bài trả lời này thì hiểu.
Công nhận anh em voz nhẫn nại thật :)
nhẫn nại bởi vì bạn ấy có thái độ hỏi han đàng hoàng nên anh em không nỡ :pudency:
nhưng mà hỏi nhiều quá thì ... :sad:
talailata_01
03-02-2008, 19:25
Mong là chủ topic đọc xong cái bài trả lời này thì hiểu.
Công nhận anh em voz nhẫn nại thật :)
không phải bởi vì mình ko biết mà nên mình hỏi mọi người chứ bạn ,ko biết phải hỏi mà .Thanks mọi người nhé
talailata_01
03-02-2008, 19:45
mình rất cảm ơn mọi người đã giải thích cho mình hiểu "mã nguồn là gì và có cách nào để thấy đc,xem đc mã nguồn của chương trình ko",nhưng thật bây giờ mình đang ko biết hiểu thế nào cả vì mỗi bạn một nói đúng theo một cách # nên mình mơ hồ quá .Nhưng mình cũng xin thử tóm lại cách hiểu của mình xem có đúng ko nhé ,tất nhiên là đơn giản thôi (tập sự mà):"Mã nguồn đơn giản nó là mã lập trình của một chương trình sau, khi chạy nó trở thành mã máy nó có thể dùng để điều khiển một "thiết bị phần cứng nào đó" tuỳ theo người lập trình viết chương trình gì.Hoặc một chương trình phần mêm ứng dụng chạy trên một nền hdh nào đó chẳng hạn unikey
chạy trên windows xp .Và các đoạn mã lập trình tạo nên nó đó là mã nguồn của chương trình đó.Cái mã mà bạn "chiha" đã post nên cái này mình cảm ơn bạn".
Câc bạn cho ý kiến là cần sứa chỗ nào để mình hiểu thêm nhé mình còn kém mà.
DTT_11-1983
03-02-2008, 20:27
Mã nguồn đơn giản nó là mã lập trình của một chương trình sau, khi chạy nó trở thành mã máy nó có thể dùng để điều khiển một "thiết bị phần cứng nào đó" tuỳ theo người lập trình viết chương trình gì.
Nên hiểu là thực hiện một chức năng nào nó. Như phần mềm quản lý dùng để quản lý...
talailata_01
05-02-2008, 20:40
uh cám ơn bạn .
nguyentrungquan
05-02-2008, 21:24
Các bác à dạng ASM cũng gọi là mã nguồn mà. Đồ gì mà chẳng dịch được về nó. Đầy chương trình còn ghi 100% ASM nữa là.
đại đa só các chương trình phần mềm đều để thi hành ít nhất 1 tác vụ phần cứng nào đó (ko kể CPU xử lý và RAM lưu trữ tạm thời), trực tiếp hoặc gián tiếp.
thường thấy nhất là sau khi chương trình chạy xong, kết quả lưu vào ổ cứng, hoặc là kết quả được in ra màn hình, máy in.
chỉ có 1 bộ phận các phần mềm được viết để chạy trên nền các phần mềm khác (như web application viết để chạy trên web server và hiển thị thông qua browser) thì sẽ ko đưa kết quả trực tiếp ra phần cứng mà sẽ phụ thuộc vào cái phần mềm cơ sở kia (vd cùng 1 trang web PHP mà khi chạy trên IIS sẽ xử lý khác, khi chạy trên Apache sẽ xử lý khác, và trên các browser có thể hiển thị khác nhau).
nguyentrungquan
05-02-2008, 22:46
Nói vậy thôi cùng nhau học hỏi lo viết cho tốt chứ đi phá làm gì
Các bác à dạng ASM cũng gọi là mã nguồn mà. Đồ gì mà chẳng dịch được về nó. Đầy chương trình còn ghi 100% ASM nữa là.
không phải vậy, nếu hiểu như vậy thì nó phải được gọi là mã... "đích" chứ không phải nguồn.
mã nguồn là cái mà người lập trình đã sử dụng để viết ra chương trình đó, chứ không phải là kết quả sau khi biên dịch. Nếu mã nguồn là kết quả sau khi biên dịch thì hiển nhiên là người ta đã có nó rồi, đâu cần phải "mở" làm gì nữa.
Mã nguồn đơn giản nó là mã lập trình của một chương trình sau, khi chạy nó trở thành mã máy nó có thể dùng để điều khiển một "thiết bị phần cứng nào đó" tuỳ theo người lập trình viết chương trình gì.
ko thể nói thế này dc, trong máy tính chỉ có kernel của OS là trực tiếp làm việc với phần cứng thôi, các phần mềm khác làm gì có khả năng đó :|
nói là dùng để thực hiện 1 công việc gì đó thì chính xác hơn :/
talailata_01
06-02-2008, 22:49
minh nghi xp cung lam viec chu ban
minh nghi xp cung lam viec chu ban
bạn càng viết mình càng thấy bạn chả hiểu gì cả :pudency:, theo mình bạn chịu khó dùng cái máy tính cho ngon lành đi đã, từ từ rồi tìm hiểu mấy cái này :pudency:
anhtuyenbk
07-02-2008, 17:22
Đúng là bạn này chưa hiểu gì về lập trình gì cả.
Chẳng lẽ cái caculator lại là 1 phần mềm điều khiển 1 thiết bị phần cúng nào đó. Hô hô
Đúng là bạn này chưa hiểu gì về lập trình gì cả.
Chẳng lẽ cái caculator lại là 1 phần mềm điều khiển 1 thiết bị phần cúng nào đó. Hô hô
nếu ko thì con số trên màn hình hiện ra = niềm tin à? nếu bảo windows điều khiển màn hình thì tại sao cần phải có cái calculator?
phầm mềm cũng vẫn tham gia điều khiển các phần cứng, chỉ có không làm việc trực tiếp tới driver/firmware của phần cứng đó mà thông qua 1 môi trường trung gian (là OS) nhằm giúp cho việc lập trình dễ dàng hơn và hưởng ké 1 số lợi ích mà OS mang lại, vd như OS sẽ đảm nhiệm phần quản lý & giải phóng tài nguyên...
OS, driver, firmware chỉ là trung gian (có khi người ta còn gọi là phần dẻo) làm cầu nối giữa phần mềm & phần cứng. Phần cứng nó làm gì, màn hình hiển thị cái gì, máy in in ra cái gì đều là do từng chương trình ứng dụng nó quyết định đấy thôi.
...Mã nguồn đơn giản nó là mã lập trình của một chương trình sau, khi chạy nó trở thành mã máy nó có thể dù...
bỏ dấu "," đi, thay chữ "chạy" bằng chữ "dịch" :)
Mã nguồn đơn giản nó là mã lập trình của một chương trình sau khi dịch nó trở thành mã máy nó có thể dù...
:D
nguoisaigon
08-02-2008, 19:45
Em nà em chẳng biết gì về lập trình. Em chỉ chơi phần cứng. Nhưng em có vài nhời góp ý với bác tali gì gì ấy (nick khó nhớ quá :pudency:). Có gì thì bác đừng hờn, trách, buồn, giận gì nhá. Em so sánh như vầy: trình bác cỡ bằng học sinh tiểu học, câu hỏi của bác trình cỡ cữ nhân. Anh em trên này phải giải thích cho bác với kiế n thức ở bậc cử nhân. Cho nên trình của học sinh tiểu học thì ko thể hiểu được các cái giải thích ấy.Để hiểu được thì bác phải nâng trình của bác lên cỡ cỡ cấp 3 hoặc cao hơn đã rồi hãy quay lại với vấn đề này.
talailata_01
08-02-2008, 22:29
nguoisaigon noi rat dung cái vấn đề này mình chưa thông mà ,cảm ơn các bạn đã giải thích rõ cho mình .
nguoisaigon noi rat dung cái vấn đề này mình chưa thông mà ,cảm ơn các bạn đã giải thích rõ cho mình .
Vậy thì cái thread này close được rồi nhỉ:). Thấy càng để càng thấy nhảm :">
nvonimod
09-02-2008, 00:13
Chà các bác tranh cãi vấn đề nãy dữ dội quá nhỉ, nhưng sao lại lẫn lộn giữa drive và application thế nhỉ, ứng dụng là những phần mềm chuyên dụng cho 1 hoặc nhiều tác vụ nào đó, còn drive chỉ đơn thuần là điều khiển thiết bị thôi mà. Khái niệm application và drive là hoàn toàn khác nhau, đâu thể gộp chung được
như các bạn nói thì là không có cách nào để thấy mã nguồn của một chương trình àh,vậy thì yên tâm rồi.
bác nói thế là ko đúng, phải phân biệt chương trình nguồn mở, và chương trình nguồn đóng, chương trình nguồn đóng là loại chương trình đã được biên dịch thành application rồi, còn nguồn mở là 1 kiểu như sơ khai, và user có thể edit theo ý mình(đó là nói vậy chứ người đủ trình độ để mà edit thì có vẻ căng đó :) )
Theo mình được biết thì nó là vậy :D, những chương trình nguồn đóng cũng có thể dùng các chương trình decode để dịch ngược lại(nhưng nó cũng dịch theo kiểu sinh code thôi, chứ ko phải dịch ngược theo nguyên bản)
Góp chút ý kiến, sai chỗ nào mong các bác sửa giúp, em cũng noob vấn đề này :)
thấy chủ đề có tên hay quá, ngồi căng mắt qua 12 pages thì ra là kịch bản đẽo cày giữa đường...tranh luận kiểu này chia 2 hướng:
+1 bên ko có kiến thức nền nên tán nhảm, "em nghĩ thế", và đi theo luồng 8 này sẽ lên page 1K
+1 bên đã trải nghiệm rồi,bỏ sức giải thik rồi nhưng viết chả thấy mấy ai đọc và suy ngẫm, dân chúng thốt lên 1 câu "viết khó quá em chả hiểu" và bài viết bị bỏ phí
cả 2 kiểu tranh cãi này chả đi đến đâu. Nói thật đấy
Cứ hỏi-trả lời thế này đến bao giờ bạn ấy mới hiểu. Sao bạn không ra mua/dl 1 quyển sách lập trình, rồi làm theo sách viết 1 ct thật đơn giản, cái bạn gõ vào chính là mã nguồn đấy.
Nói mãi thì cũng giống như hướng dẫn đi xe đạp bằng lời :D .
beatƖemania
09-02-2008, 08:26
Chà các bác tranh cãi vấn đề nãy dữ dội quá nhỉ, nhưng sao lại lẫn lộn giữa drive và application thế nhỉ, ứng dụng là những phần mềm chuyên dụng cho 1 hoặc nhiều tác vụ nào đó, còn drive chỉ đơn thuần là điều khiển thiết bị thôi mà. Khái niệm application và drive là hoàn toàn khác nhau, đâu thể gộp chung được
bác nói thế là ko đúng, phải phân biệt chương trình nguồn mở, và chương trình nguồn đóng, chương trình nguồn đóng là loại chương trình đã được biên dịch thành application rồi, còn nguồn mở là 1 kiểu như sơ khai, và user có thể edit theo ý mình(đó là nói vậy chứ người đủ trình độ để mà edit thì có vẻ căng đó :) )
Theo mình được biết thì nó là vậy :D, những chương trình nguồn đóng cũng có thể dùng các chương trình decode để dịch ngược lại(nhưng nó cũng dịch theo kiểu sinh code thôi, chứ ko phải dịch ngược theo nguyên bản)
Góp chút ý kiến, sai chỗ nào mong các bác sửa giúp, em cũng noob vấn đề này :)
lol, bạn này cũng nên về học lại đi đã nhỉ :).
//Đầu năm mới chả có ý gì đâu, chỉ khuyên thật lòng thôi :pudency:
nguyentrungquan
09-02-2008, 08:43
Mã nguồn là cái thứ mà trình dịc họ sử dụng dịch ra mã máy để thành chương trình chạy. Chỉ cá biệt có rất ít chương trình viết bằng trực tiếp ASM hoặc ngôn ngữ máy thôi. Còn nói chung chúng đều viết bàng ngôn ngữ bậc cao. Ngay cả cái diễn đàn chúng ta đang dùng cũng là một chương trình viết bằng PHP đấy thôi do PHP dịch sang HTLM để chạy theo yêu cầu WEB động.
lol, bạn này cũng nên về học lại đi đã nhỉ :).
//Đầu năm mới chả có ý gì đâu, chỉ khuyên thật lòng thôi :pudency:
Anh đã nói rằng nên close cái thread nhảm nhí hỏi trả lời mà vẫn không hiểu này rồi mà. Anh và một số member đã giải thích đến mức đấy mà còn không hiểu thì lấy sách về mà học, hỏi nhảm kéo dài thread này để làm gì ?:what:
talailata_01
10-02-2008, 15:50
Mã nguồn là cái thứ mà trình dịc họ sử dụng dịch ra mã máy để thành chương trình chạy. Chỉ cá biệt có rất ít chương trình viết bằng trực tiếp ASM hoặc ngôn ngữ máy thôi. Còn nói chung chúng đều viết bàng ngôn ngữ bậc cao. Ngay cả cái diễn đàn chúng ta đang dùng cũng là một chương trình viết bằng PHP đấy thôi do PHP dịch sang HTLM để chạy theo yêu cầu WEB động.
vbulletin chứ bạn.
talailata_01
10-02-2008, 15:52
nghe anh phoenix close thôi.Cảm ơn nha
vbulletin chứ bạn.
:stick: không phân biệt đc vbulletin và PHP chăng?
vbulletin chứ bạn.
vbulletin thì kiếm ebook về làm 4rum mà đọc, còn php thì ebook về lập trình
beatƖemania
11-02-2008, 12:14
lol, mod vẫn chưa close cái thread này đi à...
chihaxinh
11-02-2008, 12:26
lol, mod vẫn chưa close cái thread này đi à...
Chắc là để coi tấu hài + kiểm tra độ nhiệt tình trả lời bài cho thành viên mới :D
talailata_01
12-02-2008, 16:27
thì cứ để đó ai muốn xem thì tuỳ
vBulletin® v3.8.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd.