Cách mà một phần mềm "crack" được tạo ra và tại sao các nhà phát triển không thể ngăn chúng lại

Các sản phẩm crack được tạo ra nhờ vào việc sử dụng trình gỡ rối (debugger). Đây là một loại chương trình đặc biệt được các lập trình viên dùng để tách cấu trúc chương trình của họ thành các phần cấu trúc nhỏ hơn với mục đích tìm kiếm lỗi và từ đó có thể sửa lỗi. Thêm vào đó trình gỡ rối còn có thể được sử dụng cho “kĩ thuật đảo ngược" (reverse-engineering là một kỹ thuật áp dụng trong CNTT, cơ khí, điện tử bằng cách tách nhỏ các cấu trúc của thiết bị ra để hiểu về cấu trúc và thuật toán của nó), để nhìn vào bên trong phần mềm và học về logic của nó. Kĩ thuật thứ hai hầu hết được sử dụng bởi các nhà nghiên cứu “mã độc” với mục đích nghiên cứu mã độc (hay virus máy tính) làm gì bên trong máy tính. Nhưng nó còn được sử dụng bởi những kẻ tấn công với mục đích crack hay vượt qua hàng rào đăng ký bản quyền hợp pháp và thỉnh thoảng, còn thay đổi hành vi bình thường của phần mềm, ví dụ bằng cách tiêm vào nó “mã độc”.

Để ví dụ, tôi sẽ cho rằng phần mềm bị crack được chuyển về được dịch về ngôn ngữ máy (native code) chứ không phải một ứng dụng nền tảng .NET hay Javascript. (Mặt khác thì nó khá là dễ dàng khi đọc code nguồn). Ngôn ngữ máy đã được biên dịch thì phải nói là hơi bị khó nhằn để nghiên cứu được. (Từ Native ở đây ý chỉ rằng mã đó được thực thi trực tiếp bởi CPU, GPU hoặc các phần cứng khác.)

Cho rằng giờ kẻ tấn công đang nhắm đến việc vượt qua rằng buộc về đăng ký và vì thế mà không phải trả tiền để dùng phần mềm. (Sau đó thì thế nào, mấy bạn này cũng post nó lên mấy diễn đàn hoặc torrent để mọi người down về xài miễn phí đổi lại mấy comment biết ơn và thả tym)

Giả định cho đơn giản rằng mã gốc được viết trên C++ và nó cái gì đó tương tự dưới đây:


Trong mẫu code này thì "RegistrationName" và "RegistrationCode" là các chuỗi kí tự đặc biệt mà người dùng hợp pháp của phần mềm sẽ nhận được sau khi mua. (Cái tên này thường là tên thật và email của người đó, và mã thì là một dãy kí tự đặc biệt mà sẽ gắn liền với cái tên này)

Với logic trên, hàm với tên "isRegistrationCodeGood()" sẽ kiểm tra xem "RegistrationName" và "RegistrationCode" có được chấp nhận bằng cách sử dụng một vài phương pháp kiểm tra quyền sở hữu. Nếu đúng, nó sẽ trả về true. Nếu không thì false. Kết quả cho ra sẽ quyết định nhánh nào hay mục tiêu xử lý nào sẽ được thực thi.

Vi thế logic trên có thể sẽ hoặc là hiện thị việc đăng kí sai và thoát:


Hoặc nếu mã đăng kí và tên phù hợp nhau, nó sẽ lưu thông tin đăng kí trong một nơi lưu trữ lâu dài (ví dụ như File System hoặc System Registry) sử dụng hàm tên là "rememberRegistrationParameters()" và rồi hiện ra thông báo cảm ơn đã đăng ký:


Người crack thì rõ ràng là muốn có được kết quả thứ hai cho bất kì mã đăng kí nào mà anh ta nhập. Nhưng có một vấn đề. Họ không có cái mã nguồn C++ , cái phần ví dụ ở trên (Mong là thế)

Vậy nên nguồn duy nhất cho những kẻ tấn công là tách mã nhị phân (một thứ mà luôn đi kèm với các phần mềm ở dạng file .exe hoặc .dll trên Windows, và hầu hết là các Unix thực thi trong gói .app trên Mac) Kẻ tấn công sẽ sử dụng trình gỡ rối để học về mã nhị phân và cố để xác định logic đăng kí mà tôi chỉ ra phía trên.

Tiếp theo bạn sẽ thấy bảng lưu đồ cho phần mã C++ ở trên, được hiển thị bằng trình gỡ rối bậc thấp. Hay có thể hiểu là sẽ đọc bằng mã nhị phân sau khi dịch:

(Cho dễ đọc tôi đã thêm phần chú thích vào bên phải với tên hàm và tên biến. Cái đó không hiển thị trên mà hình của kẻ tấn công.)


(Để hiểu cái được hiển thị ở trên bảng này kẻ tấn công phải có một lượng kiến thức tốt về Hợp ngữ để hiểu ngôn ngữ máy.)

Tôi cũng cần phải chỉ ra rằng một đoạn cấu trúc tách ra như trên là kết quả cuối cùng mà kẻ tấn công nhận được. Phần khó nhất giờ là tìm ra cái mình cần giữa hàng triệu các dòng mã na ná nhau. Và đây là thử thách chính của họ. Không phải ai cũng làm được nha nên vì thế mà crack phần mềm cũng là một tài năng khá ngầu đó.

Khi mà đã có được đoạn mã mà mình cần trong file nhị phân thì các cracker có hai lựa chọn:

  1. Thay đổi hay ráp lại chuỗi nhị phân
  2. Đảo ngược hàm "isRegistrationCodeGood()" và sao chép logic của nó để tạo ra một cái KeyGen (tự tạo mã sản phẩm)


Giờ thì xem qua cả 2 cách nào:

