3-1.関数の呼び出し関係の解析

リスト3-1-1のプログラムの場合、プログラムの先頭からAPIを抽出したならば、ApiA、ApiB、ApiCとなる。しかしリスト3-1-1のプログラムをリスト3-1-2のプログラムのように改変すると、ApiB、ApiC、ApiAとなる。

リスト3-1-1
void
function_0 (void)
{
  ApiA ();
}

int
main (int   argc,
      char *argv[])
{
  ApiB ();
  function_0 ();
  ApiC ();
  return 0;
}
リスト3-1-2
int
main (int   argc,
      char *argv[])
{
  ApiB ();
  function_0 ();
  ApiC ();
  return 0;
}

void
function_0 (void)
{
  ApiA ();
}

関数の配置はコンパイラやリンカに依存することであり、関数の配置によって結果が変わってしまうようではコードの変化に対して弱い。ゆえにプログラムの流れに沿ってプログラムからAPI呼び出しを抽出する必要がある。上記の例でプログラムの流れに沿ってAPI呼び出しを抽出するとApiB、ApiA、ApiCとなる。

3-1-1.関数の呼び出し関係の可視化

プログラムの関数の呼び出しの関係を可視化するスクリプトgraph.plを作成した。graph.plIDA Proの出力結果からGraphvizのデータを作る。リスト3-1-1-1のプログラムはグラフ3-1-1-1のようになる。

リスト3-1-1-1
void
function_0 (void)
{
}

void
function_1 (void)
{
}

int
main (int   argc,
      char *argv[])
{
  function_0 ();
  function_1 ();
  return 0;
}
グラフ3-1-1-1
digraph "g" {
  "main" -> "function_0";
  "main" -> "function_1";
}

グラフ3-1-1-1

再帰的に関数が呼び出される場合には2度目の呼び出しは無視する。リスト3-1-1-2のプログラムはグラフ3-1-1-2のようになる。

リスト3-1-1-2
void
function_0 (void)
{
  ApiA ();
  function_1 ();
  ApiB ();
}

void
function_1 (void)
{
  ApiC ();
  function_0 ();
  ApiD ();
}

int
main (int   argc,
      char *argv[])
{
  ApiE ();
  function_0 ();
  ApiF ();
  function_1 ();
  ApiG ();
  return 0;
}
グラフ3-1-1-2
digraph "g" {
  "main" -> "function_0";
  "main" -> "function_1";
  "function_0" -> "function_1";
  "function_1" -> "function_0";
}

グラフ3-1-1-2

W32/Bagleの亜種とW32/Korgoの亜種、W32/Mydoomの亜種、W32/Netskyの亜種、Text maidの各バージョン、ネットワーク関連のプログラムについてgraph.plを用いてグラフを作った。私がW32/Korgo.Aを解析して同様の図を書いた場合にはグラフ3-1-1-3のようになる。graph.plの出力は私の解析に近い結果になっている。

表3-1-1-1 W32/Bagleの各亜種の関数の呼び出し関係グラフ
名称IDA Pro出力Graphvizグラフ
W32/Bagle.A w32bg__a.lstw32bg__a.dotw32bg__a.png
W32/Bagle.B w32bg__b.lstw32bg__b.dotw32bg__b.png
W32/Bagle.C w32bg__c.lstw32bg__c.dotw32bg__c.png
W32/Bagle.D w32bg__d.lstw32bg__d.dotw32bg__d.png
W32/Bagle.J w32bg__j.lstw32bg__j.dotw32bg__j.png
W32/Bagle.K w32bg__k.lstw32bg__k.dotw32bg__k.png
W32/Bagle.N w32bg__n.lstw32bg__n.dotw32bg__n.png
W32/Bagle.P w32bg__p.lstw32bg__p.dotw32bg__p.png
W32/Bagle.Q w32bg__q.lstw32bg__q.dotw32bg__q.png
W32/Bagle.R w32bg__r.lstw32bg__r.dotw32bg__r.png
W32/Bagle.S w32bg__s.lstw32bg__s.dotw32bg__s.png
W32/Bagle.T w32bg__t.lstw32bg__t.dotw32bg__t.png
W32/Bagle.X w32bg__x.lstw32bg__x.dotw32bg__x.png
W32/Bagle.Z w32bg__z.lstw32bg__z.dotw32bg__z.png
W32/Bagle.AA w32bg_aa.lstw32bg_aa.dotw32bg_aa.png
W32/Bagle.AD w32bg_ad.lstw32bg_ad.dotw32bg_ad.png
W32/Bagle#115w32bg115.lstw32bg115.dotw32bg115.png
表3-1-1-2 W32/Korgoの各亜種の関数の呼び出し関係グラフ
名称IDA Pro出力Graphvizグラフ
W32/Korgo.A w32krg_a.lstw32krg_a.dotw32krg_a.png
W32/Korgo.B w32krg_b.lstw32krg_b.dotw32krg_b.png
W32/Korgo.C w32krg_c.lstw32krg_c.dotw32krg_c.png
W32/Korgo.E w32krg_e.lstw32krg_e.dotw32krg_e.png
W32/Korgo.G w32krg_g.lstw32krg_g.dotw32krg_g.png
W32/Korgo.N w32krg_n.lstw32krg_n.dotw32krg_n.png
W32/Korgo.P w32krg_p.lstw32krg_p.dotw32krg_p.png
W32/Korgo.Q w32krg_q.lstw32krg_q.dotw32krg_q.png
W32/Korgo.R w32krg_r.lstw32krg_r.dotw32krg_r.png
W32/Korgo.S w32krg_s.lstw32krg_s.dotw32krg_s.png
W32/Korgo.T w32krg_t.lstw32krg_t.dotw32krg_t.png
W32/Korgo.V w32krg_v.lstw32krg_v.dotw32krg_v.png
W32/Korgo.Z w32krg_z.lstw32krg_z.dotw32krg_z.png
W32/Korgo.AAw32krgaa.lstw32krgaa.dotw32krgaa.png
W32/Korgo.ABw32krgab.lstw32krgab.dotw32krgab.png
W32/Korgo.ACw32krgac.lstw32krgac.dotw32krgac.png
表3-1-1-3 W32/Mydoomの各亜種の関数の呼び出し関係グラフ
名称IDA Pro出力Graphvizグラフ
W32/Mydoom.A w32myd_a.lstw32myd_a.dotw32myd_a.png
W32/Mydoom.B w32myd_b.lstw32myd_b.dotw32myd_b.png
W32/Mydoom.F w32myd_f.lstw32myd_f.dotw32myd_f.png
W32/Mydoom.G w32myd_g.lstw32myd_g.dotw32myd_g.png
W32/Mydoom.H w32myd_h.lstw32myd_h.dotw32myd_h.png
W32/Mydoom.L w32myd_l.lstw32myd_l.dotw32myd_l.png
W32/Mydoom.N w32myd_n.lstw32myd_n.dotw32myd_n.png
W32/Mydoom.O w32myd_o.lstw32myd_o.dotw32myd_o.png
W32/Mydoom.R w32myd_r.lstw32myd_r.dotw32myd_r.png
W32/Mydoom.S w32myd_s.lstw32myd_s.dotw32myd_s.png
W32/Mydoom.T w32myd_t.lstw32myd_t.dotw32myd_t.png
W32/Mydoom.X w32myd_x.lstw32myd_x.dotw32myd_x.png
W32/Mydoom.AFw32mydaf.lstw32mydaf.dotw32mydaf.png
W32/Mydoom.AMw32mydam.lstw32mydam.dotw32mydam.png
W32/Mydoom.BHw32mydbh.lstw32mydbh.dotw32mydbh.png
W32/Mydoom.BNw32mydbn.lstw32mydbn.dotw32mydbn.png
W32/Mydoom#46w32myd46.lstw32myd46.dotw32myd46.png
表3-1-1-4 W32/Netskyの各亜種の関数の呼び出し関係グラフ
名称IDA Pro出力Graphvizグラフ
W32/Netsky.Bw32nts_b.lstw32nts_b.dotw32nts_b.png
W32/Netsky.Lw32nts_l.lstw32nts_l.dotw32nts_l.png
W32/Netsky.Mw32nts_m.lstw32nts_m.dotw32nts_m.png
W32/Netsky.Ow32nts_o.lstw32nts_o.dotw32nts_o.png
W32/Netsky.Ww32nts_w.lstw32nts_w.dotw32nts_w.png
表3-1-1-5 Text maidの各バージョンの関数の呼び出し関係グラフ
名称IDA Pro出力Graphvizグラフ
Text maid 1.9Etm019eja.lsttm019eja.dot tm019eja.png
Text maid 1.9Ftm019fja.lsttm019fja.dot tm019fja.png
Text maid 1.9Gtm019gja.lsttm019gja.dot tm019gja.png
Text maid 1.9Htm019hja.lsttm019hja.dot tm019hja.png
Text maid 1.9Itm019ija.lsttm019ija.dot tm019ija.png
Text maid 1.9Jtm019jja.lsttm019jja.dot tm019jja.png
Text maid 1.9Ktm019kja.lsttm019kja.dot tm019kja.png
Text maid 1.9Ltm019lja.lsttm019lja.dot tm019lja.png
Text maid 1.9Mtm019mja.lsttm019mja.dot tm019mja.png
Text maid 1.9Ntm019nja.lsttm019nja.dot tm019nja.png
Text maid 1.9Otm019oja.lsttm019oja.dot tm019oja.png
Text maid 1.9Ptm019pja.lsttm019pja.dot tm019pja.png
Text maid 1.9Qtm019qja.lsttm019qja.dot tm019qja.png
Text maid 1.9Rtm019rja.lsttm019rja.dot tm019rja.png
Text maid 1.9Stm019sja.lsttm019sja.dot tm019sja.png
Text maid 1.9Ttm019tja.lsttm019tja.dot tm019tja.png
Text maid 1.9Utm019uja.lsttm019uja.dot tm019uja.png
表3-1-1-6 ネットワーク関連プログラムの関数の呼び出し関係グラフ
名称IDA Pro出力Graphvizグラフ
fingerfinger.lstfinger.dotfinger.png
ftp ftp.lst ftp.dot ftp.png
ping ping.lst ping.dot ping.png
telnettelnet.lsttelnet.dottelnet.png
tftp tftp.lst tftp.dot tftp.png

グラフ3-1-1-3 グラフ3-1-1-3

3-1-2.関数の呼び出し関係に沿ったAPI抽出

関数の呼び出し関係の解析を応用してAPIの抽出を行う。リスト3-1-1のプログラムはプログラムの流れに沿ってAPI呼び出しを抽出するとApiB、ApiA、ApiCとなる。再帰的に関数が呼び出される場合には2度目の呼び出しは無視する。リスト3-1-1-2のプログラムではApiE、ApiA、ApiC、ApiD、ApiB、ApiF、ApiC、ApiA、ApiB、ApiD、ApiGとなる。mainでfunction_0で一度呼ばれたことがあるfunction_1が呼び出されるがこの段階では再帰的な2度目の呼び出しではないのでfunction_1も解析する。その後のfunction_1の中のfunction_0も同様である。このようにして関数の呼び出しに沿ってAPIを抽出することでプログラムから1つの配列を作ることができる。

APIの抽出する際、関数の内部でのプログラムの流れは無視する。リスト3-1-2-1のプログラムはifやfor、whileなどの制御文により実行時のAPIの呼び出しは異なる。しかしAPIの抽出では関数の内部でのプログラムの流れは無視されるので、関数の呼び出しに沿ってAPIを抽出した結果はリスト3-1-1のプログラムと同じ結果になる。

リスト3-1-2-1
void
function_0 (void)
{
  ApiA ();
}

int
main (int   argc,
      char *argv[])
{
  int i;

  for (i = 0; i < 10; i++)
    ApiB ();
  if (a == 0)
    function_0 ();
  while (1)
    ApiC ();
  return 0;
}

関数の呼び出しに沿ってAPIを抽出するスクリプトparser.plを作成した。parser.plIDA Proの出力結果からテキストデータを作る。これは各行がAPIを呼び出している関数、アドレス、APIの名前になっている。parser.plallow.txtを読み込む。このファイルは抽出するAPIの一覧である。mkallow.plは複数のDLLからallow.txtを作る。mkallow.plはMicrosoftの開発環境に含まれるdumpbin.exeを必要とする。W32/Bagleの各亜種とW32/Korgoの各亜種、W32/Mydoomの各亜種、W32/Netskyの各亜種、Text maidの各バージョン、ネットワーク関連プログラムについてparser.plを用いてAPIリストを作った。

