|
|
choc_ wrote:
Kết luận là gì: kiểu của MAX_LEN - 1 hoàn toàn xác định được bằng cách luật của C99, mà không phụ thuộc vào ngữ cảnh hay compiler.
Đoạn code được tôi compile bằng gcc (4.2.4).
Tôi compile với -O0 để tắt hết các "side effect" của compiler optimization. Kết quả mã ASM như sau:
i = MAX_LEN-10;
--> movl $246, -12(%ebp)
(điều này hợp lý vì sizeof(int) trả về 4 trên system này).
c = MAX_LEN-10
--> movb $-10, -5(%ebp)
Như vậy là sau bước pre-processing, MAX-LEN-10 đã được compiler chuyển thành (int)256 và (char)-10
ASM code không có 1 lệnh tính toán nào khác nữa.
Vậy nếu như asm code ra tương tự như:
- tính 256-10 rồi gán vào 1 thanh ghi 4 bytes
- gán byte thấp nhất của thanh ghi này vào c
thì lập chứng của bạn choc_ là đúng (MAX_LEN - 1 là int và các bit cao bị bỏ đi khi gán vào kiểu char).
Tuy nhiên ở đây compiler lại không sinh ra lệnh nào cho phép tính 256-10 mà asm code ra thằng luôn: movb $-10, -5(%ebp). Như vậy thì luận chứng của bạn choc_ chưa thể kiểm chứng được (tôi không nói là sai nhé).
(edit: remove 1 phần ghi sai).
|
|
|
choc_ wrote:
Để chứng minh cho luận điểm của là MAX_LEN - 1 sẽ có kiểu là int, mình mời các bạn biên dịch và chạy đoạn chương trình sau, rồi giải thích giùm mình chuyện gì đã xảy ra:
Bài 8:
Code:
#include <stdlib.h>
#include <stdio.h>
#define MAX_LEN 0
int main(int argc, char **argv) {
unsigned int i = 1;
if (i < (MAX_LEN - 1)) {
printf("this can not happen, can it?\n");
}
return 0;
}
Code:
#include <stdlib.h>
#include <stdio.h>
#define MAX_LEN 256
int main(int argc, char **argv)
{
int i;
char c;
i = MAX_LEN-10;
c = MAX_LEN-10;
printf("%d %d\n", i, c);
return 0;
}
Kết quả in ra 246 và -10 (còn nếu unsigned char thì in ra 246 và 246)
ASM code được sinh ra khi turn off optimization có đoạn sau (trong cả 2 trường hợp unsigned char và char)
Code:
movl $246, -12(%ebp)
movb $-10, -5(%ebp)
Như vậy kết luận là ở câu lệnh c = MAX_LEN-10:
- MAX_LEN đã được convert thành char --> tràn số ==> là 0
- MAX_LEN - 10 được xử lý luôn ở bước preprocessing: 0 - 10 = -10
Vậy thì MAX_LEN - 1 là char hay int thì tùy vào ngữ cảnh (và có thể là do compiler luôn).
P/S: mới check lại tài liệu, kiểu "char" trong C/C++ thì luôn là 1 byte
|
|
|
choc_ wrote:
Bài 7: xử lý Pascal string dạng như 9hvaonline3net0 (đây là dạng DNS domain name trong DNS packet, bài này ông thầy mình nói là sửa lại từ một real world vuln).
Để chạy thử theo đúng ý đồ của chương trình, các bạn phải nhập vào một Pascal string có dạng như sau: mỗi phần trong domain name sẽ được bắt đầu bằng một byte đánh dấu độ dài của nó; domain name kết thúc khi gặp một phần có độ dài là 0. Ví dụ như domain vnhacker.org thì các bạn phải nhập như sau:
./puzzle7 "`python -c 'print "\x08" + "vnhacker" + "\x03" + "org" + "\x00"'`"
your domain is: vinagame.com
Nói cách khác, để chỉ ra lỗi bài này, trước tiên các bạn phải giả sử là domain name nhập vào chắc chắn phải theo format này, tự vì các bạn nhập khác đi, chương trình nó sẽ chạy bị lỗi.
Không biết "khác" là khác như thế nào? Giả sử như format vẫn đúng, nhưng input là thế này: '0xff' + "1" + '0x00' (tức chỉ định độ dài là 255 nhưng trên thực tế chỉ đưa vào có 1 ký tự) là có chuyện ngay
Nếu trên môi trường char là unicode 16 bit: '0xffff' + "...."
Còn nếu trên môi trường char là 1 byte thì strlen() trả về size_t, còn c là 1 byte thì strlen(name) + c sẽ trả về int hay short int? Chưa biết được vì còn phụ thuộc vào môi trường và compiler.
Trong khi đó MAX_LEN - 1 sẽ là kiểu int hay short int? Cũng...tùy vào compiler luôn
|
|
|
Đúng là cuốn đang kiếm (có post bài hôm trước), cảm ơn bạn nhiều
|
|
|
0SAT0 wrote:
Bài 2 :
Divide INT_MIN by -1 cause DDOS .
$ ./a.out -2147483648 -1
Aha, sao lại quên nghĩ đến điểm này
Signed number, ví dụ với int thì là -2147483648 đến +2147483647
Do vậy khi đảo dấu của -2147483648 thì sẽ thành +2147483648 --> out of range.
Tuy nhiên lỗi này gây ra do phép chia chứ chưa đến "công đoạn" return như choc_ gợi ý?
|
|
|
twilight wrote:
kiểm chứng lỗi
twilight@h4x0r:~/crackme.de/choc$ ./bai2 2147483647 1
z=2147483647
twilight@h4x0r:~/crackme.de/choc$ ./bai2 2147483648 1
z=2147483647
Cái này đâu phải lỗi. Spec của hàm atoi có ghi rõ mà: nếu số được parse ngằm ngoài vùng cho phép thì nó sẽ trả về MIN_INT hoặc MAX_INT.
Ở đây 2147483648 nằm ngoài vùng của signed int nên bản thân atoi nó đã trả về là 2147483647 rồi chứ không phải là "lỗi" tràn số. Do vậy z = 2147483647 là đúng (vì atoi trả về 2147483647 cho x).
|
|
|
Đề thi gì mà toàn "muốn" với "ý định" là sao kà?
Gõ 1 lệnh nhiều khi chả ăn nhập gì hoặc cũng chưa thể hiện rõ ý muốn hay ý định gì cả!
|
|
|
Mình cần kiếm Sách hoặc Training Kit cho kỳ thi 70-632: Microsoft Office Project 2007, Managing Projects. Nếu bạn nào có cho mình xin đường link download nhé.
Xin cảm ơn trước!
|
|
|
hizit91 wrote:
Sự thật là sau khi đọc xong bài của anh, tôi khó lòng mà kiềm chế nổi, nhất từ nhảm thế!!!, xin hỏi anh là nhảm chỗ nào?, ai không công nhận và tiếp nhận nào?
Tiếp theo là, Public IP và private IP do ai, tổ chức nào qui định nào?, liệu nó có phải như "sách giáo khoa", phải luôn dựa vào đó hay không?
50 bài của bạn trước giờ toàn là "nói nhảm" dạng như thế này (xin lỗi nhưng...sự thật thì phải nói ).
Bất cứ cuốn sách nhập môn về network nào thì phần IP cũng có chỉ rõ IP được phân chia như thế nào. Ngoài ra các dải IP được phân cho ai, nước nào, tổ chức nào quản lý v.v...đều có qui định cụ thể và chuẩn mực rõ ràng chứ không phải nhắm mắt mà cấp.
Chứ bạn không để ý là từ 1 IP có thể lần ra được địa chỉ địa lý của nó (ví dụ nhơ ở nước nào) à? Nếu không có qui định và chuẩn mực rõ ràng thì internet nó chết từ trước khi...bạn ra đời rồi đó
|
|
|
AntiBlackSite wrote:
Hiện nay theo tôi được biết thì đã có shell can edit chmod vậy các biện pháp bảo mật dành cho host share chắc ko còn tác dụng vì chmod kĩ thế nào cũng bị edit vậy có cách nào chống cái này ko?
Mong các bạn giúp đỡ.
Shell (web-based?) chỉ là phương tiện giúp bạn thực thi các lệnh trên server y như là bạn đang mở 1 cửa sổ console trên đó.
Như vậy, nếu có lệnh nào đó có thể "qua mặt" được chmod của *NIX thì shell nào cũng có thể làm được chứ làm gì có chuyện "đã có shell can edit chmod".
|
|
|
conmale wrote:
Thôi đi bà con. Chủ đề này không đi tới đâu hết đâu mà bàn.
Đồng ý
1. Đã nói là HVA chặn hầu hết các tool monitor công cộng (để tránh bị người khác lợi dụng "thăm dò" server) mà cứ đòi "đưa tool monitor công cộng" ra để làm gì?
2. Tool dù sao cũng là tool. Còn có cả trăm member HVA trên diễn đàn, chả lẽ trăm member này không tốt hơn 1 cái tool nào đó hay sao? Tool báo là HVA die nhưng cả trăm member vẫn vào được bình thường thì theo tool hay theo ai?
|
|
|
antidos wrote:
Tôi bị choáng khi một số người cố tình phủ nhận kết quả của host-tracker. Các bạn nghĩ 2 máy tính của các bạn bất khả xâm phạm đến như vậy sao
Để khách quan, các bạn tìm giúp các công cụ monitor web độc lập để xác nhận availability của dịch vụ web vậy.
Tiêu chí nên có:
+ Miễn phí
+ Có thể share kết quả cho mọi người cùng xem
+ Truy cập đến dịch vụ từ nhiều điểm khác nhau
Còn tôi thì bị choáng với sự "cứng đầu" của bạn.
1. Cả trăm người online, cả ngàn member mà chỉ có mình bạn "phán" là HVA "tê liệt". Trước khi cứ cố lôi host-tracker ra thì bạn cũng nên dành vài giây suy nghĩ là tại sao 99 (hoặc 999?) người còn lại không có hiện tượng như bạn?
2. Qui trình hoạt động:
Nhiều request từ 1 IP --> cho vào diện nghi ngờ ==> block
Nhiều request từ 1 dải IP --> cho vào diện nghi ngờ ==> block
Nhiều request từ 1 refererer --> cho vào diện nghi ngờ ==> block
Cả 3 cách hoạt động như trên đều có thể hoàn toàn tự động, không cần phải có admin ngồi canh chừng server. Ít nhất, host-tracker rơi vào rule thứ 3: thấy lượng request có referer là host-tracker tự nhiên tăgn lên đột biến, server HVA có thể chặn hết các request dạng này ==> host-tracker sẽ cho ra kết quả vô nghĩa. Chẳng hạn như khi tôi đang viết bài này thì host-tracker trả về kết quả toàn là 0Kb cho HVA (vậy chả lẽ tôi lại la làng lên là HVA đagn "tê liệt"?)
3. HVA chủ động chặn hết các dịch vụ thăm dò tự động và định kỳ (thậm chỉ ping cũng chặn luôn). Vậy giả sử bạn dùng 1 dịch vụ nào đó ra kết quả "HVA đang 'tê liệt' vì ping lần nào cũng không được" thì lại đi kết luận là HVA đang "tê liệt"?
Tool/dịch vụ của bạn không thăm dò được server HVA thì không có nghĩa là server HVA die hay tê liệt.
4. Ban quản trị HVA có thể có tool minotor riêng để alert khi cần thiết. Không có lý do gì BQT HVA phải "share kết quả cho mọi người cùng xem" hoặc tiết lộ thêm thông tin gì về cái tool này cả (mà thực ra trên diễn đàn cũng có 1 topic mổ xẻ về cái tool này rồi, bác conmale cũng có tiết lộ 90% thông tin rồi)!
5. Tặng thêm bạn antidos cái này:
Nhưng sau đó chắc admin nghi ngờ việc request này chính là DOS nên đã phản ứng, khiến URL này bị 404 trong vài phút.
10:39:37 0.08 sec 72.232.199.28/Http error:400 2194
(Bài #43 trong topic này)
Đoạn bạn copy & paste từ host-tracking ghi rõ ràng là 400 mà sao qua tay bạn nó lại thành 404 thế?
Mà 400 hay 404 thì cũng đều do Application của server chủ động trả về. Điều đó suy ra server vẫn còn đang hoạt động tốt, firewall của diễn đàn cũng hoạt động tốt luôn (xem lại (2) ở trên, nhiều request có referer từ host-tracker quá nên server HVA chặn rồi trả về 40x không được sao?)
|
|
|
@antidos: bạn "tấn công" HVA và trong cùng thời gian đó bạn không truy cập được HVA trong vài ba phút nên bạn [i]kết luận rằng HVA "tê liệt" do bạn tấn công[/B]?
Cái test của bạn quá thiếu cơ sở!
Thứ nhất: vài phút không truy cập được HVA thì chưa nói lên được điều gì cụ thể (vì có rất nhiều nguyên nhân). Hơn nữa, nếu mà HVA "tê liệt" theo đúng nghĩa đen của nó (dù chỉ mấy phút thôi) thì bạn nghĩ coi mấy ngàn member của HVA lại "im re" thế à?
Thứ hai: server của HVA được monitor thường xuyên bởi các công cụ khác nhau. Và mấy bữa này, các công cụ monitor đó chưa hề alert là HVA bị "lê liệt".
Thứ ba: trong topic này có đủ cả mem, mod, admin mà từ đầu đến giờ chỉ có mình bạn nói HVA bị "tê liệt", chứ ngoài ra còn có ai khác thấy gì đâu?
--> bạn nên xem lại những dữ kiện của mình chứ sao lại quay đi nói là "hva khinh thường" bạn nhỉ?
|
|
|
hizit91 wrote:
cho hỏi cháu bạn năm ni bao nhiêu tuổi? nếu là còn nhỏ, thì quả thật cháu bạn xxxxx, không ngờ, một đứa trẻ mà nghĩ được tới việc : " Bắt nạn nhân connect tới 1 host, lại càng giỏi hơn khi lại biết lấy IP người dùng khi load images từ host"
Bạn nghĩ ngay theo hướng đó à? Thế sao bạn không nghĩ theo hướng là: cháu tôi cũng khá lớn vì tôi cũng...già rồi?
Chẳng hạn như bạn gọi là "anh" conmale, nhưng gặp ở ngoài đời thì "anh" conmale với ba của bạn chưa chắc ai lớn tuổi hơn đâu (mở ngoặc, con ảnh chuẩn bị vào ĐH)
hizit91 wrote:
Còn cả câu này nữa :
Vậy thì khỏi cần xin xỏ nick yahoo làm gì cho mệt
Ai xin xỏ? xin xỏ ai??? làm gì??. Trong lần post trước, có lần anh conmale đã đố một bạn add nick findmyip vào để tìm IP của ảnh, thấy thế, nên mình mới nói "anh có thể add...." như ở trên , có gì đâu
==========
hizit91
PS: các mod có thể del các nội dung này đi, nhưng dù sao mình cũng phải post lên
Lấy IP, với giới hạn là qua phương tiện Yahoo chat, nó khác với việc lấy dùng bất cứ phương tiện nào. Nếu để lấy IP chung chung, cách trên đã từng chứng tỏ là hữu dụng từ gần...10 năm trước lúc forum HVA mới mở rồi bạn à
Mà tại sao bạn nghĩ rằng cứ phải dùng Yahoo Messenger thì mới chat yahoo được nhỉ? Bạn không nghĩ rằng: anh conmale không dùng yahoo messenger (nhưng vẫn chat yahoo được), hoặc thậm chí anh conmale không dùng Windows?
|
|
|
hizit91 wrote:
nbthanh wrote:
hizit91 wrote:
Murin wrote:
Nhưng sau khi lấy được thì bạn sẽ làm gì với cái IP ấy ?
# Murin
Tớ có bàn vấn đề đó đâu?
Chỉ là anh conmale đố anh em lấy IP của ảnh, tớ lấy thử cho vui
Anh conmale đố anh em lấy IP của anh chỗ nào nhỉ? --> Tự xem lại đi
Không biết bạn cần mấy giây mới lấy được IP của anh conmale khi anh ấy add nick bạn, nhưng chỉ cần động não khoảng...1 giây là tôi có cách lấy IP của anh conmale một cách tương đối chính xác (mà anh ấy rất khó "đề phòng") rồi. Bạn cần gì mà tới mấy giây dữ vậy?
Ý văn :
nhưng chỉ cần động não khoảng...1 giây là tôi có cách lấy IP
Có phải ý bạn là đầu óc bạn rất nhanh nhạy à
Theo đúng nguyên tắc, muốn lấy IP một người, thì yêu cầu người đó phải connect tới "cái chi đó" .... Và ta đang đón gói tin ở "cái chi đó"..., muốn vậy, cần phải bắt người kia phải connect tới cái chi đó ( ví dụ load image trên hva chẳng hạn )
Tôi mất chừng 1 giây để tìm ra cách, thì anh conmale chắc mất chừng...nửa giây. Thậm chí...đứa cháu tôi cũng nghĩ ra cách chỉ sau vài giây suy nghĩ
==> nên tôi không nghĩ anh conmale lại đi đố một điều quá ư đơn giản như vậy!
Cách làm: Dùng chính forum HVA, gởi tin nhắn riêng tới anh conmale (title cho thật "mùi mẫn" vào), nội dung tin nhắn chứa đoạn này: {img}http://domain/image.xxx{/img} (thay { và } bằng [ và ])
Vậy thì khỏi cần xin xỏ nick yahoo làm gì cho mệt, và anh conmale cũng rất khó "đề phòng"!
|
|
|
hizit91 wrote:
Murin wrote:
Nhưng sau khi lấy được thì bạn sẽ làm gì với cái IP ấy ?
# Murin
Tớ có bàn vấn đề đó đâu?
Chỉ là anh conmale đố anh em lấy IP của ảnh, tớ lấy thử cho vui
Anh conmale đố anh em lấy IP của anh chỗ nào nhỉ?
Không biết bạn cần mấy giây mới lấy được IP của anh conmale khi anh ấy add nick bạn, nhưng chỉ cần động não khoảng...1 giây là tôi có cách lấy IP của anh conmale một cách tương đối chính xác (mà anh ấy rất khó "đề phòng") rồi. Bạn cần gì mà tới mấy giây dữ vậy?
|
|
|
|
|
|
|