Lựa chọn thứ nhất khá là dễ hiểu. Vì kẻ tấn công đã đi xa đến đây rồi, chắc hẳn anh ta hoặc cô ta biết về Instruction Set của Intel x64 khá rõ (đây là một chỉ số cấu trúc máy tính). Vì thế họ đơn giản đổi điều kiện cú nhảy từ "jnz short loc_7FF645671430" trên địa chỉ 00007FF645671418 (khoanh đỏ trên ảnh) trở thành vô điều kiện, hoặc "jmp short loc_7FF645671430". Nó sẽ loại bỏ bất kì các đăng kí thất bại một cách hiệu quả và sau đó thì dù người dùng gõ gì thì sẽ đều được chấp nhận là một người dùng hợp pháp.

Cũng nên chú ý là sự thay đổi này có thể được thực hiện chỉ với việc thay đổi 1 byte trong mã nhị phân từ 0x75 thành 0xEB:


Nhưng cách tiếp cận này đến với một cái giá của việc thay đổi file nhị phân gốc. Vì điều đó kẻ tấn công cần bản vá của riêng mình (hoặc một file thực thi sẽ áp dụng điều chỉnh ở trên). Nhược điểm của phương pháp này cho kẻ tấn công là vá lại file thực thi gốc sẽ phá vỡ chữ kí ảo của phần mềm (một loại khóa bảo mật được máy tính tạo ra để đảm bảo các thông tin gửi đi không bị thay đổi), điều này có thể được thông báo cho người dùng (end-user) hoặc nhà sản xuất. Thêm vào đó các bản vá file thực thi này có thể dễ dàng bị đánh cờ và chặn bởi các ứng dụng bảo mật, chống virus, hoặc thậm chí là đưa ra đầu mối cho các nhà điều tra tội phạm về danh tính kẻ tấn công.

Giải pháp thứ hai thì lươn lẹo hơn. Kẻ tấn công sẽ phải học kĩ về hàm "isRegistrationCodeGood()" và sao chép nó vào một chương trình của riêng mình mà sẽ nhân bản cái logic đặt trong phần mềm gốc một cách hiệu quả và từ đó cho anh ta tạo ra bất kì mã đăng kí nào với mọi cái tên, bất kì người dùng nào với khả năng đăng kí mà không cần trả bất cứ khoản tiền nào.

Nhà sản xuất của nhiều các ứng dụng thịnh hành hiểu về nguy cơ ảnh hưởng của phương pháp thứ hai và đã thử ngăn ngừa bằng cách yêu cầu một bước xác nhận “chính chủ”. Đơn giản là thêm một bước vào sau phần đăng kí, khi mà phần mềm gửi tên đăng kí lên trên mạng máy chủ của công ty mà trả về thông tin liệu cái mã vừa rồi có phù hợp hay không? Cái này được Microsoft áp dụng khi bản mua Windows (họ gọi nó là “Kích hoạt Win”) và cả các hãng như Adobe,... Bước thứ hai này được chạy ngầm khi mà ứng dụng bắt đầu chạy và thường dẫn đến hủy luôn cái mã đăng kí trước nếu như nó được cho là bất hợp pháp.


Giờ thì bạn chắc cũng hiểu qua về khái niệm và phương pháp “crack” rồi phải không?

Giờ là câu hỏi thứ hai tại sao không thể nào mà có thể ngăn ngừa triệt để vấn đề này. Nó đều dẫn ra một vấn đề là mọi mã phần mềm thì đều chạy bởi CPU (trong trường hợp mã máy) hay một trình biên dịch JavaScript hoặc một trình biên dịch JIT (trong trường hợp của JavaScript và .NET). Điều này có nghĩa là có một cách để đọc và biên dịch bất cứ thứ gì, không kể độ phức tạp, miễn là đủ kiến thức và tính kiên trì thì kẻ tấn công vẫn có thể đọc được và rồi phá nó.

Có vài ý kiến về việc các phần mềm trên cloud thì bảo mật hơn, thì đúng vậy vì mã nhị phân của nó lưu trên sever và các người dùng thì không thể truy cập trực tiếp nó được. Và mặc dù các phần mềm đám mây rõ ràng là công nghệ tương lai, nó vẫn có một vài nhược điểm lớn mà khiến nó không bao giờ thay thế hoàn toàn các ứng dụng kiểu truyền thống bây giờ. Liệt kê ra vài cái:

  • Không phải ai cũng có kết nối Internet hoặc thoải mái với việc đưa dữ liệu lên Internet. Thêm vào đó đường truyền Internet có thể quá đắt đỏ hoặc quá chậm khiến ứng dụng chạy rất lag.
  • Rồi thì có câu hỏi về việc phân phối tính toán. Ví dụ, Blizzard Entertainment sẽ không bao giờ để “World of Warcraft” chạy hoàn toàn trên sever vì một lượng tài nguyên khổng lồ cần phải xử lý với mỗi cảnh của từng người chơi. Vì thế họ thấy hợp lý nhất là để máy tính cá nhân người dùng xử lý cái này

Là một kĩ sư phần mềm, tôi hoàn toàn không thích cái trò đánh cắp bản quyền này chút nào. Nhưng tôi vẫn phải chấp nhận và sống với nó thôi. Tin tốt là không có quá nhiều người thực sự ngồi mày mò tìm kiếm các bản crack phần mềm (chắc chưa tới Việt Nam ). Vấn đề chính với những người xài crack là phải tải về một bản vá, hoặc KeyGen hay Patcher của người làm ra, họ phải tin tưởng hoàn toàn rằng người đó không cho bất cứ thứ gì mờ ám vào phần mềm mà không được nêu ra (những thứ như Trojan, mã độc hay keylogger). Vì thế câu hỏi đặt ra là liệu có đáng đánh đổi tiền mua bản quyền với nguy cơ nhiễm virus trên hệ thống hay không?