表3-1-2-1 W32/Bagleの各亜種のAPIリスト
名称IDA Pro出力APIリスト
W32/Bagle.A w32bg__a.lstw32bg__a.api
W32/Bagle.B w32bg__b.lstw32bg__b.api
W32/Bagle.C w32bg__c.lstw32bg__c.api
W32/Bagle.D w32bg__d.lstw32bg__d.api
W32/Bagle.J w32bg__j.lstw32bg__j.api
W32/Bagle.K w32bg__k.lstw32bg__k.api
W32/Bagle.N w32bg__n.lstw32bg__n.api
W32/Bagle.P w32bg__p.lstw32bg__p.api
W32/Bagle.Q w32bg__q.lstw32bg__q.api
W32/Bagle.R w32bg__r.lstw32bg__r.api
W32/Bagle.S w32bg__s.lstw32bg__s.api
W32/Bagle.T w32bg__t.lstw32bg__t.api
W32/Bagle.X w32bg__x.lstw32bg__x.api
W32/Bagle.Z w32bg__z.lstw32bg__z.api
W32/Bagle.AA w32bg_aa.lstw32bg_aa.api
W32/Bagle.AD w32bg_ad.lstw32bg_ad.api
W32/Bagle#115w32bg115.lstw32bg115.api
表3-1-2-2 W32/Korgoの各亜種のAPIリスト
名称IDA Pro出力APIリスト
W32/Korgo.A w32krg_a.lstw32krg_a.api
W32/Korgo.B w32krg_b.lstw32krg_b.api
W32/Korgo.C w32krg_c.lstw32krg_c.api
W32/Korgo.E w32krg_e.lstw32krg_e.api
W32/Korgo.G w32krg_g.lstw32krg_g.api
W32/Korgo.N w32krg_n.lstw32krg_n.api
W32/Korgo.P w32krg_p.lstw32krg_p.api
W32/Korgo.Q w32krg_q.lstw32krg_q.api
W32/Korgo.R w32krg_r.lstw32krg_r.api
W32/Korgo.S w32krg_s.lstw32krg_s.api
W32/Korgo.T w32krg_t.lstw32krg_t.api
W32/Korgo.V w32krg_v.lstw32krg_v.api
W32/Korgo.Z w32krg_z.lstw32krg_z.api
W32/Korgo.AAw32krgaa.lstw32krgaa.api
W32/Korgo.ABw32krgab.lstw32krgab.api
W32/Korgo.ACw32krgac.lstw32krgac.api
表3-1-2-3 W32/Mydoomの各亜種のAPIリスト
名称IDA Pro出力APIリスト
W32/Mydoom.A w32myd_a.lstw32myd_a.api
W32/Mydoom.B w32myd_b.lstw32myd_b.api
W32/Mydoom.F w32myd_f.lstw32myd_f.api
W32/Mydoom.G w32myd_g.lstw32myd_g.api
W32/Mydoom.H w32myd_h.lstw32myd_h.api
W32/Mydoom.L w32myd_l.lstw32myd_l.api
W32/Mydoom.N w32myd_n.lstw32myd_n.api
W32/Mydoom.O w32myd_o.lstw32myd_o.api
W32/Mydoom.R w32myd_r.lstw32myd_r.api
W32/Mydoom.S w32myd_s.lstw32myd_s.api
W32/Mydoom.T w32myd_t.lstw32myd_t.api
W32/Mydoom.X w32myd_x.lstw32myd_x.api
W32/Mydoom.AFw32mydaf.lstw32mydaf.api
W32/Mydoom.AMw32mydam.lstw32mydam.api
W32/Mydoom.BHw32mydbh.lstw32mydbh.api
W32/Mydoom.BNw32mydbn.lstw32mydbn.api
W32/Mydoom#46w32myd46.lstw32myd46.api
表3-1-2-4 W32/Netskyの各亜種のAPIリスト
名称IDA Pro出力APIリスト
W32/Netsky.Bw32nts_b.lstw32nts_b.api
W32/Netsky.Lw32nts_l.lstw32nts_l.api
W32/Netsky.Mw32nts_m.lstw32nts_m.api
W32/Netsky.Ow32nts_o.lstw32nts_o.api
W32/Netsky.Ww32nts_w.lstw32nts_w.api
表3-1-2-5 Text maidの各バージョンのAPIリスト
名称IDA Pro出力APIリスト
Text maid 1.9Etm019eja.lsttm019eja.api
Text maid 1.9Ftm019fja.lsttm019fja.api
Text maid 1.9Gtm019gja.lsttm019gja.api
Text maid 1.9Htm019hja.lsttm019hja.api
Text maid 1.9Itm019ija.lsttm019ija.api
Text maid 1.9Jtm019jja.lsttm019jja.api
Text maid 1.9Ktm019kja.lsttm019kja.api
Text maid 1.9Ltm019lja.lsttm019lja.api
Text maid 1.9Mtm019mja.lsttm019mja.api
Text maid 1.9Ntm019nja.lsttm019nja.api
Text maid 1.9Otm019oja.lsttm019oja.api
Text maid 1.9Ptm019pja.lsttm019pja.api
Text maid 1.9Qtm019qja.lsttm019qja.api
Text maid 1.9Rtm019rja.lsttm019rja.api
Text maid 1.9Stm019sja.lsttm019sja.api
Text maid 1.9Ttm019tja.lsttm019tja.api
Text maid 1.9Utm019uja.lsttm019uja.api
表3-1-2-6 ネットワーク関連プログラムのAPIリスト
名称IDA Pro出力APIリスト
fingerfinger.lstfinger.api
ftp ftp.lst ftp.api
ping ping.lst ping.api
telnettelnet.lsttelnet.api
tftp tftp.lst tftp.api

3-1-3.API抽出の比較

上記のAPIのリストを1つの配列とみなし、多重配列アライメントを行う。align.cはダイナミックプログラミングアルゴリズムを用いてペアワイズ配列アライメント[9] [10]を行うC言語のプログラムである。このプログラムは結果をテキスト形式で出力する。

msaconv.calign.cの出力を変換するC言語のプログラムである。PNG形式の画像、HTML形式のテーブル、Graphvizのdotファイルに変換する。図3-1-3-1はW32/Bagleの各亜種、図3-1-3-2はW32/Korgoの各亜種、図3-1-3-3はW32/Mydoomの各亜種、図3-1-3-4はW32/Netskyの各亜種、図3-1-3-5Text maidの各バージョンの多重配列アライメントである。Text maidはコンピュータウイルスではないが各バージョンを亜種とみなし解析を行った。

図3-1-3-1 W32/Bagleの各亜種間の多重配列アライメント 図3-1-3-1

図3-1-3-2 W32/Korgoの各亜種間の多重配列アライメント 図3-1-3-2

図3-1-3-3 W32/Mydoomの各亜種間の多重配列アライメント 図3-1-3-3

図3-1-3-4 W32/Netskyの各亜種間の多重配列アライメント 図3-1-3-4

図3-1-3-5 Text maidの各バージョンの多重配列アライメント 図3-1-3-5

表3-1-3-1はW32/Bagleの各亜種、表3-1-3-2はW32/Korgoの各亜種、表3-1-3-3はW32/Mydoomの各亜種、表3-1-3-4はW32/Netskyの各亜種、表3-1-3-5Text maidの各バージョンの距離である。表3-1-3-6は各亜種とネットワーク関連のプログラムとの距離である。ネットワーク関連のプログラムはコンピュータウイルスではないが、コンピュータウイルスと似ていると思われるので比較を行うことで誤認が生じないか確かめた。

2つの配列の距離は完全に一致するときには0となり、まったく一致しないときには10000になる。なお、完全に一致する場合には項目を1つにまとめるため出力結果で距離は0にならない。

