# V-TripleT HCMUS CTF Write up
## Factor me
Bài này google "factor bignumber known phi" là ra cái https://math.stackexchange.com/questions/2916269/given-varphi-n-and-n-for-large-values-can-we-know-prime-factors-of-n, làm theo là được, có cả code mẫu, sửa chút là thành python :v

## SignMe
Bài này thì nếu suy nghĩ tới việc cần simulate lại hàm sign thì cần tìm được giá trị của các biến:
- self.x
- self.coef
self.x thì có thể tính dễ dàng bằng cách để k=1 (msg = []), từ đó thay công thức từ s ra là tính được self.x 
Tới đây thì nếu vẫn kẹt với suy nghĩ tính self.coef thì có thể hỏi 32 request, mỗi lần tính 1 coeff[i], nhưng cách đó ngu vì tính coeff[i] tốn dpt tầm O(sqrt( p ) * log(sqrt( p ))), thế khá to.
Sau 1 lúc thì mình nhận ra là có thể luôn xem coeff[i]=0, vì ở hàm verify không dùng gì tới coeff cả. Thế nên chỉ cần send 1 request để tính self.x, sau đó simulate lại hàm sign (xem coeff[i]=0 với mọi i) là giải được bài.

## Oh seed
Google "python random ctf": 
Ta sẽ tìm được cái MTRecover: 
Chạy cái đó là được: 
## Substitution2
Đầu tiên là từ message đề bài cho thì ta loại offset đi.
HCMUSCTF sẽ có 2 chữ C kia, nên trong cái message cuối cùng, tìm vị trí mà có c[i] = c[i + 4], các ký tự đó có khả năng là C.
Từ đó sẽ giải được chữ H, M, U, S, T, F nữa. Có các chữ này xong thì ngồi dùng mắt + tiếng anh và đoán:

## noname1
Bài này là bài gì đó mà ném code vào IDA xong chạy lại code C là có: 
## Noname2
Bài này là bài gì đó mà cần đọc database.
Tạo một account tên là `admin_1k`. Tạo một key `ey` cho tài khoản `admin_1k` thì ta sẽ có signature của `admin_1key`. Lấy cái signature đó đọc `key` của `admin_1` là được.
