[WarGame] php? c?

http://wargame.kr:8080/prob/7/

:p

Xem source, được gợi ý về file index.phps, mở nó ra coi:

[php][/php]

Mở tiếp file p7.c (http://wargame.kr:8080/prob/7/p7.c):

[c]#include
#include
void nono();
int main(int argc,char **argv){
int i;
if(argc!=2){nono();}
i=atoi(argv[1]);
if(i<0){nono();} i=i+5; if(i>4){nono();}
if(i<5){printf("%d",i);} return 0; } void nono(){ printf("%d",1); exit(1); } [/c] Chương trình này nhận 1 tham số, chính là cái đầu tiên mà ta nhập vào ở trang php. Nó thực hiện điều gì?

  1. Nếu x < 0: Sai.
  2. x = x + 5.
  3. Nếu x > 4: Sai.
  4. Nếu x < 5: Đúng.

Một số không âm, sau khi cộng thêm 5 mà lại không được lớn hơn 4, thật là kinh dị emo_popo_waaaht

Cơ mà không sao, đề ngắn gọn như vậy, chẳng có gì nhiều để mà nghĩ. Chúng ta đã biết rằng, đối với máy tính mà nói, một số có dấu (signed int chẳng hạn), thì khi đạt đến cực đại của số dương, nó sẽ quay về cực tiểu của số âm. Ví như 2147483647 + 1 thì sẽ không bằng 2147483648, mà bằng -2147483648, đây là điều mà đám IT khô cằn chúng ta biết nhiều hơn so với những con người lãng mạn khác emo_popo_look_down

Như thế, nếu như ở trang php, ta nhập num1 = 2147483647 và num2 =2147483647 + 5 = -2147483644, vấn đề sẽ được giải quyết. Với lưu ý rằng 2 textbox để nhập đã bị giới hạn về 9 ký tự, hẳn là ta sẽ phải mất thêm một chút thời gian mới mong có được flag, zin zin: emo_popo_smile

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *