スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Web] 偽セキュリティソフト Internet Security (名前いろいろあり)が超うざかったけどなんとか消したでござる

Microsoft Security Essentials を入れていたのですけどね、
Web閲覧中だったのでおそらくどこぞのページに埋め込まれていたのでしょう。
いきなり警告を始めてあらゆるアプリケーションを「危険!危険!」と起動させなくするという。

タイトルにはそれっぽく Internet Security とあって、
なんかスキャンをやり始めて(たぶんやってるように見せかけてるだけ)、
駆除するにはお金払ってね! とクレジット番号の入力を促すのです。

Isecurity.exe-インターネット セキュリティ マルウェア ウイルス プロセス
http://trojan-killer.net/ja/isecurity-exe-virus/

このページはセキュリティソフトの宣伝なので、試してみられるもよし、
情報をありがたく承って手動で駆除するのもよしです。
やることは二つ、実行ファイルの削除と、レジストリに書き込まれたこの実行ファイルの起動です。

ただ、この偽セキュリティソフトが入ってしまうと実質何のオペレーションもできなくなるので、
情報を仕入れようとブラウザを立ちあげても終了され、レジストリをいじろうにも
regedit.exe が終了され、タスクマネージャからプロセスを落としてやろうとしても
これも終了されます。手が込んでいます。

というわけで、前述のページに書かれているように
taskkill を用いて落としたりするわけです。

taskkill.exe/F/IM isecurity.exe



実体は isecurity.exe です。(亜種はファイル名が違うでしょうが)
この taskkill コマンドは危険なものではありません。
むやみやたらにプロセスを終了させる行為はよろしいものではありませんが、
内容をわかって実行する分には問題ありません。

タスクを強制的に終了させる(TASKKILLコマンドの使い方)
http://miniminiadmin.jugem.jp/?eid=319

↑こちらをご覧いただければ、内容は理解できるかと思います。
/F は「強制終了するよ」 /IM は「指定された名前のものに対して実行するよ」なので、
「taskkill を使って isecurity.exe を強制終了させるよ」です。簡単でしょ?

もしくは、別のPCがあればツールを手に入れてきてプロセスを止めることができます。
別のPCから RogueKiller.exe 等をダウンロードしてきて、USBメモリ等で汚染されたPCへコピーし、
妨害されなさそうな名前( svchost.exe とか )に変更して実行すると、プロセスを止めてくれます。
(なぜ変更するかというと、そのままの名前だと他のアプリケーション同様に終了される
危険性があるので、妨害から無視されるような、Windowsで標準で動いているような
名前にしておけば騙せるのです)

これで他のアプリケーションの起動を阻害されないので、
ここで始めて対処ができるようになるわけです。

偽セキュリティソフト・偽PCメンテナンスツール駆除「RogueKiller」
http://lhsp.s206.xrea.com/misc/roguekiller.html
 ※こちらにも記載されていますが、RogueKiller.exe が旧バージョンのころの情報です

 現在の RogueKiller.exe はこんな感じですね。
 DOS起動ではなく、普通のウインドウアプリケーションです。

RogueKiller.exe

 本来なら駆除までやってくれるはずなのですが、
私の環境ではスキャンを行うと途中で終了してしまいました。
でもプロセスを止めるところまでが面倒なので、あとは特に手間ではありません。

いい用心としては、これらのツールをあらかじめ落としておいて、
いざというときに使うのがいいかもしれませんね。

 ここからは普通に調べものもできるので楽でしょう。
 ツールを使うなり、情報を集めて手作業で駆除もできます。

 ツールの場合は Spybot なんかがあります。

Spybot-S&D
http://www.safer-networking.org/jp/index.html

 手作業の場合は、いろいろ Web から情報を集めて行います。
 今回の場合の私の作業は以下の通り。

1. RogueKiller.exe で問題のあるアプリケーションのパスはわかったのでまずこれを消す
 ( 私の場合は C:\Documents and Settings\All Users\Application Data\isecurity.exe でした )

2. レジストリの問題エントリを削除
 ( 私の場合は HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
 Run isecurity.exe とありました。 )


そのほか参考:
Internet Security 2012を削除してみよう
http://trojan-killer.net/ja/isecurity-exe-virus/
スポンサーサイト