Xét về khía cạnh khác có rất nhiều các nhà phát triển phần mềm phản ứng rất tiêu cực với bất cứ nỗ lực nào để trộm bản quyền phần mềm của họ (Tôi cũng từng thế). Và rồi họ thể cài vào thêm các loại phương pháp phòng chống -- mọi thứ từ đánh lừa quy trình đảo ngược, hay thêm các “bẫy” trong mã mà có thể phá hoại nếu nó phát hiện đang bị gỡ ra, cho đến làm rối mã nguồn thậm chí là ép vào các sơ đồ DRM hoặc chặn người dùng từ một số quốc gia cố định. Tôi, theo quan điểm cá nhân tránh xa tất cả các thứ này. Và đây là lí do:

  1. Bất cứ chiến thuật chống đảo ngược nào cũng sẽ bị vượt mặt nếu người đó đủ kiên trì. Vì thế sao tôi phải bận tâm và tốn thời gian của mình thay vì đầu tư nó để thêm những thứ hữu dụng cho người dùng hợp pháp?
  2. Một vài gói mã thêm vào có thể gây ra cảnh báo trên các trình diệt virus, mà điều này thì rõ ràng là không tốt cho việc bán sản phẩm rồi. Nó cũng tạo nên sự phức tạp không cần thiết khi người phát triển muốn sửa lỗi.
  3. Thêm các bẫy vào mã có thể hại chính những người dùng hợp pháp, mà điều đó không chỉ gây khó chịu và có thể dẫn tới kiện tụng.
  4. Bất cứ sơ đồ DRM nào cũng sẽ bắt được khoảng 100 bản lậu và tạo sự bất tiện rất lớn cho 10000 bản hợp pháp. Vậy thì nó có ích gì cho các khách hàng thực sự của bạn nhỉ?
  5. Thống kê của chúng tôi cho thấy 75% các phiên bản phần mềm lậu đến từ Trung Quốc, Nga, Brazil,... (Tôi hiểu lí do có thể là vì nguồn thu nhập thấp ở các nước trên). Vấn đề chính với chúng ta là nếu ra mạnh tay thêm vào các DRM hoặc các bước kiểm tra chính chủ nghiêm ngặt, nhiều người vẫn muốn sản phẩm miễn phí sẽ đơn giản là chuyển sang trộm mã thẻ tín dụng. Và việc này thì nằm ngoài tầm kiểm soát của bạn và tôi. Hệ thống của ta sẽ dùng nó để gửi họ những mã bản quyền hợp pháp. Kết quả là chúng ta mất tiền trả cho bản quyền, thêm vào đó các công ty tín dụng sẽ phải bồi thường một khoảng phí đến tài khoản của chúng ta từ 0.25 đến 20 đô mỗi lần giao dịch bất hợp pháp.
  6. Một vài công ty còn có thể được lợi từ việc cho phép các bản lậu phần mềm lưu hành. Lấy Microsoft ra làm ví dụ, họ được quảng cáo miễn phí từ những người dùng hệ điều hành Windows, tương tự với Photoshop Adobe. Đây là một điểm tốt mà tôi đồng ý.

HS Master 2018 VIP Free

HS Master - Anti Recoil Technology

Become a pro at PUBG. Stop looting for other players, now you will kill them. Full recoil control. Individual weapons shooting as automatic. Sensitivity settings. Auxiliary tables for long sights. 100% secure, it's not hack. Random algorithm. 100% updated to 2018. 


Chuyện đời "hacker hai mang" Sabu: kẻ phản bội Anonymous, người hùng của FBI

Sau khi bắt tay với chính phủ khui ra tổ chức hacker hàng đầu thế giới, anh có một cuộc hành trình dài đầy mồ hôi và nước mắt chạy trốn quá khứ của mình.


Ngày mùng Tám tháng Sáu năm 2011, lúc ấy trời vẫn còn sớm sương, Hector Monsegur ngồi trong một căn phòng nhỏ với một dàn các máy tính xung quanh: anh đang ngồi tại văn phòng của FBI đặt tại Manhattan. Đêm hôm trước, anh vừa bị một nhóm đặc vụ FBI bắt giữ vì đã gửi thông tin thẻ tín dụng ăn cắp cho một người quen.

Nhưng đó mới chỉ là tội trạng gần lúc bị bắt nhất của Hector Monsegur – tin tặc khét tiếng với biệt danh Sabu: quá khứ tội lỗi của anh bao gồm xâm nhập hệ thống của những tập đoàn trị giá nhiều tỷ USD, tấn công vào chính phủ nhiều quốc gia, thành viên cấp cao trong tổ chức Anonymous đình đám và là đồng sáng lập/trùm sò của tổ chức tin tặc mũ đen nổi tiếng có tên LulzSec – Lulz Security.


Mọi chuyện có thể đã khác, khi mà Monsegur hoàn toàn có thể gọi cho mình một luật sư bào chữa, hoàn toàn có thể từ chối nhận tội dưới danh nghĩa hacker "Sabu". Nhưng anh đã không làm vậy và anh có lý do của mình. Lúc bị bắt, Monsegur đang là người chăm sóc cho hai cô cháu của anh mới có 5 và 7 tuổi. Mẹ của hai cô bé đã vào tù vì tội buôn bán heroin và cha của hai bé đã không còn nơi đây nữa. Anh muốn làm mọi thứ để có thể được tiếp tục chăm sóc hai cô cháu, anh lo sợ những gì có thể xảy ra dưới mái nhà của viện mồ côi.

FBI đã nhìn ra điểm yếu này, và mở cho anh một lối thoát, một giao kèo mà anh Monsegur không thể khước từ. Anh có thể giúp Cục Điều tra Liên bang thâm nhập vào giới hacker ngầm để khai thác thông tin.


