1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình an toàn: Chương 7 - Lương Ánh Hoàng

14 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 3,36 MB

Nội dung

Bài giảng Lập trình an toàn - Chương 7: Anti-Tampering trình bày các nội dung: Phát hiện thay đổi (Detecting modification), che giấu mã (Code hiding), sử dụng con trỏ hàm (Function Pointer), giấu xâu (String hiding), phát hiện debugger (Anti-Debugger) Self-modifying code, giải pháp tổng thể. Mời các bạn cùng tham khảo nội dung chi tiết.

Chương  7  Anti-­‐Tampering     Lương  Ánh  Hoàng   hoangla@soict.hut.edu.vn   Nội  dung   7.1  Phát  hiện  thay  đổi  (Detecting  modi}ication)   7.2  Che  giấu  mã  (Code  hiding)   7.3  Sử  dụng  con  trỏ  hàm  (Function  Pointer)   7.4  Giấu  xâu  (String  hiding)   7.5  Phát  hiện  debugger  (Anti-­‐Debugger)   7.6  Self-­‐modifying  code   7.7  Giải  pháp  tổng  thể     119   7.1  Phát  hiện  thay  đổi  mã  lệnh   •  Mục  tiêu:  Phát  hiện  chương  trình  đã  bị  crack  chưa  (Detecting   modi}ication)   •  Kỹ  thuật:   –  Tính  MD5,  SHA1,  hoặc  HMAC  mã  lệnh  của  }ile  thực  thi   –  Đánh  dấu  một  đoạn  trong  chương  trình  sẽ  dùng  để  lưu  mã  băm  }ile  thực  thi  và  ghi   giá  trị  băm  vào  đó  bằng  một  chương  trình  Hex  edit  khác   –  Tại  thời  điểm  runtime  tính  lại  giá  trị  băm  của  }ile  thực  thi  và  so  sánh  với  mã  băm   trước  đó   •  Ví  dụ:     băm   //  Khai  báo  xâu     đánh  dấu  m  ã   char  *  md5hash  =  "AAAAXXXXXXXXXXXXXXXX";   int  _tmain(int  argc,  _TCHAR*  argv[])   {    unsigned  char  hash[16];//  Giá  trị  băm  tính  được    unsigned  char  expectedhash[16];//  Giá  trị  băm  lưu  trong  }ile      FILE  *  fp  =  fopen(argv[0],"rb");//  Mở  }ile  để  tính  lại  giá  trị  băm    unsigned  char  *  pFile  ;    fseek(fp,0,SEEK_END);    int  len  =  ftell(fp);   120     7.1  Phát  hiện  thay  đổi  mã  lệnh   •  Ví  dụ:     char*)malloc(len);       pFile  =  (unsigned   fseek(fp,0,SEEK_SET);   fread(pFile,1,len,fp);   md5hash  =  0;   for  (int  i=0;i

Ngày đăng: 08/05/2021, 14:18

TỪ KHÓA LIÊN QUAN