テーマ : インターネット
ジャンル : コンピュータ

[iOS] iOS4で動いていたアプリがiOS5で原因不明の落ち方をして動作しないでござる

という標題通りのことがありまして。

急いでいる方に結論を先に書いておきますね。
iOS5 では iOS4 では見逃されていたしょうもないコーディングミスでアプリが落ちることがあるぞ!


はい。後はぐだぐだ書いていきますね。
冗長に書いていきますが、お悩みの方に何かヒントがあれば幸いです。
iOS4向けとして作成していたアプリを、前述のエントリのように
Webからインストールできるようにしておりまして、問題なく動いていたんですね。

参考:当ブログ内の別エントリ
[iOS] Distributing Enterprise Apps for iOS 4 Devices (iOS4 デバイスへのエンタープライズアプリケーションの配布)

で、端末を iOS5 にアップロードさせると起動したかと思うとすぐ終了したり、
起動しても PickerView を表示させようとした時点で落ちるように終了したり
していたのです。

また不思議なことに、端末を USBで接続して、Xcodeから起動させると問題なく
動作したりするのです。これが事象の概要です。

【事象】
iOS4 で問題なく動作していたアプリが iOS5 に更新した端末で動作しなくなった。
アプリを消して再度インストールしても同様。


で、いろいろ調べたり試行錯誤しておりました。
PickerView を表示しようとしたときに落ちることが多かったので、
修正ではなくゼロの状態から PickerView のみ配置した簡単な
アプリなどつくってみたら動作に問題はないわけです。

よくわからないので、再度ゼロから作り直していったらいいのかな? と思い
前のコードを拾えるところ拾いつつ勉強のつもりで再コーディング。
で、だいたい完成のところまで組み込んで、.ipa のファイルを作成して
FTPでアップして、端末からダウンロードしてインストール。
すると、以前と同じ事象が。 PickerView を表示しようとして落ちます。

と、いうことは 「以前のXCodeで作成したものがダメ」なのではなく、
「何らかの問題を内包していて、iOS4ではダマシダマシ動いていたものが
iOS5では終了するようになった」
と推測しました。

Xcode経由で動かしていても問題がないので、端末に何かログ的なものがあれば推測しやすいか?
と思い調べると、落ちたときのログが残っていました。
オーガナイザ(Xcode4.2であれば右肩の Organizer)を開いて、Device Logs を探してください。

参考:iOS開発ガイド - コンソール出力ログとデバイスログの表示
https://developer.apple.com/jp/devcenter/ios/library/documentation/Xcode/Conceptual/ios_development_workflow/#130-Debugging_Applications/debugging_applications.html

だいたいぱっとみてもよくわからないバイナリ情報が羅列してあるのですが、
運が良ければ問題のあるコードのファイル名と行数が載っています。

私の場合はそれがあり、PickerView を2列にしていて、2列目を selectRow() で値を
指定しようとして落ちているようでした。
ひとつの PickerView を numberOfComponentsInPickerView() 内で場合によって
1か2を返しており、1列にしたり2列にしたりしていたので、こういう使い方がいかんのかな?
とも思ったのですが、調べていくとそうでもないらしい。

ああでもないこうでもないといろいろ試して行き着いたのが、
titleForRow() で PickerView 内のドラムの要素を設定しているところ。

ざっくり書くと 0~6 を候補にすべく、こんなふうに書いておりました。

NSSTring* strArray[6] = { @"0", @"1", @"2", @"3", @"4", @"5", @"6" };

おかしなことしておりますね。配列は0から始まるので、strArray[7] でなくてはいけません。
でもこれでエラーも出ず、Xcode 経由の動作では問題がなかったのです。
おそらくは配列の7個目を Xcode 経由で動かすときは無理やり拡張してくれていたのでしょう。

これを正しく直すとあれ解決。
ですので、冒頭にも結論として書きましたが、Xcodeからのデバッグでは
エラーも吐かれず特に問題がないように見えても、
実機で動かすとおかしいことがあるぞ・・・ということです。

【原因】
コーディングミスにより、一定の添字数の配列よりあふれる形で値を与えていた。
iOS4 実機では問題なく動くものの、iOS5 実機では厳密にエラーとなり、
強制終了していた。


