2016年2月12日金曜日

2016年2月8日月曜日

「このファイルはウィルスに感染しています」 at Google drive

Google Drive に一般公開でプログラムをアップロードする、という形でお世話なっている方も多いはず。。。


し、しかし、ここにきてこの仕打ち!

「このファイルはウィルスに感染しています」
「感染したファイルをダウンロードできるのはオーナーだけです。」


どうも、NSIS のプラグイン NSISDL が良くないっぽいです。 後、有効なデジタル署名が付いていない点も然りか。。。

そこで、オーナーになって、ダウンロードを試みました:


このファイルはウィルスに感染しています

Setup_WLMMailRulesMover_0_5_0_0.exe(568k)はパソコンに損害を与える可能性があります。このファイルのダウンロードは、リスクを理解している場合にのみ行ってください。
ウィルスに感染したファイルをダウンロード


『ウィルスに感染しています』と言葉厳しく断言しています。偽陽性だったらどうするんだー

今朝、Windows 8.1 の Windows Defender でも引っ掛かりました。気を取り直して、スクショを撮ろうか、と思っていたら、出なくなりました。

どのような判定を受けるのか、改めてチェックしました:


「Avast    Win32:Malware-gen」
「SUPERAntiSpyware    Trojan.Agent/Gen-Zbot」

これをアップロード公開した当初は Ok だったんです。

昨日までダウンロード Ok であっても、今日になったらアウト、という事はこれからも起こりそうです。

2016年1月26日火曜日

SQL サーバー mdf ファイルを確実に更新させる

バックアップ前に、mdf ファイルを確実に更新するには、SQL サーバーを再起動するしかないと思っていました。

DBCC DROPCLEANBUFFERS; が使える事が分かりました。

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE" -E -S SERVER,PORT -Q "DBCC DROPCLEANBUFFERS;"

2015年12月9日水曜日

GAEp クックパッド (2018/2/23)

いま流行の Flask で。
Windows で Flask を使うおまじない。appengine_config.py
# coding: utf-8

# https://issuetracker.google.com/issues/72043776#comment7
import os
import sys
on_appengine = os.environ.get('SERVER_SOFTWARE','').startswith('Development')

if on_appengine and os.name == 'nt':
  sys.platform = "Not Windows"

from google.appengine.ext import vendor

# Add any libraries installed in the "lib" folder.
vendor.add('lib') 

エラー発生時に、コンソール画面へスタックトレースを表示したい
# https://stackoverflow.com/a/46914462
app = Flask(__name__)

import os
production_environment = os.getenv('SERVER_SOFTWARE').startswith('Google App Engine/')

if not production_environment:
  app.debug = True 
空のレスポンス
    # https://stackoverflow.com/a/24295616
    return ('', 201)

Key のパースエラーを包み隠す
  try:
    key = ndb.Key(urlsafe = request.args.get('k'))
  except Exception, e:
    # https://github.com/googlecloudplatform/datastore-ndb-python/issues/143#issuecomment-110869342
    if e.__class__.__name__ == 'ProtocolBufferDecodeError':
      return ('', 404)
    raise

Content-Type を設定
  resp = Response("\n".join(lines))
  resp.headers["content-type"] = 'text/plain'
  return resp

Jinja2 で三項演算子。loop.first ? 'true' : 'false'参考
{{ 'true' if loop.first else 'false' }}
?? 演算子も。
{{ value or 'fallback' }}

JSON を返す。参考
from flask import jsonify

return jsonify(root)
自分の URL 参考
from flask import request

request.base_url

a
a
a

2015年12月4日金曜日

Cygwin gcj 4.9.3 で NoClassDefFoundError GCCMain エラー

gcj エラー出力

