Windows 2000でFitbitConnect を起動する実験 その1

元ネタ
KernelEx for Win2000 - Page 68 - Windows 2000/2003/NT4 - MSFN

Fitbit の設定

まず、インストールすると、入るはずのサービスがインストールされていない。
調べてみた

          call    [KERNEL32.dll!GetModuleFileNameW]
 00445A8E  8B9604060000                      mov    edx,[esi+00000604h]
 00445A94  57                                push    edi
 00445A95  68EC7F5000                        push    SWC00507FEC_NT_AUTHORITY_NetworkService
 00445A9A  57                                push    edi
 00445A9B  57                                push    edi
 00445A9C  57                                push    edi
 00445A9D  8D8DE8FDFFFF                      lea    ecx,[ebp-00000218h]
 00445AA3  51                                push    ecx
 00445AA4  6A01                              push    00000001h
 00445AA6  52                                push    edx
 00445AA7  6A10                           push    00000010h // SERVICE_WIN32_OWN_PROCESS

 00445AA9  68FF010F00                        push    000F01FFh
 00445AAE  8D8E04020000                      lea    ecx,[esi+00000204h]
 00445AB4  51                                push    ecx
 00445AB5  8D4604                            lea    eax,[esi+04h]
 00445AB8  50                                push    eax
 00445AB9  53                                push    ebx
 00445ABA  FF155CA04F00                      call    [ADVAPI32.dll!CreateServiceW]

err,hr    0x00000421 アカウント名が無効であるか、または存在しません。あるいは、指定したアカウント名のパスワードが無効です。

CreateService 関数
みてみると、サービスがNT AUTHORITY¥NetworkService 使って作成しようとしてる
Windows 2000にはこのユーザーはないのでサービス作成に失敗する

push 10h を 20hに書き換えて
push    SWC00507FEC_NT_AUTHORITY_NetworkService を push 00hに書き換える
68EC7F50005757578D8DE8FDFFFF516A01526A1068FF010F00 ->
6A009090905757578D8DE8FDFFFF516A01526A2068FF010F00

 0044134A                           L0044134A:
 0044134A  BEBCF15000                        mov    esi,L0050F1BC
 0044134F  89742418                          mov    [esp+18h],esi
 00441353  C744241C00000000                  mov    dword ptr [esp+1Ch],00000000h
 0044135B  8D4C2418                          lea    ecx,[esp+18h]
 0044135F  51                                push    ecx
 00441360  C784244C030000020000+             mov    dword ptr [esp+0000034Ch],00000002h
 0044136B  E8409E0400                        call    SUB_L0048B1B0
 00441370  84C0                              test    al,al
 00441372  0F854F010000                      jnz    L004414C7

 00441378  FF1584A04F00                      call    [KERNEL32.dll!GetLastError]
 0044137E  8DBC24AC010000                    lea    edi,[esp+000001ACh]
 00441385  894424
14                          mov    [esp+14h],eax
 00441389  E8629C0400                        call    SUB_L0048AFF0
 0044138E  8BF8                              mov    edi,eax
 00441390  B303                              mov    bl,03h
 00441392  68D07B5000                        push    SSZ00507BD0__s__Failed_to_create_security_de
 00441397  8D8C24E8010000                    lea    ecx,[esp+000001E8h]
 0044139E  889C244C030000                    mov    [esp+0000034Ch],bl
 004413A5  E8663AFCFF                        call    SUB_L00404E10
 004413AA  68AC7B5000                        push    SSZ00507BAC_PipeServer__serverThreadProcedur
 004413AF  C684244C03000004                  mov    byte ptr [esp+0000034Ch],04h

更に、セキュリティディスクリプタのエラーで無限ループになるので
jnz    L004414C7 を jmp    L004414C7 に書き換え
0F854F010000  ->  90E94F010000 

後プログラム本体が、comctl32.dll の CreateMappedBitmap でクラッシュするのは
version 6.0互換で動作しているからなので、 systemxp\comctl32.dll を使用する
fcwin2kなどで comctlxp.dll などにリネームすると楽。
fb
起動できた

サービス起動すると・・・。

fb2
同期してみよう・ω・

インターネット サイト https://client.fitbit.com/tracker/client/outOfBand/login?p_lcl=ja_JP&enable_cooper=1&clientMode=PAIR を開けません。

操作は中断されました

IEコンポーネントのSSLの問題で接続不能

Nooooo!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です