【解決の鍵】
オーガナイザから実機のログを参照して、問題のありそうな箇所を探る。
箇所がだいたい特定されたら、周囲のコードを見直す。

[Web] phpPgAdmin でエクスポートができないでござる(-d --inserts)

自分で設置した、もしくはなんか業者さんとか外部のひとに phpPgAdmin を設置してもらった、
さてバックアップ取ろうとエクスポートとろうとしたらファイルがダウンロードできない、もしくは画面に
何も表示されない、というのはたまにでくわす事象でございます。

よくあるのは設定ファイルの記載間違い。

phpPgAdminでエクスポートをする方法[to-R]
http://blog.webcreativepark.net/2006/01/11-201906.html

たいていこれで直ります。
pg_dump へのパスを正しくしてやる。

今回、私が体験した事象は、上記のように phpPgAdmin からエクスポートができない。
特にエラーは出ず、画面表示をすると何も表示されず、ダウンロードしようとすると
0バイトのファイルになる。

で、設定ファイルの pg_dump へのパスを調べてみると正しく通ってる。
SSHからは問題なく・・・できる。でも不思議なことに
-d オプション(レコードをCOPYでなくINSERTで出力)が通らない。
ヘルプを読め馬鹿野郎と怒られます。

まあ仕方がないのでヘルプ見て同等の --inserts を指定。
と、ここであれあれと思い、再度 phpPgAdmin に戻って COPY 文指定でエクスポート。

できるじゃん!

普段からフォーマット:SQL指定で出してるもので、pg_dump 自体がおかしいと
思い込んでましたが、どうも -d オプションが効かないだけのようです。
なんでこのサーバに入ってる pg_dump が -d オプション効かないのかは
気にはなるものの、これなら phpPgAdmin のスクリプトを少し書きなおすだけで
INSERT文でエクスポートができそう。

というわけで、探して見つけたこの部分。

■ dbexport.php

switch ($_REQUEST['what']) {
case 'dataonly':
$cmd .= ' -a';
if ($_REQUEST['d_format'] == 'sql') $cmd .= ' -d';
elseif (isset($_REQUEST['d_oids'])) $cmd .= ' -o';
break;
case 'structureonly':
$cmd .= ' -s';
if (isset($_REQUEST['s_clean'])) $cmd .= ' -c';
break;
case 'structureanddata':
if ($_REQUEST['sd_format'] == 'sql') $cmd .= ' -d';
elseif (isset($_REQUEST['sd_oids'])) $cmd .= ' -o';
if (isset($_REQUEST['sd_clean'])) $cmd .= ' -c';
break;
}



$cmd .= ' -d'

という部分が2箇所あるので、そこを

$cmd .= ' --inserts'

に変えてしまいました。( --inserts はハイフン2つなので注意)

これでフォーマット:SQL でも無事に出力できるのを確認。

テーマ : web制作
ジャンル : コンピュータ

[Web] float: left; で横方向の並びにした ul/li のリストをセンタリング(中央寄せ)にしたい



UL / LI でのリストを横に並べる、というのは float: left; で
左回り込みするようにしてよくやることかと思います。

で、これを中央に表示させたいのだけど、margin の設定や
text-align: center; とかではなかなかうまいこといかない。
どうしても左回り込みということで左端に行っちゃうんですよね。
(参照:↑「ふつうはこう」)

で、いろいろやり方はあるのですが、簡潔に書かれているのはこちら。

floatで並べたリストのセンタリング
http://hail2u.net/blog/webdesign/centering-floated-list.html

まあ意味はわかるのですが、いまいち腹にはまらなかったので、
枠線つけてわかりやすくしてみたのが上記のサンプル。

・外枠で位置を相対指定にさせる。
 なおかつ、中身がはみ出しそうになってスクロールバーが出てしまうのを防ぐために
 overflow を hidden にする。


・UL も相対位置にして、50%位置にする。
 これで ULの頭が真ん中になる。
 (でも頭が真ん中になっただけなので、センタリングではない)


・UL のなかの要素である LI を -50% 指定にする。
 先のULの位置から左に戻る形になり、全体的にはセンタリングされた形になる


というところですかね。

テーマ : web制作
ジャンル : コンピュータ

検索フォーム
リンク
最新記事
最新コメント
カテゴリ
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。