/usr/bin/gcj -O2 --encoding=UTF-8 --classpath="/usr/share/java/libgcj-4.9.3.jar:/home/ku_000/pdftk-2.02-dist/java:." -C pdftk/com/lowagie/text/ElementTags.java
Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.jdt.internal.compiler.batch.GCCMain
   at gnu.java.lang.MainThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.batch.GCCMain not found in gnu.gcj.runtime.SystemClassLoader{urls=[], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at gnu.java.lang.MainThread.run(Unknown Source)
Makefile:44: recipe for target 'pdftk/com/lowagie/text/ElementTags.class' failed
make[1]: [pdftk/com/lowagie/text/ElementTags.class] Error 1 (ignored)

こういう事らしいです…

Specifically, it says to download

  ftp://sourceware.org/pub/java/ecj-latest.jar

and rename the file to

  /usr/share/java/ecj.jar.

https://cygwin.com/ml/cygwin/2012-04/msg00103.html

2015年10月30日金曜日

HKCU\Software\Microsoft\Internet Explorer\LowRegistry\IEShims\NormalizedPaths

Internet Explorer に関する整合性レベル低についての情報を探していました。


どうもこのレジストリが当たりのようです。

どのような整合性レベルが設定されているのか、検証:

C:\Users\ku_000\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low>icacls .
. NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
  DD36\ku_000:(I)(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

C:\Users\ku_000\AppData\Local\Microsoft\Windows\Temporary Internet Files\Virtualized>icacls .
. NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
  DD36\ku_000:(I)(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

C:\Users\ku_000\AppData\Local\Microsoft\Windows\Temporary Internet Files → [C:\Users\ku_000\AppData\Local\Microsoft\Windows\INetCache]

C:\Users\ku_000\AppData\Local\Temp\Low>icacls .
. NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
  DD36\ku_000:(I)(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

C:\Users\ku_000\AppData\LocalLow>icacls .
. NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  BUILTIN\Administrators:(OI)(CI)(F)
  DD36\ku_000:(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)


今日この件が、ダウンロードアンダーバー問題と関係が有るのではないかと、ふと思い、調査に着手しました。

2015年10月16日金曜日

IDownloadManager の実装意義

Internet Explorer や WebBrowser コントロールには、ファイルのダウンロードをカスタマイズする機構が備わっているようです。

IDownloadManager interface
https://msdn.microsoft.com/en-us/library/aa753613(v=vs.85).aspx

インターフェイスの定義の方は、次のようになっています。

    MIDL_INTERFACE("988934A4-064B-11D3-BB80-00104B35E7F9")
    IDownloadManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Download( 
            /* [in] */ IMoniker *pmk,
            /* [in] */ IBindCtx *pbc,
            /* [in] */ DWORD dwBindVerb,
            /* [in] */ LONG grfBINDF,
            /* [in] */ BINDINFO *pBindInfo,
            /* [in] */ LPCOLESTR pszHeaders,
            /* [in] */ LPCOLESTR pszRedir,
            /* [in] */ UINT uiCP) = 0;
        
    };

要は GET や POST でダウンロードが必要な場合に



確認を求めてくる、あの画面です。

通常 Download が呼び出されますが。横取りされて、Download が履行されないケースも確認しています:

  • PDFファイルが、Adobe Acrobat Reader 等でインライン表示される場合。
  • テキスト形式に見えるファイルが、インライン表示される場合。

Download に渡ってくる引数につきまして:

  • pmk 以外は、ほとんど NULL。当てにできません。
  • POST の場合は、GET と同じ要領で来ます。判別する明確な方法は見つかっていません。


こういう物を見つけました。

IE custom download manager (CSIEDownloadManager)
https://code.msdn.microsoft.com/windowsdesktop/CSIEDownloadManager-8ab5d910

ビルドしたサンプルを参考までにお配りしています。

Setup_CSIEDownloadManager.exe
https://drive.google.com/file/d/0Bygl-em20CSKcEhKZFYxdVZUemM/view?usp=sharing

Windows 8.1 の IE11 でも動きましたので、IDownloadManager は未だ有効のようです。