Bí mật trong các phần mềm - Pdf 16

Bí mật ẩn dấu trong các phần mềm
Đinh Mạnh Đạt
Bạncó bao giờ tự hỏi về tác giả của một phần mềm là ai, phần mềm ấyđược viết như thế
nào hay bằng ngôn ngữ gì không?
Nói chung trên cáctài liệu hay các phương tiện thông tin công khai thì một phần mềm
chỉđược biết đến như là sản phẩm của cả một công ty chứ không có tácgiả cụ thể, chẳng
hạn Ms Windows của MicroSoft, Delphi của Borland...đặc biệt là các phần mềm tuyệt đối
không công bố đã được viếtbằng ngôn ngữ hay công cụ lập trình gì (ngoại trừ Windows và
Linux nổitiếng đưược biết là viết bằng ngôn ngữ C).
Tôivà các bạn của tôi thường có những cuộc tranh luận, bình luận về cácvấn đề Tin học
(mặc dù còn là 'ếch ngồi đáy giếng'!) vànhiều lần đã đề cập đến vấn đề đó. Tôi còn nhớ rõ
chúng tôiđã thán phục bộ Ms Office như thế nào, đã yêu thích và cố bắt chướcmôi trường
tích hợp (IDE - môi trường để soạn thảo, gỡ rối, biêndịch…) của Turbo Pascal 7.0 (TP70)
mà không thể được… Và chúng tôi'ước' chỉ cần biết đưược tên thôi của ngôn ngữ lập
trìnhhay người đã tạo ra sản phẩm ấy để thoả lòng hâm mộ. Thời giantrôi qua, dù bằng
nhiều phương tiện chúng tôi vẫn chưa biếtđược… Tình cờ một lần sử dụng Disk Editor
(diskedit.exe) trong NU tôi đã reo lên vì thấy được mộtđiều bí mật. Có lẽ có người đã thấy
điều này như tôi…
Ngaytrong tệp chạy turbo.exe của TP70 có chứa tên của 51 người đã làm TP70,mặc dù
chúng ở một vùng 'lạ' của tệp và được ghi theoquy cách không bình thường. Chương trình
Pascal sau đọc turbo.exevà ghi ra tên của họ:
uses crt;
var f: file of char;
x:char; i: longint;
BEGIN
clrscr;
writeln(’Authors of Turbo Pascal 7.0:’);
writeln(’----------------------------’);
assign(f,’turbo.exe’);
reset(f);
seek(f,393850);

(Trongtệp tc.exe, trưước các tên nàycòn có đoạn' Turbo C++ teammembers:') Don Ahn,
Mark Alexander, BobArnson, James Bach, Pete Becker, Latesh Bhatia, Eli Boling, Keimpe
Bronkhorst,Lee Cantey, Garnet Chaney, Liang-Jye Chang, David Ching, Bonnie Cohen,
Hank Cox,Michael Cuff, Charles Dickerson, Steve Drake, David Draper, Peter Eden,
GregEllison, Judy Fitzgerald, Lynn Flink, Lars Frid-Nielsen, Paul Fussell, CarolGeary,
Bret Gillis, Julie Gray, Laura Grenyo, Paul Gross, Arthur Guo, CraigHansen-Sturm, John
Ho, Dan Horn, Jon Howell, David Intersimone, Dana Jeffries,Linda Jeffries, S. JeyaRajan,
Philippe Kahn, Spencer Kimball, PeterKukol, Alex Lane, G bor Ligeti, Sin Lew, Linda
Lowther, Scott Lund, SusanMarfield, Sidney Markowitz, K.A. McCord, Mike Malone,
Marina Michaels, KathyMoney, Sekaran Nanja, Rob Pearson, Dirk Pellett, Matt Pietrek,
Loan Pham,Christine Phan, Brian Russel, Phil Rose, Robin Rosenberg, Jeff Stock,
RickSchell, Tamra Selfridge, Tayloe Stansbury, Eric Swenson, Tamah Swenson,
DavidTaylor, Abel Torres, Bruce Tribbensee, Eugene Wang, Mike Weisert, Pat
Williams,Nancy Wood, Chopin Yen
Chươngtrình Pascal đọc tc.exe hiện tên như sau:
uses crt;
var f: file of char;
x: char;
i: longint;
BEGIN
clrscr;
writeln(’Authors of Turbo C++ 3.0:’);
writeln(’-------------------------’);
assign(f,’tc.exe’);
reset(f);
seek(f,554011);
for i:=1 to 972 do
begin
read(f,x);
if x=’~’ then write(’, ')

các công ty này chủ động đưa các đoạnđặc biệt này vào phần mềm dùng công cụ của họ
nhưng các phần mềmcủa chính họ thì không bị như vậy, theo tôi họ đã dùng một bộCCLT
cho riêng họ!
Mộtsố trò chơi thường để các Cheat Code hay bí mật gì đó ở cuốifile EXE, KS Dương
Thiên Tứ đã dành cả một chương trong cuốn sáchbí mật về games máy tính của mình để
nói về vấn đề đó, bạn nêntham khảo cuốn sách hay này. Đây cũng là những bí mật trong
file EXEnhưng là do chính người viết làm nó chứ không phải do CCLT. Nhữngfile này có
thể bị các chương trình AntiVirus cảnh báo vì kích thướckhác kích thước thực sự của file
EXE (Header của file EXE cho biết kích thướcthực sự đó). Chương trình Pascal sau đọc
Header và cho biết kíchthước thực sự của file EXE:
uses crt;
const fi='mario.exé;{Example!}
var f: file;
a,b: longint;
BEGIN
clrscr;
assign(f,fi);
reset(f,1);
seek(f,2);{ID:'MZ'}
BlockRead(f,a,2);{Bytes of Last Page}
BlockRead(f,b,2);{Number of Pages}
if a+(b-1)*512=filesize(f) then write(’OK!’)
else write(’Truly size: ’,a+(b-1)*512);
readln;
END.
Mộtsố phần mềm ứng dụng chúng ta có thể bỏ qua việc test dữ liệu hay quétđĩa bằng cách
gõ tham số trên dòng lệnh. Chẳng hạn phần mềm TPES cótham số bí mật/zerg, thườngthì
các tham số này để tác giả dùng trong quá trình thiết kế đểgiảm thời gian. Bạn mở file EXE
và tìm các dấu ' /' hay viết chương trình tìm kiếm xâu có ' /' và một vài chữ cái đằng sau.
Tôi đã cố nhưng không tìm đượctham số nào cho setup.exe của Windows để nó không


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status