Bản năng của một hacker khiến anh từ chối thẳng thừng lời đề nghị này. "Tôi cảm thấy rằng tôi đang phản bội lại chính mình, đi ngược lại với đại nghĩa mà mình tin tưởng". Nhưng rồi, một bản năng khác trỗi dậy – Anh nghĩ tới hai cô gái bé nhỏ mình đang chăm sóc.


Mặt trời lên cao cũng là lúc FBI đưa anh tới tòa. Anh đã được tạm thả nhờ quyền bảo lãnh. Monsegur về nhà, tắm rửa cho sạch sẽ và chiều hôm đó, anh tới trường đón hai cô cháu gái. Ba người họ gặp lại nhau, mừng mừng tủi tủi giữa những giọt nước mắt, với ý nghĩ rằng họ đã có thể phải xa nhau mãi mãi.


Trong vòng chín tháng tiếp theo, Monsegur hoạt động bí mật cho chính phủ Mỹ. Anh vẫn cứ tiếp tục hoạt động như một hacker trong cộng đồng ảo ấy, như chưa từng có chuyện gì xảy ra. Điểm khác biệt, đó là sau mỗi phiên trò chuyện với các "đồng nghiệp" hacker khác, anh lại báo cáo lại mọi thứ cho cơ quan điều tra, nhằm truy tìm tung tích những hacker giấu mặt.

Ngày mùng Sáu tháng Ba năm 2012, với một loạt các bài báo nêu lên những nhân viên hành pháp không tên đang truy lùng tin tặc, người ta biết tới sự phản bội giới hacker của Hector "Sabu" Monsegur. Không lâu sau sự kiện này, tòa án tung ra giấy tờ ghi rõ hoạt động nằm vùng và hợp tác với chính quyền của Monsegur.

"Hôm mùng Năm tháng Ba, người ta ai cũng yêu quý Sabu, tôi là chàng trai tốt bụng nhất Vũ trụ này", Monsegur nhớ lại. "Ngày mùng Sáu tháng Ba, tôi là Benedict Arnold. Tôi là một kẻ phản bội. Tôi là Sammy ‘Bò Mộng’ Gravano. Tôi là kẻ bẩn thỉu nhất từng tồn tại trên đời". Anh nêu lên ví dụ về những cá nhân phản bội nổi tiếng trong lịch sử, so sánh hành động của mình với bậc tiền bối.


Monsegur không muốn nói nhiều về khoảng thời gian anh làm việc cho FBI. Một mặt, hành động của anh đã khiến thế giới ngầm coi anh như một kẻ đồi bại. Nhưng mặt khác, anh làm vậy là để cứu lấy hai cô cháu nhỏ của mình, ít nhất là cho tới khi mẹ hai bé mãn hạn tù. Anh, dù là một tội phạm, nhưng vẫn là ngôi sao chỉ đường cho hai cô bé không còn người thân. Cái đêm mà anh quyết định phản bội lại Anonymous, anh đã đặt chân vào một con đường mới và khác, con đường mà anh đã phải vật lộn tìm một lối thoát.


Sau khi chính phủ Mỹ công khai danh tính của Monsegur hồi tháng Ba năm 2012, anh đã cố gắng tránh con mắt dư luận. Phóng viên từ khắp nơi tràn tới căn hộ nhỏ của anh, FBI đã di chuyển anh, hai cô gái nhỏ được đưa về cho mẹ của chúng chăm sóc – người mẹ đã mãn hạn tù trước đó vài tháng. Nhưng tháng Năm cùng năm ấy, FBI phát hiện ra anh Monsegur vẫn đang giữ một blog tâm sự có nhắc tới FBI. Người ta đã tước quyền bảo lãnh của Monsegur, anh bị đưa tới Trung tâm Cải tạo Metropolitan, nơi được vài người nhắc tới với cái tên "nhà tù Guantanamo của thành phố New York".

Anh đã phải ngồi chung xà lim với những kẻ khủng bố, những tên tội phạm bắt cóc, nhưng trong chính thời gian ấy anh lại tìm thấy chính mình: anh đã nghĩ về những gì mình đã làm, những gì mình nên tập trung trong tương lai.


Trước Giáng Sinh, Monsegur được thả cũng vẫn nhờ quyền bảo lãnh. Gia đình tới đón anh, họ chiêm ngưỡng con người mới được thả tự do này ngấu nghiến ngon lành một cái bánh hotdog, uống cạn một cốc soda và hút một điếu thuốc – những thứ xa xỉ không người tù nào dám mơ tới. Anh vui sướng vì đã quay trở lại được với hai cô cháu gái, và hiểu rằng mình cần một công việc trong sạch để có thể tiếp tục hỗ trợ hai cô bé cũng như gia đình mình.


Nhưng mọi chuyện không đơn giản vậy, nhất là khi anh nhận ra rằng mình đang trong thời gian thử thách: anh không được phép lại gần cái máy tính, và điều đó đồng nghĩa với việc anh không được làm thứ duy nhất mà anh biết, kỹ năng duy nhất có thể kiếm ra tiền nuôi sống gia đình. Bản án của anh vẫn đang trong giai đoạn xem xét và bị trì hoãn ngày này qua tháng khác. Dì của anh, người đã cùng người bà quá cố của anh chăm sóc Monsegur từ thuở nhỏ nhớ lại rằng anh đã chịu quá nhiều áp lực, đối diện quá nhiều trắc trở đến mức mất cả thị lực trong một thời gian ngắn. Anh nhận lời khuyên rằng nên đi khám tâm lý, nhưng anh chưa bao giờ làm vậy.

