Sau một thời gian sử dụng và nghiên cứu cách aapanel kiểm tra license mình nhận thấy phần mềm này có cách kiểm tra license khá đơn giản và có thể bị patch làm cho việc kiểm tra bản quyền phần mềm không thể hoạt động được.
Ở bài này chúng ta sẽ cài luôn bản pro thông qua lệnh này
URL=https://www.aapanel.com/script/install_pro_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO $URL ;else wget --no-check-certificate -O install_pro_en.sh $URL;fi;bash install_pro_en.sh 4a41e01bSau khi cài bản pro thành công chúng ta vào ứng dụng sẽ bị bắt đăng nhập tài khoản

Sau khi đọc mã nguồn tôi thấy có file userRegister_v2.py file này làm mục đích đăng ký tài khoản và lưu lại các thông tin về tài khoản và phiên bản vào file userInfo.json

Chúng ta tiến hành tạo nội dung cho file userInfo.json đúng format trong thư mục data mà file userRegister_v2 yêu cầu
{
"id": 12345,
"uid": 12345,
"username": "debug_user",
"email": "[email protected]",
"phone": "",
"avatar": "",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjEyMzQ1LCJ1c2VybmFtZSI6ImRlYnVnX3VzZXIiLCJlbWFpbCI6ImRlYnVnQGV4YW1wbGUuY29tIiwiZXhwIjoxNzg4MTA1MTgyLCJpYXQiOjE3NTY1NjkxODIsInNlcnZlcl9pZCI6Ijg5OTgwYTg2ODgxNmJiZGNjM2Y0MTkyNTA3ZGE5YWE5ZjM2YTdlNjM5YWNjMGFmMTI3OGFhYTlmOGUzYmFiMjMiLCJwbGFuIjoicHJvIiwiZmVhdHVyZXMiOlsiYWxsIl19.YjE5YzdhODRhZjNmYTA1OTEwNTMzOTlkMDcwMzU3Y2I",
"server_id": "89980a868816bbdcc3f4192507da9aa9f36a7e639acc0af1278aaa9f8e3bab23",
"access_key": "aeaee9edf1b631c69fe82e5ca53365ac",
"secret_key": "75c30eaaa40c3e4d80e0404c80dd4aff",
"login_time": 1756569182,
"expire_time": 1788105182,
"plan": "pro",
"permissions": [
"all"
],
"is_mock": true
}Sau đó tôi tìm thấy file check_auth.py có check xem phần mềm có phải là Pro không bằng cách đọc file /www/server/panel/data/.is_pro.pl file này có nội dung là True
Chúng ta cần chuyển file này thành readonly
chattr +i /www/server/panel/data/.is_pro.pl
chattr +i /www/server/panel/data/userInfo.json Sau đó tôi tìm được thêm một phần liên quan tạo một file /tmp/bmac_ gì đó trong thư mục tmp phần sau bmac chính là token

mã token trong phần filename này là một mã dạng md5 của mã mac máy bạn chỉ cần lấy nội dung file /sys/class/net/eth0/address và biến nó thành md5
root@dev:~# cat /sys/class/net/eth0/address
00:20:bf:c2:98:6cThì mã md5 của 00:20:bf:c2:98:6c là c01eec6cfdc4697ef13a9408763a1538 như vậy ta sẽ có file bmac_c01eec6cfdc4697ef13a9408763a1538 và bmac_c01eec6cfdc4697ef13a9408763a1538.time trong thư mục tmp, hai file này thì bạn điền timestamp (thời gian tương lai bạn muốn hoặc bất cứ lúc nào….) bất kỳ vào là được cũng giống như userInfo.json chúng ta cũng chuyển về readonly cho chắc
chattr +i /tmp/bmac_c01eec6cfdc4697ef13a9408763a1538
chattr +i /tmp/bmac_c01eec6cfdc4697ef13a9408763a1538.timebây giờ chúng ta vào aapanel sẽ không bị đòi phải login nữa

Như vậy chúng ta đã có thể sử dụng được một số tính năng cơ bản của phần mềm này. Lúc này nếu bạn vào phần mềm chọn apps store bạn sẽ thấy thông tin bản quyền còn bao lâu dựa vào expire_time bạn điền ở trên, hoặc bạn có thể xem ở góc phải trên cùng

Các tính năng cơ bản bạn đã có thể dùng full nhưng không bao gồm waf và các plugin mất phí, Phần sub-users bạn đã có thể dùng được

https://github.com/Private-Active/aapanel-active
Lưu ý: phần sub-users có thể sẽ không hoạt động mình sẽ chỉ cách để các bạn dùng được ở phần tiếp theo khi kích hoạt được toàn bộ plugin.
mở file settup.sh sửa 2 chỗ bên dưới để phù hợp với link hệ thống của bạn
PANEL_PATH="/www/server/panel"
SCRIPT_NAME="simple_license_mock.py"sau đó chạy lệnh
bash settup.sh enableLưu ý: Có update được không thì phải chờ phiên bản mới mình test update chứ giờ không thể biết được.