Programming Discussion part5

Chia sẻ: Avsdvvsd Qwdqdad | Ngày: | Loại File: PDF | Số trang:5

0
26
lượt xem
4
download

Programming Discussion part5

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Open source, closed source và việc bảo vệ software Đa số software mình xài đều là bản được cr@ck hoặc có keygen hoặc serial kèm theo. Nghĩ lại nếu mình làm software thì mình sẽ bảo vệ nó ra sao đây, bà con có cao kiến gì ko? PS: trong UDS có bác Merc, bác chỉ bảo cái nì với nhé, thanks

Chủ đề:
Lưu

Nội dung Text: Programming Discussion part5

  1. Open source, closed source và việc bảo vệ software Đa số software mình xài đều là bản được cr@ck hoặc có keygen hoặc serial kèm theo. Nghĩ lại nếu mình làm software thì mình sẽ bảo vệ nó ra sao đây, bà con có cao kiến gì ko? PS: trong UDS có bác Merc, bác chỉ bảo cái nì với nhé, thanks. Trac(UDS) Theo Merc được biết, protect các software có rất nhiều dạng. Từ dạng đơn giản chỉ là yêu cầu số đăng kí tới các dạng sử dụng khóa cứng. Mục tiêu trước tiên của các coder là phải giảm thiểu khả năng disassembly (dịch ngược) và debug của các cr@cker : Sử dụng các packer, antidebug, CRC check ... Thêm đó là sử dụng một thuật toán mã hóa mạnh để mã hóa quá trình tạo License. Các soft lớn cỡ vài ba nghìn $ thì đa số sử dụng khóa cứng như Adobe Acrobat Reader, Orcad ... Thêm nữa, khi mà Internet được phổ biến rộng rãi như hiện nay thì các hãng phần mềm áp dụng quá trình đăng kí online (gần như là chỉ có bỏ tiền ra mua thì xài ổn). Merc(UDS) Nếu được thì Merc có thể nói chi tiết một số kiểu protect thường sử dụng được ko. Xin cảm ơn Sau khi suy đi tính lại thì cuối cùng mình quyết định là sẽ làm theo kiểu là dựa vào hardware ID để sinh ra serial, và quả thật là lưu ở đâu cũng sẽ có vấn đề hết. Theo mình thấy thì bất cứ việc reg nào cũng có chuyện so sánh (ở đây ko nói đến validate online nhé) giá trị A (giả sử là giá trị dựa vào hardware để sinh ra) và giá trị B (key mà mình đưa cho khách hàng). Mới đầu mình nghĩ mình sẽ nhúng cái đoạn đọc hardware ID + 1 đống cộng trừ nhân chia ==> A rồi sau đó sẽ so sánh với B. Có 2 vấn đề với cách trên: 1. Đoạn code xử lý trên bị decompile: mình làm .NET và mình cũng có 1 số tool để chống decompile nhưng thật sự là ko tin tưởng lắm. Mình cũng đã thấy 1 số soft chống decompile rất tốt nhưng ko biết nó chống bằng tool gì (tiêu biểu là SQL Examiner - google for more) 2. Giả sử chuyện (1) ko xảy ra, sinh ra giá trị OK=A. Giá trị A này sẽ được lưu ở 1 vùng nhớ (ko biết dùng từ này đúng ko) nào đó rồi sau đó user sẽ nhập giá trị B rồi so sánh với A, valid thì OK. Vấn đề là có thể access vùng nhớ đó để lấy ra giá trị A, lúc đó thì chỉ
  2. việc lấy giá trị đó=B là OK. Cái này làm mình đau đ hết sức, vì 1 lần mì đã ngồi B đầu ình nhìn 1 ông cr@ck cái XML Sp bằng các này (Mer biết ông này nhưng đừng nói ổng c py ch rc nhe, ổng là comput virus ang - anh Kh g ter gel hiêm đó - h đó làm c hồi chung cty với mình) Cuối cùn mình ng mãi rồi m ng ghĩ mình tính là theo các bước như sau: àm c 1. user x 1 softwa để scan hardware ID ==> A, e xài are D email A cho mình o 2. mình sẽ dựa vào cái A này đ sinh ra B để 3. nhúng B vào tron code rồi build --> exe g ng 4. khi re thì app sẽ dùng (1) + (2) ==> A eg ẽ A1 5. so sán A và A1, nếu match thì OK nh h Nói tới đ thì thấy nó hơi củ chuối nhưn mình cũn ko biết cách giải quyết ra sao n đây y ng ng nữa, hic DS) Trac(UD . . UDS) Merc(U Tôi xin c chút ý ki về cái n thường cracker sẽ dựa vào cá thông báo bằng có iến này: g ác o messageeBox đề phă ngược l tìm đoạn code chứa câu lệnh s sánh, sau đó ráng ch ăng lại n a so u hỉnh sửa để cho nó Jump tới đoạn k p kiểm tra đún Tôi thấy một soft c ý tưởng r hay là nế ng. y có rất ếu kiểm tra không đún nó không báo gì hết Quả thật như vậy rấ khó cho tụ cracker n a ng g t?. t ất ụi nó tìm được điểm để đặt breakpoi c đ int.
  3. Để chốn memory dump, bạn có thể để v biến tron đó chứa key mà khá hàng nh ng vài ng ách hập vào, mục đích là đá lạc hướn khi cracker cố gắng đọc từ me ánh ng g emory ra để lấy key so ể sánh như key thậ sự thì bạn nên encryp nó. ưng ật n p Tôi nghĩ không các nào để bả vệ tuyệt đối, chỉ có là chúng ta làm cho nó khó bị xử hơn ĩ ch ảo a ó ử thôi. 2(UDS) Nicole82 @Merc: mình nhớ lộn, nick củ anh Khiê rồi, hic. Merc cho m ủa êm mình hỏi là hoàn toàn có thể thay giá trị của 1 vùng nhớ đúng ko. G sử mình thay được giá trị thì c như các ớ Giả h c coi ch của mình cũng tèo luôn. Trên H h l HDD có vù nào đượ gọi là bấ khả xâm p ùng ợc ất phạm ko ta, , mình thì mĩnh nghĩ chắc là ko có, chạy ra ngoài DOS scan 1 hồ cũng ra (đ ì ĩ a S ồi đương nhiên là n soft của mình ko ha đến nỗi m bà con p ngồi cr ay mà phải r@ck nhưng mà biết cá bảo vệ thì g ách cũng quá lí thú) á @nicolee82: đồng ý Quote: Tôi nghĩ không các nào để bả vệ tuyệt đối, chỉ có là chúng ta làm cho nó khó bị xử hơn ĩ ch ảo a ó ử thôi. đúng là mmình cũng thấy cr@ke sẽ giới hạ vùng tìm kiếm bằng cách chec cái messa er ạn m g ck age box đó; nhưng mình cũng thấy là cr@ker hoàn toàn có thể man h y r nage xem hiện tại cái applicati đang dù vùng nh nào (có c tool như mình ko biết tên v cũng ko b ion ùng hớ cái ưng o và biết xài; chỉ n nhìn thấy th hôi) đọc các tài liệu về obfuscaste c .NET (n o cho ngay cả cái chữ obfusc cũng ch có nghĩa là i cate hỉ a làm cho khó hơn th chứ ko p là bảo v hôi phải vệ ) thì n cũng nói là có nhiều cách, 1 tro nó u ong những cách mà nó reccomend là đặt tên b dài, khó hiểu + ch lòng vòn đây có p r biến hạy ng, phải là ý của bạn ko nhỉ. Mà nói thi là nếu m muốn thì chạy lòng vòng cách mấy cũng b iệt mà ì bị mò ra. Xem ra c chuyện bảo vệ softwar là 1 câu c o re chuyện dài DS) trac(UD Quote: Xin Mer nói kỹ hơ cái này, c phải là m rc ơn có mình build l cái exe l lại luôn phải ko (nghĩa là o cr@cker remove cá đoạn chec Sẵn đây hỏi luôn, đây có phải là cách mà 1 số soft b r ái ck). y à bị
  4. cr@ck b bằng cách ch đè file exe? hép Cái này có nhiều cá đơn giả nhất là chuyển mã a ách, ản assembly củ đoạn cod check ser ủa de r. Nó kiểm tra nếu ser đúng thì n m r nhảy đến đo code A (đăng ký th oạn hành công) nếu sai nhả ảy đến đoạn code B (S n Serial không hợp lệ). Đ mà cr@ g Điều @cker làm ở đây là sửa lại chút xí để a íu nó làm n ngược lại, nhảy đến A thay vì đến B (je-->jne Có thể n cách này là 1 cách đơn n n e). nói y giản nhấ để cr@ck 1 soft, tuy nhiên trong nhiều trườ hợp thì lý thuyết l bạn đã cr ất k g ờng ì là r@ck nó, còn t thực tế thì vẫn là trial. Cấn phải đ tài liệu v thực hàn nhiều mớ được v đọc và nh ới Quote: Cái này dùng nhiều trong hack game và f serial. D u k fish Dùng một c chương trình view mem h mory để xem g trị của các thanh gh từ đó tha đổi giá tr của các th giá c hi, ay rị hanh ghi và cờ nhớ (Tìm à tài liệu A Assembly đọc sẽ rõ hơ đ ơn) Thân! soup(UDS) Chickns ) Nếu bác mà dùng hardware ID thì khéo n Vì hard c h D nhé. dware ID là cách chỉ ch 1 máy re 1 ho eg lần với 1 key tương ứng nào đó và key đó đem wa m khác sẽ ko work .N g ó máy Nhưng giả s có sử thể patch cái hardw ID kia lên cho các máy khác để chúng đ giống nh về h ware c đều hau hardwar ID thì tức là key kia sẽ valid lên những má đó . --> C cần soft được buy 1 re c n áy Chỉ ft lần, có th bị xài "c hể chùa" lên cá máy còn lại. ác Còn ngh ra phương thức sinh code thật p hĩ g phức tạp thì sao? Phức tạp tới độ k mò ra th ko hì cũng có, nhưng chi phí tính toá và suy n , án nghĩ để code sẽ tốn rất rất nhiều ,liệu sản phẩ e ẩm làm ra có đáng giá để bù hao lại chi phí b đầu ? ó ban Còn theo kiểu prote 1 chiều hay dùng đ mã hóa se o ect để ection file ,tức ko có p private key t thì ko cách gì giải mã được thì cũ bị tèo th nguyên tắc đầu : ch cần soft đ đ ũng heo hỉ được buy 1 lần ,từ valid key sẽ mò ra key dùn để mã hó và tất nhi là .... d ng óa iên Check O Online là phhương pháp có vẻ hoàn hảo về mặ protect .N n ặt Nhưng xét tr diện rộn rên ng thì ko ph ai cũng có Internet để connect mà đăng k software. Do đó soft khó đem lạ sự hải t kí t ại dễ chịu c khách hàng .(nếu l khách hà ko thân thiết lâu nă với sản p cho h là àng ăm phẩm ) Ví d dụ: xét bản NNorton Ant tivirus 2007 và 2005 h 2006 sẽ thấy sự khá biệt về lư 7 hay ác ượng người sử i dụng. Nhưng C Check Onlin theo kiểu nhận data từ Server đ decrypt các func bị hide thì sau khi ne u a để u đã valid ít nhất 1 bả khả năng làm ra 1 b non-che online l rất cao. ản, bản eck là
  5. Về .NET,dù là gì đi nữa thì cũng là code .Mà code thì thể nào cũng bị dịch ngược tất. Vấn đề là thời gian thôi. Anti-Cr@ck đúng là 1 câu chuyện dài. Trickyboy(UDS)
Đồng bộ tài khoản