Gần ba năm sau khi Monsegur bị bắt, anh mới được đứng trước tòa nghe tuyên án. Nhưng đó là một buổi tuyên án mà có lẽ chưa phóng viên dày kinh nghiệm nào được chứng kiến: cả luật sư bào chữa, ủy viên công tố lẫn thẩm phán đều ca ngợi hành động của Monsegur. Anh được tuyên bố đã hoàn thành bản án của mình với 7 tháng ngồi tù đã được thực hiện, là quá ít so với quy chuẩn ít nhất 2 năm cho tội danh của anh. Đã có lúc anh đối diện với bản án 120 năm cơ! Thẩm phán cười với anh rằng bà rất mong Monsegur sẽ sử dụng kỹ năng của mình vào mục đích tốt đẹp hơn.


Monsegur đã được thả tự do, nhưng trong vòng một năm tiếp theo, việc sử dụng máy tính của anh vẫn bị theo dõi chặt chẽ. Anh làm nghề lái xe tải trong thời gian ấy để phụ giúp gia đình. Lệnh cấm được dỡ bỏ vào tháng Năm năm 2015, nhưng một lần nữa bước vào thế giới mạng, anh vẫn thấp thỏm lo sợ.

Đúng hơn, phải dùng từ "hoang tưởng" để mô tả cảm giác của anh Monsegur lúc ấy. Anh lo rằng mình sẽ bấm vào một đường link lệch lạc nào đó, chính quyền sẽ lại đưa anh vào tù lần nữa. Nhưng kỹ năng máy tính là thứ duy nhất anh thấu hiểu, anh phải vượt qua nỗi sợ ấy. Monsegur nộp đơn xin làm việc cho ngành mà anh từng một thời khích bác, khinh rẻ: ngành bảo mật thông tin mạng.


Với đa số các công ty, quá khứ tội lỗi của anh đã làm quá đủ để họ đánh trượt anh từ đầu vào. Anh còn nổi tiếng với danh nghĩa "hacker bán rẻ bạn bè" – một thứ mà nhà tuyển dụng phải cân nhắc kỹ lưỡng. Trên nhiều mặt báo, anh Monsegur không có được một hình ảnh mấy thiện cảm. Đơn từ chối bay về nhà anh cũng nhiều như số đơn xin việc anh gửi đi vậy.

Mùa Hè năm 2015, Benjamin Caudill – người sáng lập ra công ty bảo mật mạng nhỏ có tên Phòng thí nghiệm Bảo mật Rhino – đứng giữa cơn bão dư luận. Lúc ấy Caudill công bố một công cụ gây tranh cãi, cho phép bất kỳ ai cũng có thể lên mạng nhưng giấu được địa chỉ MAC của mình. Không lâu sau đó Caudill từ bỏ dự án này vì lý do không rõ. Trong khi cư dân mạng dò xét và chỉ trích Caudill, có một người thấu hiểu anh và nhắn tin cho anh, đó chính là Monsegur.

Vài năm trước, Caudill và Monsegur đang ở hai đầu chiến tuyến. Khi Monsegur đang là thủ lĩnh của LulzSec thì Caudill đang làm việc cho Boeing, công ty lúc ấy đang bán máy bay và vũ khí cho chính phủ Mỹ. Caudill đã từng thắc mắc làm thể nào để bảo vệ công ty mình trước Anonymous và giờ đây, một trong những kẻ từng thân thiết với Anonymous nhắn tin thăm hỏi anh.


Caudill có những nghi ngờ của riêng mình – "tiếng lành" của Monsegur đã bay rất xa - nhưng cũng ngay lập tức trả lời tin nhắn. Họ nhắn tin trên Twitter, cuộc trò chuyện ngắn sớm biến thành một cuộc điện thoại kéo dài nhiều tiếng đồng hồ. Sau khi hai người vui vẻ trao đổi với nhau về những vấn nạn bảo mật hiện nay, anh Caudill nhận ra rằng người đang nói chuyện với mình chẳng giống người mà thông tin trên mạng vẫn mô tả.

"Tôi sẽ chẳng tin nếu như tôi không thực sự trải nghiệm những lời mà anh ấy nói", Caudill nhắc lại. "Anh ấy thực sự là một cá nhân cực kỳ hiền lành, tốt bụng".

Họ đã trở thành bạn như vậy đó. Và khi biết được rằng Monsegur đang tìm kiếm một việc làm, Caudill đã liên hệ với tất cả những người mà anh biết có thể giúp được. Trái với kỳ vọng, chẳng ai giúp một kẻ tù tội cả. Thế là chính Caudill đứng ra thuê Monsegur về làm cho mình vào mùa Thu năm 2015.


Lúc ấy, công việc làm ăn của Rhino đang khấm khá lên, và lúc ấy, có một khách hàng thường xuyên xuất hiện với những công việc gai góc vào bậc nhất. Caudill đã chỉ định Monsegur làm cùng dự án này. Anh Monsegur ngạc nhiên tột độ trước lời đề nghị này và, theo như lời Caudill nói, "hoàn thành công việc với mức xuất sắc". Anh Caudill sau đó đã giới thiệu anh Monsegur với nhiều khách hàng khác. Vài người do dự, một số người từ chối thẳng thừng. Nhưng đã có những cá nhân gật đầu đồng ý. Sau một vài dự án nhỏ lẻ, Caudill thuê Monsegur về dưới danh nghĩa nhân viên toàn thời gian.


Ngày hôm nay, anh Monsegur là giám đốc dịch vụ đánh giá tình hình tại Rhino, có trách nhiệm điều động hack mũ trắng thử nghiệm hệ thống mạng của khách hàng trước khi hacker mũ đen tấn công chúng. Monsegur là sếp của một đội ngũ 5 người, mà công việc của anh lại giống hệt với hồi anh chưa hoàn lương – chỉ trừ một điều là đội ngũ hacker của anh sẽ không lợi dụng lỗ hổng, mà báo cáo lại với khách hàng và tìm cách sửa chúng.