表3-1-3-1 W32/Bagleの各亜種間の距離
a c j k n p q r z aa ad
115 84239887834583528393838082978302834883278399
a 9660539554896677668869787063676864686512
c 978697899850985098639807984898439836
j 223 4755477350644904529148595522
k 4605462449274769518147425408
n 41 11871520283735533731
p 11501484280435203697
q 377 323940394012
r 345942294208
z 14562302
aa 962
表3-1-3-2 W32/Korgoの各亜種間の距離
b c e g n p q r s t z ab
a 336 13396758683568277825785879177045780270187891
b 15776854692969227866789979577133784371077931
c 6420650264947659769477566688763466597728
e 314 432 3933401341541098398610184193
g 120 373738193965811 3790728 4004
n 368737703918747 3703662 3921
p 184 505 3300370 3240824
q 326 3168546 3182984
r 3221681 33081103
s 349791 3717
t 3476482
z 3698
表3-1-3-3 W32/Mydoomの各亜種間の距離
a b f g l o r s t af ag am bh bn
46 90666241481653435173523827238600268341918823550844374260
a 9392942994169125925691179788919593759641934494309324
b 715978928173825479248115724179538278820484268410
f 44375548568253298234541957998794628566316326
g 5257524051288195563060658773647269426564
l 367952798695554958119060623764186279
o 46658293486552278638584563905742
r 8018286941808652560744054184
s 780082378593868588228803
t 32128625569453753525
af 8051529846453060
ag 809388938761
am 45144141
bh 3138
表3-1-3-4 W32/Netskyの各亜種間の距離
l o w
b 521476927712
l 80798097
o 5668
表3-1-3-5 Text maidの各バージョン間の距離
f g h i l o p q s t
e 1165123212271445144521364741651096379666
f 917 912 1141114116754415632896579682
g 8 272 289 10474000625596679692
h 263 281 10403997625396679692
i 17 797 3845621996649692
l 781 3836621396649692
o 3349602896789705
p 370095059513
q 95089519
s 1895
表3-1-3-6 全体の距離
ftp ping telnet tftp tm019eja tm019fja tm019gja tm019hja tm019ija tm019jja tm019kja tm019lja tm019mja tm019nja tm019oja tm019pja tm019qja tm019rja tm019sja tm019tja tm019uja w32bg115 w32bg__a w32bg__b w32bg__c w32bg__d w32bg__x w32bg__j w32bg__k w32bg__n w32bg__p w32bg__q w32bg__s w32bg__t w32bg__r w32bg__z w32bg_aa w32bg_ad w32krg_a w32krg_b w32krg_c w32krg_e w32krg_g w32krg_n w32krg_p w32krg_q w32krg_r w32krg_s w32krg_t w32krg_v w32krgaa w32krgacw32krg_z w32krgab w32myd46 w32myd_a w32myd_b w32myd_f w32myd_g w32myd_h w32myd_l w32myd_n w32myd_o w32myd_r w32myd_x w32myd_s w32myd_t w32mydaf w32mydag w32mydam w32mydbh w32mydbn w32nts_b w32nts_l w32nts_m w32nts_o w32nts_w
finger 8668 8927 9956 9685 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9937 9973 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9794 9789 9840 9905 9907 9907 9970 9971 9972 9913 9970 9912 9971 9909 9913 9893 9958 9975 9978 10000 9974 9956 9916 9981 10000 10000 9973 9977 9925 9923 9969 9979
ftp 6259 9825 8355 9960 9962 9964 9964 9964 9964 9966 9976 9979 9983 9984 9730 9743 9863 9914 9915 9910 9910 9917 9907 9881 9878 9886 9608 9602 9663 9790 9793 9793 9807 9809 9814 9803 9805 9802 9812 9738 9920 9794 9823 9847 9834 9874 9861 9959 9739 9875 9960 9914 9921 9856 9861 9819 9897 9946
ping 9980 7367 9994 9994 9994 9994 9994 9994 9995 9996 10000 10000 10000 9907 9982 10000 9984 9984 9985 9986 9987 9987 9987 9986 9986 9943 9942 9946 9971 9971 9971 10000 10000 10000 9973 10000 9972 10000 9984 9966 9978 9985 9983 10000 10000 10000 9975 9985 9972 10000 10000 9946 9952 9944 9957 10000 10000
telnet 9946 9974 9976 9976 9976 9977 9977 9977 9983 9985 9966 9974 9833 9947 9979 9958 9958 9955 9955 9956 9957 9943 9943 9955 9728 9742 9712 9685 9691 9691 9763 9764 9766 9698 9762 9697 9765 9921 9978 9970 9913 9924 9926 9945 9938 9974 9908 9933 9994 9939 9937 9925 9807 9801 9887 9963
tftp 9993 9993 9993 9993 9993 9993 9994 9995 9996 10000 10000 9813 9965 10000 9975 9975 9977 9977 9978 9978 9978 9977 9977 9919 9919 9930 9889 9890 9889 9910 9911 9912 9899 9910 9899 9912 9884 9966 10000 9968 9983 9951 9991 9896 10000 9896 9908 10000 10000 9886 9901 9391 9313 9740 9806
tm019eja 1165 1232 1227 1445 1445 2136 4741 6510 9639 9667 9884 9935 9974 9940 9945 9933 9933 9928 9921 9912 9919 9924 9956 9956 9958 9965 9967 9967 9967 9967 9968 9964 9967 9963 9968 9977 9998 9971 9974 9983 9975 9966 9979 9963 9974 9968 9982 9962 9969 9968 9976 9992 9967 9968
tm019fja 917 912 1141 1141 1675 4415 6328 9657 9684 9873 9937 9974 9943 9943 9927 9927 9924 9917 9909 9917 9922 9959 9958 9961 9967 9969 9969 9966 9966 9966 9966 9966 9966 9966 9979 9998 9973 9975 9984 9977 9968 9980 9961 9975 9970 9983 9965 9971 9970 9975 9993 9969 9963
tm019gja 8 272 289 1047 4000 6255 9672 9697 9875 9928 9975 9933 9933 9920 9920 9916 9910 9899 9906 9910 9960 9960 9962 9968 9970 9970 9967 9968 9968 9967 9967 9967 9968 9978 9998 9974 9975 9983 9976 9968 9979 9956 9975 9970 9984 9966 9971 9969 9977 9993 9971 9965
tm019hja 263 281 1040 3997 6253 9672 9697 9875 9928 9975 9932 9933 9920 9920 9916 9910 9899 9906 9910 9960 9960 9962 9968 9970 9970 9967 9967 9968 9967 9967 9967 9968 9978 9998 9974 9975 9983 9976 9968 9979 9956 9975 9970 9984 9966 9971 9969 9977 9993 9971 9965
tm019ija tm019jja tm019kja 17 797 3845 6219 9669 9697 9876 9927 9975 9931 9932 9921 9921 9917 9910 9900 9907 9911 9963 9962 9964 9969 9970 9970 9968 9968 9968 9967 9968 9967 9968 9975 9998 9969 9970 9978 9972 9965 9976 9953 9972 9964 9984 9961 9966 9965 9978 9993 9973 9967
tm019lja tm019mja tm019nja 781 3836 6213 9669 9697 9876 9927 9975 9931 9932 9921 9921 9917 9910 9900 9907 9911 9963 9962 9964 9969 9970 9970 9968 9968 9968 9967 9968 9967 9968 9975 9998 9969 9970 9978 9972 9965 9976 9953 9972 9964 9984 9961 9966 9965 9978 9993 9973 9967
tm019oja 3349 6028 9683 9709 9863 9930 9976 9932 9932 9924 9924 9918 9912 9904 9910 9914 9964 9964 9966 9970 9971 9971 9969 9969 9969 9968 9969 9968 9969 9976 9998 9970 9971 9979 9972 9966 9977 9955 9973 9965 9985 9963 9967 9966 9979 9992 9973 9968
tm019pja 3700 9502 9511 9899 9950 9983 9952 9952 9946 9946 9942 9937 9931 9936 9939 9974 9974 9976 9978 9979 9979 9978 9978 9978 9977 9978 9977 9978 9943 9998 9967 9957 9967 9963 9949 9945 9952 9937 9928 9985 9954 9936 9931 9985 9994 9928 9932
tm019qja tm019rja 9498 9512 9843 9943 9987 9934 9934 9923 9923 9917 9910 9913 9917 9922 9973 9973 9974 9978 9978 9978 9978 9978 9978 9976 9978 9976 9978 9943 9999 9967 9950 9967 9960 9945 9947 9952 9934 9923 9982 9952 9943 9931 9983 9988 9933 9937
tm019sja 1806 9991 9983 9970 9976 9976 9940 9940 9943 9937 9964 9964 9963 9940 9939 9942 9976 9976 9976 9967 9967 9967 9971 9966 9971 9967 9928 10000 9882 9931 9926 9930 9961 9892 9817 9923 9919 10000 9960 9950 9944 9985 9985 9833 9853
tm019tja tm019uja 9995 9984 9972 9977 9977 9944 9944 9946 9940 9966 9966 9965 9927 9927 9929 9977 9977 9977 9968 9968 9969 9972 9968 9972 9969 9947 10000 9906 9949 9946 9949 9956 9914 9839 9934 9930 10000 9977 9968 9955 9979 9986 9835 9854
w32bg115 8477 9940 8390 8397 8450 8437 8353 8358 8383 8320 8378 9266 9296 9288 8859 8868 8867 9067 9073 9084 8905 9063 8900 9079 9283 9868 9825 9496 9503 9332 9366 9339 9923 9281 9384 9892 9396 9385 9372 9365 9377 9761 9422
w32bg__a w32bg__b 9776 5964 6152 6830 6841 6998 7101 6987 6682 6600 9329 9339 9385 9489 9496 9495 9475 9482 9494 9521 9482 9517 9500 8987 9948 9798 9459 9439 9029 9066 9013 9713 9062 9169 9683 9135 9131 9187 9774 9756 9796 9728
w32bg__c w32bg__d w32bg__x 9904 9905 9900 9900 9909 9897 9909 9906 9902 9857 9855 9846 9914 9915 9915 9868 9870 9874 9920 9867 9919 9872 9923 10000 9832 9911 9895 9927 9926 9893 9768 9892 9952 9845 9903 9978 9923 10000 10000 10000 9982
w32bg__j 513 4913 4931 5182 5023 5383 5202 5846 9482 9476 9447 9419 9427 9435 9470 9476 9488 9462 9476 9458 9493 9100 9800 9755 9481 9359 9148 9095 9050 9876 9162 9227 9827 9203 9157 9236 9757 9764 9755 9531
w32bg__k 4766 4784 5047 4889 5227 5040 5689 9487 9481 9453 9422 9430 9438 9474 9480 9491 9465 9469 9461 9486 9109 9803 9758 9498 9366 9142 9118 9076 9877 9183 9246 9847 9225 9150 9257 9759 9766 9758 9548
w32bg__n 41 1597 1908 3150 3607 3785 9610 9605 9533 9518 9516 9523 9501 9506 9516 9545 9497 9542 9512 9070 9906 9528 9469 9372 9062 9066 9052 9716 9127 9177 9772 9150 9206 9273 9746 9785 9810 9343
w32bg__p 1560 1873 3117 3574 3752 9597 9592 9521 9502 9500 9507 9482 9488 9498 9529 9478 9526 9494 9072 9907 9529 9470 9374 9064 9068 9054 9717 9129 9179 9772 9152 9209 9275 9735 9785 9811 9332
w32bg__q w32bg__s w32bg__t 377 3317 3942 3912 9535 9530 9466 9400 9399 9407 9471 9477 9487 9432 9467 9429 9482 9135 9865 9566 9503 9417 9125 9130 9122 9741 9186 9229 9791 9209 9266 9323 9710 9788 9812 9316
w32bg__r 3533 4135 4112 9507 9502 9440 9384 9384 9391 9452 9458 9468 9417 9448 9413 9464 9154 9869 9563 9513 9430 9144 9148 9142 9733 9203 9244 9796 9226 9283 9337 9685 9792 9778 9295
w32bg__z 1456 2302 9562 9558 9492 9484 9482 9489 9482 9487 9497 9511 9478 9508 9493 9200 9899 9665 9561 9468 9213 9206 9217 9829 9247 9308 9791 9310 9307 9361 9638 9757 9812 9223
w32bg_aa 962 9496 9491 9427 9442 9440 9448 9433 9439 9450 9472 9429 9469 9445 9218 9895 9655 9550 9455 9194 9186 9237 9824 9266 9327 9785 9330 9329 9383 9619 9752 9807 9204
w32bg_ad 9478 9472 9407 9472 9471 9478 9458 9464 9475 9501 9454 9498 9470 9193 9909 9642 9537 9436 9181 9173 9210 9832 9243 9307 9807 9322 9320 9362 9619 9799 9814 9179
w32krg_a 336 1773 7437 7483 7477 7825 7858 7917 7631 7802 7611 7891 9350 9887 9767 9617 9582 9455 9511 9402 9871 9342 9468 9897 9511 9439 9400 9436