Hướng Dẫn Chèn Code Vào đoạn Mã Smali Của File Apk.

WhiteHat.vn
  • Tin Tức Tin tức An ninh mạng Bản tin WhiteHat
  • Thành viên
  • Có gì mới
  • Video
  • Wargame
  • Vinh Danh
Đăng nhập

Tìm kiếm

Toàn bộ Chủ đề Diễn đàn này This thread Chỉ tìm trong tiêu đề Bởi: Tìm Tìm nâng cao…
  • Hoạt động gần đây
  • Đăng ký
WhiteHat.vn Đăng nhập Đăng ký Giới thiệu Liên hệ

CỘNG ĐỒNG AN NINH MẠNG VIỆT NAM

@ 2009 - 2021 Bkav Corporation

Install the app Install
  • Thảo luận
  • Virus/Malware
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Hướng dẫn chèn code vào đoạn mã smali của file apk.
  • Bắt đầu Malware
  • Ngày bắt đầu 20/05/2015
Chia sẻ: Facebook Twitter Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Liên kết M

Malware

Wh------
08/01/2015 41 56 bài viết Hướng dẫn chèn code vào đoạn mã smali của file apk. Hướng dẫn chèn code vào đoạn mã smali của file apk. I. Mở đầu _ Ứng dụng Android thường được viết bằng Java và thực thi trên Virtual Machine, byte code chạy trên Dalvik Virtual Machine (DVM) được chuyển đổi từ JVM byte code truyền thống sang dex-format(.dex file) bởi convertion tool dx (lưu trữ tại android-sdk/platforms/android-X/tools/lib/ với các phiên bản trước đây, ở phiên bản Android SDK mới nhất được lưu tại android-sdk/platform-tools/lib/). _ Mã code thực thi trên DVM được gọi là mã Smali, có tập lệnh phức tạp giống như Assembly trên Windows. Để đọc và hiểu mã Smali là một việc không hề dễ dàng. _ Việc chèn code java vào một ứng dụng Android có sẵn khá phức tạp do cấu trúc ngôn ngữ java khi decompile sẽ không được bảo toàn nguyên vẹn, khó có thể re-build lại ứng dụng để hoạt động bình thường. _ Tuy nhiên, chèn code smali vào ứng dụng là một việc khả thi, ta hoàn toàn có thể re-build lại ứng dụng để chạy bình thường. Đây là cách thông dụng khi cần mod ứng dụng, ROM, … _ Các hacker hoặc những người có ý đồ xấu hoàn toàn có thể chèn code smali vào ứng dụng nào đó nhằm thực hiện một hành vi độc hại nào đó. II. Yêu cầu: · Android SDK, virtual emulator hoặc 1 device thật · JAVA SDK · NotePad ++ · Nắm được kiến thức cơ bản về Android, cấu trúc file apk, tập lệnh smali
http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html Nhấn để mở rộng...
· Apktool & baksmali/smali + Signer for all GB/ICS/JB/KK ROM v3 (4.4 Kitkat support/optimized) (
https://drive.google.com/folderview...xKR3BSU0JYcTBDaGV2MDNDVjg2c29QV3c&usp=sharing Nhấn để mở rộng...
) III. Các bước thực hiện 1. Dùng apktool hoặc công cụ baksmali disassemble file apk thành các file smali. 14899399431.png 2. Phân tích code smali để biết cách hoạt động của ứng dụng 14899399432.png 3. Chèn code vào file smali. 14899399433.png 4. Thực hiện Reassemble file apk và zip/ sign apk. 1.jpg
IV. Minh họa _ Chèn code vào ứng dụng Mobile Defender – một ứng dụng antivirus giả mạo, điều hướng người sử dụng đến trang web http://pdblprotect.com _ Mình sử dụng apktool thay cho công cụ smali/ backsmali đơn thuần vì nó decompile file apk thành các file smali, resource, AndroidManifest nên rất thuận tiện cho việc phân tích code smali. 1. Decompile file apk _ Download bộ công cụ Recompile & Decompile ở trên, giải nén, copy file apk vào thư mục apktool. _ Mở cmd tại thư mục apktool, chạy dòng lệnh : 14899399434.png Code:
apktool d [apk_name].apk Nhấn để mở rộng...
_Thu được thư mục: 14899399435.png _Cấu trúc thư mục: 14899399436.png 2. Phân tích ứng dụng _Phân tích AndroidManifest.xml để nắm được các permission, receiver, MainActivity .. của ứng dụng. _Các file smali cần phân tích nằm trong thư mục smali: 14899399437.png _ Dựa vào AndroidManifest ta xác định được MainActivity :
" smalicomexampleandroiddefender2MainActivity.smali" Nhấn để mở rộng...
_Phân tích AndroidManifest ta chú ý đến permission :
"android.permission.INTERNET" Nhấn để mở rộng...
_Qua khảo sát một số activity của ứng dụng, phát hiện trong PayFormActivity.smali có sử dụng đối tượng lớp WebView dẫn người sử dụng truy cập đến một trang web nào đó 2.jpg _Ta sẽ chèn code vào trong file smali này để ‘bắt’ được đoạn link mà ứng dụng sử dụng. 3. Chèn code Ta sẽ chèn đoạn một code vào trong đoạn code smali ở trên nhằm hiện một AlertDialog thông báo đường link mà ứng dụng truy cập. Code:
.const/4 v6, 0x0 .local v4, "link":Ljava/lang/String; new-instance v5, Landroid/app/AlertDialog$Builder; invoke-direct {v5, p0},Landroid/app/AlertDialog$Builder;>(Landroid/content/Context; )V .local v5, "buidler":Landroid/app/AlertDialog$Builder; const-string v7, "Cu1ea3nh bu00e1o" invoke-virtual {v5, v7}, Landroid/app/AlertDialog$Builder;>setTitle(Ljava/lang/CharSequence; )Landroid/app/AlertDialog$Builder; invoke-virtual {v5, v4}, Landroid/app/AlertDialog$Builder;>setMessage(Ljava/lang/CharSequence;) Landroid/app/AlertDialog$Builder; invoke-virtual {v5, v6}, Landroid/app/AlertDialog$Builder;>setCancelable(Z)Landroid/app/AlertDialog$Builder; move-result-object v5 const-string v7, "ok" invoke-virtual {v5, v7, v6}, Landroid/app/AlertDialog$Builder;>setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; invoke-virtual {v5},Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; move-result-object v5 invoke-virtual {v5}, Landroid/app/AlertDialog;->show()V Nhấn để mở rộng...
_vị trí cần chèn 3.jpg ++Chú ý: _Để tránh việc khi rebuild lại ứng dụng không chạy được, cần đọc qua từng lệnh smali trong code gốc để có cách sử dụng hợp lý các biến cục bộ (số biến cục bộ được khai báo trong thân từng hàm). _Để tạo code smali, cách đơn giản nhất bạn hãy dùng một IDE như Eclipse hoặc Android Studio, build một đoạn code với nội dung mong muốn, rồi decompile file apk để lấy code smali tương ứng! 4. Recompile file apk _Sau khi chèn code vào file smali, chạy apktool để rebuild file apk: Code:
apktool b -f -d [folder_decompiled_name] Nhấn để mở rộng...
148993994310.png _ File apk thu được nằm trong đường dẫn :
" fake_avdistfake_av.apk" Nhấn để mở rộng...
5. Sign apk Sign apk để đảm bảo mỗi ứng dụng Android có một chữ kí riêng biệt, trước khi có thể cài đặt vào thiết bị. Code:
java -jar SignApk.jar testkey.x509.pem testkey.pk8 [apk_name].apk [apk_name_signed].apk Nhấn để mở rộng...
_ Copy file apk thu được từ bước 4 để vào folder Sign & Zipalign tool đã giải nén ở trên 148993994311.png _Ta thu được file fake_av_s.apk 6. Zipalign file apk Zipalign nhằm nén và tối ưu hóa cấu trúc file apk. Code:
zipalign -fv 4 [apk_name_signed].apk [apk_name_zip].apk Nhấn để mở rộng...
148993994312.png _ Đưa file apk fake_av_z.apk thu được vào smartphone hoặc emulator để xem kết quả. :D Kết quả _Ứng dụng Mobile Defender khi chưa chèn code smali 148993994313.png _ Ứng dụng đã được chèn một đoạn AlertDialog cảnh báo url link mà ứng dụng đang truy cập. 148993994314.png Cám ơn các bạn đã theo dõi bài viết. Chỉnh sửa lần cuối bởi người điều hành: 21/05/2015 Capture.PNG mình cần giúp đỡ mình gõ lệnh apktool d không có như này đây là zalo của mình 01649669380 giúp mình vớ thanks nhiều Comment
Malware đã viết: Hướng dẫn chèn code vào đoạn mã smali của file apk. I. Mở đầu _ Ứng dụng Android thường được viết bằng Java và thực thi trên Virtual Machine, byte code chạy trên Dalvik Virtual Machine (DVM) được chuyển đổi từ JVM byte code truyền thống sang dex-format(.dex file) bởi convertion tool dx (lưu trữ tại android-sdk/platforms/android-X/tools/lib/ với các phiên bản trước đây, ở phiên bản Android SDK mới nhất được lưu tại android-sdk/platform-tools/lib/). _ Mã code thực thi trên DVM được gọi là mã Smali, có tập lệnh phức tạp giống như Assembly trên Windows. Để đọc và hiểu mã Smali là một việc không hề dễ dàng. _ Việc chèn code java vào một ứng dụng Android có sẵn khá phức tạp do cấu trúc ngôn ngữ java khi decompile sẽ không được bảo toàn nguyên vẹn, khó có thể re-build lại ứng dụng để hoạt động bình thường. _ Tuy nhiên, chèn code smali vào ứng dụng là một việc khả thi, ta hoàn toàn có thể re-build lại ứng dụng để chạy bình thường. Đây là cách thông dụng khi cần mod ứng dụng, ROM, … _ Các hacker hoặc những người có ý đồ xấu hoàn toàn có thể chèn code smali vào ứng dụng nào đó nhằm thực hiện một hành vi độc hại nào đó. II. Yêu cầu: · Android SDK, virtual emulator hoặc 1 device thật · JAVA SDK · NotePad ++ · Nắm được kiến thức cơ bản về Android, cấu trúc file apk, tập lệnh smali · Apktool & baksmali/smali + Signer for all GB/ICS/JB/KK ROM v3 (4.4 Kitkat support/optimized) () III. Các bước thực hiện 1. Dùng apktool hoặc công cụ baksmali disassemble file apk thành các file smali. 14899399431.png 2. Phân tích code smali để biết cách hoạt động của ứng dụng 14899399432.png 3. Chèn code vào file smali. 14899399433.png 4. Thực hiện Reassemble file apk và zip/ sign apk. 14899399433.jpg
IV. Minh họa _ Chèn code vào ứng dụng Mobile Defender – một ứng dụng antivirus giả mạo, điều hướng người sử dụng đến trang web http://pdblprotect.com _ Mình sử dụng apktool thay cho công cụ smali/ backsmali đơn thuần vì nó decompile file apk thành các file smali, resource, AndroidManifest nên rất thuận tiện cho việc phân tích code smali. 1. Decompile file apk _ Download bộ công cụ Recompile & Decompile ở trên, giải nén, copy file apk vào thư mục apktool. _ Mở cmd tại thư mục apktool, chạy dòng lệnh : 14899399434.png Code: _Thu được thư mục: 14899399435.png _Cấu trúc thư mục: 14899399436.png 2. Phân tích ứng dụng _Phân tích AndroidManifest.xml để nắm được các permission, receiver, MainActivity .. của ứng dụng. _Các file smali cần phân tích nằm trong thư mục smali: 14899399437.png _ Dựa vào AndroidManifest ta xác định được MainActivity : _Phân tích AndroidManifest ta chú ý đến permission : _Qua khảo sát một số activity của ứng dụng, phát hiện trong PayFormActivity.smali có sử dụng đối tượng lớp WebView dẫn người sử dụng truy cập đến một trang web nào đó 14899399438.jpg _Ta sẽ chèn code vào trong file smali này để ‘bắt’ được đoạn link mà ứng dụng sử dụng. 3. Chèn code Ta sẽ chèn đoạn một code vào trong đoạn code smali ở trên nhằm hiện một AlertDialog thông báo đường link mà ứng dụng truy cập. Code: _vị trí cần chèn 14899399439.jpg ++Chú ý: _Để tránh việc khi rebuild lại ứng dụng không chạy được, cần đọc qua từng lệnh smali trong code gốc để có cách sử dụng hợp lý các biến cục bộ (số biến cục bộ được khai báo trong thân từng hàm). _Để tạo code smali, cách đơn giản nhất bạn hãy dùng một IDE như Eclipse hoặc Android Studio, build một đoạn code với nội dung mong muốn, rồi decompile file apk để lấy code smali tương ứng! 4. Recompile file apk _Sau khi chèn code vào file smali, chạy apktool để rebuild file apk: Code: 148993994310.png _ File apk thu được nằm trong đường dẫn : 5. Sign apk Sign apk để đảm bảo mỗi ứng dụng Android có một chữ kí riêng biệt, trước khi có thể cài đặt vào thiết bị. Code: _ Copy file apk thu được từ bước 4 để vào folder Sign & Zipalign tool đã giải nén ở trên 148993994311.png _Ta thu được file fake_av_s.apk 6. Zipalign file apk Zipalign nhằm nén và tối ưu hóa cấu trúc file apk. Code: 148993994312.png _ Đưa file apk fake_av_z.apk thu được vào smartphone hoặc emulator để xem kết quả. :D Kết quả _Ứng dụng Mobile Defender khi chưa chèn code smali 148993994313.png _ Ứng dụng đã được chèn một đoạn AlertDialog cảnh báo url link mà ứng dụng đang truy cập. 148993994314.png Cám ơn các bạn đã theo dõi bài viết. Nhấn để mở rộng...
cho mình xin zalo với mình cần giúp đỡ Comment Cho mình hỏi là mấy cái hình vmware có liên quan gì tới bài viết không? Comment
phieulang1993 đã viết: Cho mình hỏi là mấy cái hình vmware có liên quan gì tới bài viết không? Nhấn để mở rộng...
Mấy cái hình Vmware là bị lỗi trong quá trình nâng cấp forum trước đây đó bạn. Comment Ảnh bị lỗi trong quá trình nâng cấp forum đã được sửa các bạn nhé :) Comment Bạn phải đăng nhập hoặc đăng ký để phản hồi tại đây. Bài viết liên quan
  • HardBit 4.0 lộ diện: Ransomware “không rò rỉ, không thương lượng”, sẵn sàng mã hóa hoặc xóa sạch dữ liệu
    • Ngày bắt đầu 24/12/2025
    • 0
  • Tấn công supply chain nghiêm trọng trên NPM ảnh hưởng hàng tỷ lượt tải
    • Ngày bắt đầu 09/09/2025
    • 0
  • Hướng dẫn phân tích extension trình duyệt độc hại với ExtAnalysis
    • Ngày bắt đầu 15/05/2022
    • 0
  • Hướng dẫn xử lý các lỗi của hệ thống phát sinh do mã độc
    • Ngày bắt đầu 15/03/2022
    • 3
  • Hướng dẫn rà soát phần mềm độc hại trên Linux
    • Ngày bắt đầu 13/02/2022
    • 2
  • Hướng dẫn rà soát virus, mã độc cơ bản cực kì đơn giản
    • Ngày bắt đầu 14/11/2021
    • 8
  • Bên trên

    Từ khóa » Ngôn Ngữ Smali