Anh Monsegur không nhớ quãng đời phạm tội của mình. "Tôi đã chán công việc làm tin tặc rồi", anh nói. "Tôi coi nghiên cứu bảo mật như một công việc thực thụ và biến nó thành công việc đồng đều, không cao trào nhất có thể. Tôi cố gắng tối ưu hóa kết quả cho khách hàng để xong việc sớm và làm một thứ gì đó khác".


Monsegur, giờ đã 34 tuổi, coi đây là thành quả của việc già dặn hơn và trưởng thành hơn. Nhưng dì anh có vẻ hơi buồn về sự thay đổi này. "Nó kiệt sức khi ngồi bên màn hình máy tính", Nó chẳng còn yêu thích máy tính nữa. Không còn tình yêu trong mắt nó giống như thời tôi cho nó chiếc máy tính đầu tiên".

Và anh Monsegur có lời khuyên với giới trẻ như thế này: Đặt điện thoại xuống, đóng laptop lại và dạo bộ ra ngoài hưởng chút khí trời đi. Và còn một điều nữa, là đừng bao giờ đi vào vết xe đổ của anh.

Anh cũng nghĩ lại về những vụ tấn công xưa kia mình đã từng chỉ đạo và thực hiện, những vụ lùm xùm to nhất liên quan tới nhóm Anonymous. Anh nhiều phần hối hận, rằng ngày xưa mình đã nghĩ đó là nghĩa lớn nhưng thực chất lại không thay đổi được gì nhiều. Nhiều vụ để lộ những thông tin cá nhân đến giờ vẫn còn có thể được sử dụng, và anh thấy xấu hổ về việc đó.

Tới ngày hôm nay, dì của anh Monsegur vẫn lo lắng về sự an nguy của gia đình nhỏ mà mình chung tay gây dựng. Chính phủ "đã có cái mà họ muốn. Họ đã có thứ họ cần. Và họ để chúng tôi lại đây tự xoay sở cho cuộc sống của mình".


Monsegur nói rằng chính phủ đã quá lời về những đóng góp của anh trong việc hạ bệ những đồng nghiệp hacker của mình. Trong buổi tuyên án, người ta đã đưa ra luận điểm rõ ràng rằng anh đã phải chịu đựng rất nhiều, luật sư bào chữa của anh nhấn mạnh vào quyết định công bố danh tính anh từ rất sớm. Chính phủ đang tìm kiếm "hiệu ứng ngăn chặn" hoạt động hack.

Monsegur đồng tình, rằng: "Mục đích của họ là dọa Anonymous sợ chết khiếp và họ đã thành công. Một thành công hoàn hảo". Giới truyền thông bám lấy từng từ, họ đã không khoan nhượng trước kẻ phạm tội Hector Monsegur. Điều đó đã khiến anh đau lòng khôn xiết.

Ngựa quen đường cũ là có thật. Đôi lúc anh Monsegur vẫn phải tự ngăn mình đi vào con đường xưa. Nhưng anh biết rằng cuộc đời mình đã rất khác nếu như anh đưa ra một lựa chọn khác, anh may mắn rằng mình đã có một cơ hội thứ hai để làm lại. "Tôi đã lựa chọn nó", anh nhắc lại câu này nhiều lần, như một khẩu hiệu khiến mình vững tâm hơn.


Hai cô cháu của anh Monsegur giờ đã 12 và 14 tuổi, đã đủ lớn để biết anh đã làm gì trong quá khứ và vì sao đó lại là việc sai trái. Cả hai cô bé đều là học sinh danh dự, và mẹ của hai bé nói rằng cả hai đều đang có khởi đầu rất tốt.

Anh Monsegur cười lớn và nói rằng anh tha thiết muốn chặn hai cô nhóc khỏi thế giới mạng kia. Và anh biết rõ rằng hai bé sẽ giận anh lắm nếu anh cố làm điều đó. Anh chỉ nghĩ đơn giản rằng ngoài kia có rất nhiều kẻ xấu chỉ trực chờ hãm hại những linh hồn ngây thơ vô tội.

Nhưng anh không khỏi nở nụ cười mãn nguyện, nhiều phần vui sướng khi nhắc tới việc cô bé 12 tuổi đang rất hứng thú với công việc lập trình. Điều tiếp theo mà anh sẽ làm, đó là tìm cho cô bé một chương trình lập trình vừa sức để tha hồ "nghiên cứu".

Tham khảo Bloomberg
Nguồn: Genk

Đổi nút View Original thành ảnh gốc trên weibo


Custom JavaScript for websites
setInterval(function() { if ($('.layer_multipic_preview').length === 0) return; var original_btn = $('.layer_multipic_preview .W_btn_alpha')[2]; var thumb_img = $('.layer_multipic_preview .pic_show_box .pic img')[0]; if (original_btn === undefined || thumb_img === undefined) return; var large_img = $(thumb_img).attr('src').replace(/\/mw(\d+)\//g, '/large/'); $(original_btn).removeAttr('action-type').attr('href', large_img).attr('target', '_blank'); }, 1000);

10 Thư viên PHP mà bất kỳ ai cũng không thể bỏ qua


Phát hành lần đầu năm 1995, ngôn ngữ PHP hiện tại đã vượt qua ngưỡng tuổi uống rượu hợp pháp vài năm, nhưng điều này không ngăn được việc nó vẫn là một trong những ngôn ngữ lập trình phổ biến nhất trên mạng và là sự lựa chọn đầu tiên của nhiều developer back-end.

Việc sử dụng các thư viện có sẵn của người khác chia sẻ để tiết kiệm thời gian và hạn chế lỗi phát sinh là rất hữu ích với các developer PHP. Có rất nhiều thư viện PHP như vậy được phát hành mỗi ngày, và dưới đây chúng tôi lựa ra 10 thư viện PHP mã nguồn mở hữu ích và thú vị nhất mà bạn phải xem qua.

1. PChart

PChart là một thư viện PHP ấn tượng giúp khởi tạo những biểu đồ trực quan từ những dữ liệu dạng văn bản. Các dữ liệu có thể được thể hiện dưới dạng cột, biểu đồ, và nhiều dạng đồ thị khác bằng cách sử dụng các truy vấn SQL.

2. PHP-ML


Một cách tiếp cận Machine Learning (ML) mới mẻ trong PHP, PHP-ML là một thư viện thú vị để thử nghiệm với ML. Nó cung cấp cho bạn một cách thức dễ dàng để sử dụng API để đào tạo bot của bạn đưa ra những dự đoán dựa trên dữ liệu đầu vào. Nó cung cấp một loạt các thuật toán khác nhau để nhận dạng mẫu và tính toán những thống kê phức tạp.
PHP-ML đòi hỏi phiên bản PHP 7 trở lên.

3. Opauth

Thư viện cho phép người sử dụng xác thực bản thân thông qua những tài khoản cá nhận của họ trên các trang mạng xã hội hoặc các dịch vụ khác. Tất nhiên luôn bao gồm tất cả những tên tuổi lớn hiện nay như: Google, Facebook, Twitter, Github, Instagram, LinkedIn.
Opauth được hỗ trợ bởi nhiều PHP framework, nó có thể dễ dàng tích hợp trong hầu hết các ứng dụng PHP hiện tại, có thể kể tới: vanilla (plain) PHP applications, CakePHP, CodeIgniter, FuelPHP, Laravel, PrestaShop, và nhiều hơn nữa.

4. PHPMailer

Không có bộ sưu tập thư viện PHP nào hoàn thiện nếu thiếu đi PHPMailer – thư viện tạo email đầy đủ tính năng cho PHP. Dự án này được hỗ trợ bởi một cộng đồng rất lớn và đang được sử dụng trong nhiều hệ thống phổ biến như WordPress và Drupal, khiến nó trở thành sự lựa chọn an toàn nhất cho việc gửi email trong PHP. Nó hỗ trợ SMTP, có thể làm email HTML, và nhiều hơn nữa.

5. ImageWorkshop

ImageWorkshop là một thư viện mã nguồn mở cho phép bạn thao tác trên các lớp hình ảnh (layers). Với nó, bạn có thể tùy ý thay đổi kích thước, cắt xén, tạo hình thu nhỏ (thumbnails), thêm bản quyền hình (watermark) và nhiều hơn nữa. Đây là một ví dụ:
ImageWorkshop được phát triển để thực hiện các thao tác phổ biến trên hình ảnh một cách dễ dàng nhất trong PHP. Nếu bạn cần một công cụ mạnh hơn, có thể tham khảo thư viện Imagine.

6. Carbon

Carbon là một hàm API mở rộng đơn giản dành riêng để làm việc với ngày giờ bằng cách tăng cường các lớp dữ liệu (class) thông qua một số phương pháp hữu ích. Ví dụ:

7. Ubench

Ubench là một thư viện nhỏ dùng để đánh giá chấm điểm đoạn mã PHP của bạn. Nó theo dõi thời gian thực thi mã code và tình trạng sử dụng bộ nhớ. Sử dụng Ubench để chạy kiểm tra trong quá trình phát triển thực sự là một ý tương hay. Đây là một ví dụ:

8. Faker

Faker là một thư viện PHP tạo ra các dữ liệu giả cho bạn. Nó khá tiện dụng và hữu ích khi bạn cần một cơ sở dữ liệu thử nghiệm hoặc tạo ra các dữ liệu mẫu cho ứng dụng web của bạn. Nó cũng rất dễ dàng để sử dụng:
Miễn là bạn tiếp tục truy cập vào các thuộc tính của đối tượng, nó sẽ tiếp tục quay trở lại các dữ liệu được tạo ngẫu nhiên.

9. Omnipay

Omnipay là một thư viện xử lý các thanh toán cho PHP. Nó có một API rõ ràng và nhất quán và nó hỗ trợ hàng chục cổng thanh toán. Với thư viện này, bạn chỉ cần tìm hiểu một API và làm việc với nhiều bộ xử lý thanh toán khác nhau. Chính việc sử dụng một API nhất quán giúp cho thư viện có thể dễ dàng hỗ trợ nhiều bộ xử lý thanh toán cùng lúc hoặc chuyển đổi khi có nhu cầu.

10. PHPGeo

PHPGeo là một thư viện đơn giản cho phép bạn tính toán khoảng cách giữa các tọa độ địa lý với độ chính xác cao. Thư viện này phục vụ tốt cho những ứng dụng làm việc dựa trên tọa độ địa lý. Để có được tọa độ, bạn có thể sử dụng API vị trí của HTML5, API của Yahoo.

Những marketer thầm lặng


Có thể bạn không biết rằng tài khoản Facebook của mình có ít nhất 3 mật khẩu.

Ngoài mật khẩu thường dùng, bạn có thể đảo ngược chữ thường – chữ hoa và vẫn vào Facebook bình thường. Ví dụ, nếu mật khẩu của bạn là eCoBlAdEr123, thì bạn vẫn có thể điền EcObLaDeR123.

Hơn nữa, bạn cũng có thể viết hoa chữ cái đầu tiên. Ví dụ, với mật khẩu trên kia, bạn vẫn có thể điền ECoBlAdEr123, và dùng Facebook bình thường. Bạn thử đi!

Đây không phải là lỗi. Xin nhắc lại, đây không phải là lỗi. Facebook để ý rằng, rất nhiều người dùng hay bỏ quên, ấn nhầm phím Capslock. Với những trang thông thường khác, người dùng sẽ nhận được một thông báo sai mật khẩu, và nhắc nhở tắt Capslock. Việc này khiến ta khó chịu, dù nhỏ (cứ tưởng tượng sai vài ba lần, khi sự khó chịu tích tụ, bạn sẽ hiểu). Facebook không thích điều đó. Họ muốn trải nghiệm người dùng được càng mượt mà càng tốt. Thế nên họ đã cho phép đảo ngược chữ thường – chữ hoa trong mật khẩu.

Còn đối với việc viết hoa chữ cái đầu tiên, Facebook để ý rằng người dùng di động rất hay bị mặc định viết hoa chữ cái đầu. Thế nên họ cho thêm mật khẩu thứ 3 viết hoa chữ cái đầu, giúp người dùng di động không phải vất vả dò lại mật khẩu từ đầu.

Trong gần 1,5 tỉ người dùng, không mấy ai biết được tiểu tiết này, và thậm chí khi họ lỡ quên bật Capslock, hoặc bị mặc định chữ cái đầu, thì lúc đăng nhập vào Facebook họ cũng chẳng để ý đến những gì Facebook đã làm cho họ. Tất cả những gì họ thấy là một trang Facebook đăng nhập thành công bình thường. Rất bình thường.

Đôi khi những marketer vĩ đại nhất không phải là những người tạo nên những chiến lược hoành tráng toàn cầu, mà chính là những người gần như vô danh vẫn đang tạo nên những thứ quá đỗi bình thường trong mắt người dùng.

Nếu một ngày những đoạn mã lập trình biến mất

Có bao giờ bạn đặt câu hỏi: Nếu không có những lập trình viên như chúng ta, thế giới sẽ như thế nào không? Thật khủng khiếp, không có điện thoại, không có facebook và xe cộ sẽ tông nhau loạn xạ, vì cả những cột đèn giao thông cũng phải được lập trình ra.

Thế giới sẽ trở về thời đại đồ đá

Thế giới của chúng ta đang được điều khiển bằng những hệ thống máy tính phức tạp và liên kết với nhau qua internet. Số liệu về thiên nhiên, thời tiết, bão lũ, hạn hán và cháy rừng đang được thống kê liên tục trên những siêu máy tính. Những máy móc thiết bị chúng ta đang dùng được điều khiển bằng những vi điều khiển được nạp mã lập trình để có thể hoạt động được.

Chúng ta sẽ không có ngày hôm nay, tất cả những gì bạn đang thấy trong thế giới hiện đại, từ xe cộ, điện thoại, những tòa nhà, máy móc… đều được thiết kế bằng máy tính, bằng những phần mềm hỗ trợ, mà rất khó hoặc không thể thiết kế được chúng bằng những bản vẽ trên giấy.

Nếu một ngày những đoạn mã lập trình đột nhiên biến mất.

Chúng ta sẽ mất hết tiền trong tài khoản, thẻ ATM trở thành tấm nhựa vô dụng. Thế giới sẽ mất đi 80% tổng số tài sản, vì hiện tại chỉ 20% tổng số tiền trên thế giới là tiền mặt, số còn lại là những con số dữ liệu trên máy tính, tài khoản ngân hàng của bạn cũng chỉ là một con số trên hệ thống máy tính của ngân hàng mà thôi.

Tất cả các hoạt động bị ngừng trệ, thông tin liên lạc bị cắt đứt, tất cả các điện thoại đều sập nguồn khi mất đi phần mềm, nhân viên Viettel nghỉ việc, tất cả các nhà máy dừng hoạt động. Những thang máy sẽ dừng lại hoặc rơi tự do, bởi chúng không được điều khiển bới phần mềm nữa.
Hệ thống điều khiển thông khí và điều hòa của các tòa nhà chết như rệp, hàng nghìn con người trong tòa nhà chạy ra ngoài như những con chuột, hoặc nhảy xuống vì ngạt thở. Tàu ngầm dưới biển sẽ không bao giờ ngoi lên mặt nước nữa.

Xe cộ sẽ đâm vào nhau, các đèn giao thông không hoạt động khi vi điều khiển mất đi phần mềm đã được lập trình sẵn cho nó, máy bay liệng lung tung trên bầu trời như những con chim bị mất đi bộ não, rồi lao xuống đất một cách hào hùng và lãng mạn như những trận mưa sao băng.


Những vệ tinh ngoài trái đất ngừng hoạt động, mất đi vệ tinh để truyền tải dữ liệu dẫn đến hệ thống thông tin liên lạc hoàn toàn bị cắt, tivi, điện thoại không hoạt động, những trận bóng đá bên kia trái đất không thể truyền hình.

Hệ thống điều khiển nhà máy thủy điện, nhiệt điện không hoạt động, điện bị cắt, toàn thế giới chìm vào bóng đen. Hoặc tệ hơn, không có máy tính kiểm soát dòng điện, nhà máy điện phát dòng điện lớn, làm tất cả các thiết bị điện hỏng, cháy nổ sảy ra, những ngôi nhà bốc cháy, hàng triệu người chết và rất nhiều thằng bị thương.

Những nhà máy điện hạt nhân mất kiểm soát, nổ tung như một cây pháo hoa cực lớn, phóng xạ lan ra toàn bộ bầu khí quyển, hàng tỉ người bị nhiễm phóng xạ.

Và trang web này ngừng hoạt động, không thể truy cập, và bạn, không thể đọc được bài viết này để cười vui vẻ như vậy.

Viết một chút cho vui, để anh em lập trình viên thêm yêu nghề, thêm đam mê với công việc của mình, tất cả chúng ta đang ngày đêm làm thế giới tốt đẹp hơn, keep going.