美文网首页
如何生成AppDelete注册机

如何生成AppDelete注册机

作者: Mr_Xiao | 来源:发表于2017-10-17 23:36 被阅读0次

    本此练习破解对象为AppDelete 3.2.9,是Mac OS X上用于卸载软件的App,同时也是一款商业软件,所以没用最新版。破解的目的不是为了免费使用,还是要支持正版的。
    下载地址:http://www.reggieashworth.com/buy
    Trial version有使用次数限制,当达到限制时,会弹出如下提示。

    Snip20171017_4.png

    点击注册,会让用户输入Name 和Serial Number。如下。

    Snip20171017_1.png

    当然,暴力破解是相对容易的,这里开始实战分析,如何产生注册码。

    0x1 代码分析

    在Hopper中打开,可以找到,判断Serial Number是否合法的方法如下。

                         -[ADDropController orphansArray:]:
    0000000100010ee2         push       rbp                                         ; Objective C Implementation defined at 0x100020cb8 (instance method), DATA XREF=0x100020cb8
    0000000100010ee3         mov        rbp, rsp
    0000000100010ee6         mov        qword [rbp+var_18], rbx
    0000000100010eea         mov        qword [rbp+var_10], r12
    0000000100010eee         mov        qword [rbp+var_8], r13
    0000000100010ef2         sub        rsp, 0x2b0
    0000000100010ef9         mov        r12, rdx
    0000000100010efc         lea        rsi, qword [0x10001f008]                    ; @selector(length), argument "selector" for method _objc_msgSend_fixup
    0000000100010f03         mov        rdi, rdx                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100010f06         call       qword [0x10001f008]                         ; @selector(length),_objc_msgSend_fixup
    0000000100010f0c         cmp        rax, 0x16
    0000000100010f10         jne        loc_100011e05
    
    0000000100010f16         mov        qword [rbp+var_28], 0x3
    0000000100010f1e         mov        qword [rbp+var_30], 0x0
    0000000100010f26         xor        edx, edx
    0000000100010f28         mov        ecx, 0x3
    0000000100010f2d         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100010f34         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100010f37         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100010f3d         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100010f40         lea        rdx, qword [cfstring_AD_]                   ; @"AD-"
    0000000100010f47         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100010f4e         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100010f54         dec        al
    0000000100010f56         jne        loc_100011e05
    
    0000000100010f5c         mov        qword [rbp+var_38], 0x1
    0000000100010f64         mov        qword [rbp+var_40], 0x3
    0000000100010f6c         mov        edx, 0x3
    0000000100010f71         mov        ecx, 0x1
    0000000100010f76         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100010f7d         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100010f80         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100010f86         mov        rbx, rax
    0000000100010f89         mov        r13, qword [objc_cls_ref_NSArray]
    0000000100010f90         mov        qword [rsp+0x2b0+var_248], 0x0
    0000000100010f99         lea        rax, qword [cfstring_Y]                     ; @"Y"
    0000000100010fa0         mov        qword [rsp+0x2b0+var_250], rax
    0000000100010fa5         lea        rax, qword [cfstring_X]                     ; @"X"
    0000000100010fac         mov        qword [rsp+0x2b0+var_258], rax
    0000000100010fb1         lea        rax, qword [cfstring_W]                     ; @"W"
    0000000100010fb8         mov        qword [rsp+0x2b0+var_260], rax
    0000000100010fbd         lea        rax, qword [cfstring_V]                     ; @"V"
    0000000100010fc4         mov        qword [rsp+0x2b0+var_268], rax
    0000000100010fc9         lea        rax, qword [cfstring_S]                     ; @"S"
    0000000100010fd0         mov        qword [rsp+0x2b0+var_270], rax
    0000000100010fd5         lea        rax, qword [cfstring_R]                     ; @"R"
    0000000100010fdc         mov        qword [rsp+0x2b0+var_278], rax
    0000000100010fe1         lea        rax, qword [cfstring_Q]                     ; @"Q"
    0000000100010fe8         mov        qword [rsp+0x2b0+var_280], rax
    0000000100010fed         lea        rax, qword [cfstring_P]                     ; @"P"
    0000000100010ff4         mov        qword [rsp+0x2b0+var_288], rax
    0000000100010ff9         lea        rax, qword [cfstring_O]                     ; @"O"
    0000000100011000         mov        qword [rsp+0x2b0+var_290], rax
    0000000100011005         lea        rax, qword [cfstring_N]                     ; @"N"
    000000010001100c         mov        qword [rsp+0x2b0+var_298], rax
    0000000100011011         lea        rax, qword [cfstring_M]                     ; @"M"
    0000000100011018         mov        qword [rsp+0x2b0+var_2A0], rax
    000000010001101d         lea        rax, qword [cfstring_H]                     ; @"H"
    0000000100011024         mov        qword [rsp+0x2b0+var_2A8], rax
    0000000100011029         lea        rax, qword [cfstring_G]                     ; @"G"
    0000000100011030         mov        qword [rsp+0x2b0+var_2B0], rax
    0000000100011034         lea        r9, qword [cfstring_F]                      ; @"F"
    000000010001103b         lea        r8, qword [cfstring_D]                      ; @"D"
    0000000100011042         lea        rcx, qword [cfstring_C]                     ; @"C"
    0000000100011049         lea        rdx, qword [cfstring_B]                     ; @"B"
    0000000100011050         lea        rsi, qword [0x10001ebc8]                    ; @selector(arrayWithObjects:), argument "selector" for method _objc_msgSend_fixup
    0000000100011057         mov        rdi, r13                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001105a         xor        eax, eax
    000000010001105c         call       qword [0x10001ebc8]                         ; @selector(arrayWithObjects:),_objc_msgSend_fixup
    0000000100011062         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011065         mov        rdx, rbx
    0000000100011068         lea        rsi, qword [0x10001e998]                    ; @selector(containsObject:), argument "selector" for method _objc_msgSend_fixup
    000000010001106f         call       qword [0x10001e998]                         ; @selector(containsObject:),_objc_msgSend_fixup
    0000000100011075         dec        al
    0000000100011077         jne        loc_100011e05
    
    000000010001107d         mov        qword [rbp+var_48], 0x1
    0000000100011085         mov        qword [rbp+var_50], 0x8
    000000010001108d         mov        edx, 0x8
    0000000100011092         mov        ecx, 0x1
    0000000100011097         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    000000010001109e         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000110a1         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000110a7         mov        rbx, rax
    00000001000110aa         mov        qword [rsp+0x2b0+var_220], 0x0
    00000001000110b6         lea        rax, qword [cfstring_Z]                     ; @"Z"
    00000001000110bd         mov        qword [rsp+0x2b0+var_228], rax
    00000001000110c5         lea        rax, qword [cfstring_Y]                     ; @"Y"
    00000001000110cc         mov        qword [rsp+0x2b0+var_230], rax
    00000001000110d4         lea        rax, qword [cfstring_X]                     ; @"X"
    00000001000110db         mov        qword [rsp+0x2b0+var_238], rax
    00000001000110e0         lea        rax, qword [cfstring_W]                     ; @"W"
    00000001000110e7         mov        qword [rsp+0x2b0+var_240], rax
    00000001000110ec         lea        rax, qword [cfstring_V]                     ; @"V"
    00000001000110f3         mov        qword [rsp+0x2b0+var_248], rax
    00000001000110f8         lea        rax, qword [cfstring_U]                     ; @"U"
    00000001000110ff         mov        qword [rsp+0x2b0+var_250], rax
    0000000100011104         lea        rax, qword [cfstring_T]                     ; @"T"
    000000010001110b         mov        qword [rsp+0x2b0+var_258], rax
    0000000100011110         lea        rax, qword [cfstring_S]                     ; @"S"
    0000000100011117         mov        qword [rsp+0x2b0+var_260], rax
    000000010001111c         lea        rax, qword [cfstring_R]                     ; @"R"
    0000000100011123         mov        qword [rsp+0x2b0+var_268], rax
    0000000100011128         lea        rax, qword [cfstring_Q]                     ; @"Q"
    000000010001112f         mov        qword [rsp+0x2b0+var_270], rax
    0000000100011134         lea        rax, qword [cfstring_P]                     ; @"P"
    000000010001113b         mov        qword [rsp+0x2b0+var_278], rax
    0000000100011140         lea        rax, qword [cfstring_O]                     ; @"O"
    0000000100011147         mov        qword [rsp+0x2b0+var_280], rax
    000000010001114c         lea        rax, qword [cfstring_N]                     ; @"N"
    0000000100011153         mov        qword [rsp+0x2b0+var_288], rax
    0000000100011158         lea        rax, qword [cfstring_M]                     ; @"M"
    000000010001115f         mov        qword [rsp+0x2b0+var_290], rax
    0000000100011164         lea        rax, qword [cfstring_I]                     ; @"I"
    000000010001116b         mov        qword [rsp+0x2b0+var_298], rax
    0000000100011170         lea        rax, qword [cfstring_H]                     ; @"H"
    0000000100011177         mov        qword [rsp+0x2b0+var_2A0], rax
    000000010001117c         lea        rax, qword [cfstring_G]                     ; @"G"
    0000000100011183         mov        qword [rsp+0x2b0+var_2A8], rax
    0000000100011188         lea        rax, qword [cfstring_F]                     ; @"F"
    000000010001118f         mov        qword [rsp+0x2b0+var_2B0], rax
    0000000100011193         lea        r9, qword [cfstring_E]                      ; @"E"
    000000010001119a         lea        r8, qword [cfstring_C]                      ; @"C"
    00000001000111a1         lea        rcx, qword [cfstring_B]                     ; @"B"
    00000001000111a8         lea        rdx, qword [cfstring_A]                     ; @"A"
    00000001000111af         lea        rsi, qword [0x10001ebc8]                    ; @selector(arrayWithObjects:), argument "selector" for method _objc_msgSend_fixup
    00000001000111b6         mov        rdi, r13                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000111b9         xor        eax, eax
    00000001000111bb         call       qword [0x10001ebc8]                         ; @selector(arrayWithObjects:),_objc_msgSend_fixup
    00000001000111c1         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000111c4         mov        rdx, rbx
    00000001000111c7         lea        rsi, qword [0x10001e998]                    ; @selector(containsObject:), argument "selector" for method _objc_msgSend_fixup
    00000001000111ce         call       qword [0x10001e998]                         ; @selector(containsObject:),_objc_msgSend_fixup
    00000001000111d4         dec        al
    00000001000111d6         jne        loc_100011e05
    
    00000001000111dc         mov        qword [rbp+var_58], 0x1
    00000001000111e4         mov        qword [rbp+var_60], 0x7
    00000001000111ec         mov        edx, 0x7
    00000001000111f1         mov        ecx, 0x1
    00000001000111f6         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000111fd         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011200         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011206         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011209         lea        rdx, qword [cfstring___10001dcc8]           ; @"-"
    0000000100011210         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011217         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    000000010001121d         dec        al
    000000010001121f         jne        loc_100011e05
    
    0000000100011225         mov        qword [rbp+var_68], 0x1
    000000010001122d         mov        qword [rbp+var_70], 0xc
    0000000100011235         mov        edx, 0xc
    000000010001123a         mov        ecx, 0x1
    000000010001123f         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011246         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011249         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001124f         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011252         lea        rdx, qword [cfstring___10001dcc8]           ; @"-"
    0000000100011259         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011260         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011266         dec        al
    0000000100011268         jne        loc_100011e05
    
    000000010001126e         mov        qword [rbp+var_78], 0x1
    0000000100011276         mov        qword [rbp+var_80], 0x11
    000000010001127e         mov        edx, 0x11
    0000000100011283         mov        ecx, 0x1
    0000000100011288         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    000000010001128f         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011292         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011298         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001129b         lea        rdx, qword [cfstring___10001dcc8]           ; @"-"
    00000001000112a2         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    00000001000112a9         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    00000001000112af         dec        al
    00000001000112b1         jne        loc_100011e05
    
    00000001000112b7         mov        qword [rbp+var_88], 0x1
    00000001000112c2         mov        qword [rbp+var_90], 0x12
    00000001000112cd         mov        edx, 0x12
    00000001000112d2         mov        ecx, 0x1
    00000001000112d7         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000112de         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000112e1         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000112e7         mov        rbx, rax
    00000001000112ea         mov        qword [rsp+0x2b0+var_238], 0x0
    00000001000112f3         lea        rax, qword [cfstring_Z]                     ; @"Z"
    00000001000112fa         mov        qword [rsp+0x2b0+var_240], rax
    00000001000112ff         lea        rax, qword [cfstring_Y]                     ; @"Y"
    0000000100011306         mov        qword [rsp+0x2b0+var_248], rax
    000000010001130b         lea        rax, qword [cfstring_X]                     ; @"X"
    0000000100011312         mov        qword [rsp+0x2b0+var_250], rax
    0000000100011317         lea        rax, qword [cfstring_W]                     ; @"W"
    000000010001131e         mov        qword [rsp+0x2b0+var_258], rax
    0000000100011323         lea        rax, qword [cfstring_V]                     ; @"V"
    000000010001132a         mov        qword [rsp+0x2b0+var_260], rax
    000000010001132f         lea        rax, qword [cfstring_U]                     ; @"U"
    0000000100011336         mov        qword [rsp+0x2b0+var_268], rax
    000000010001133b         lea        rax, qword [cfstring_T]                     ; @"T"
    0000000100011342         mov        qword [rsp+0x2b0+var_270], rax
    0000000100011347         lea        rax, qword [cfstring_S]                     ; @"S"
    000000010001134e         mov        qword [rsp+0x2b0+var_278], rax
    0000000100011353         lea        rax, qword [cfstring_P]                     ; @"P"
    000000010001135a         mov        qword [rsp+0x2b0+var_280], rax
    000000010001135f         lea        rax, qword [cfstring_O]                     ; @"O"
    0000000100011366         mov        qword [rsp+0x2b0+var_288], rax
    000000010001136b         lea        rax, qword [cfstring_K]                     ; @"K"
    0000000100011372         mov        qword [rsp+0x2b0+var_290], rax
    0000000100011377         lea        rax, qword [cfstring_J]                     ; @"J"
    000000010001137e         mov        qword [rsp+0x2b0+var_298], rax
    0000000100011383         lea        rax, qword [cfstring_I]                     ; @"I"
    000000010001138a         mov        qword [rsp+0x2b0+var_2A0], rax
    000000010001138f         lea        rax, qword [cfstring_H]                     ; @"H"
    0000000100011396         mov        qword [rsp+0x2b0+var_2A8], rax
    000000010001139b         lea        rax, qword [cfstring_G]                     ; @"G"
    00000001000113a2         mov        qword [rsp+0x2b0+var_2B0], rax
    00000001000113a6         lea        r9, qword [cfstring_D]                      ; @"D"
    00000001000113ad         lea        r8, qword [cfstring_C]                      ; @"C"
    00000001000113b4         lea        rcx, qword [cfstring_B]                     ; @"B"
    00000001000113bb         lea        rdx, qword [cfstring_A]                     ; @"A"
    00000001000113c2         lea        rsi, qword [0x10001ebc8]                    ; @selector(arrayWithObjects:), argument "selector" for method _objc_msgSend_fixup
    00000001000113c9         mov        rdi, r13                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000113cc         xor        eax, eax
    00000001000113ce         call       qword [0x10001ebc8]                         ; @selector(arrayWithObjects:),_objc_msgSend_fixup
    00000001000113d4         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000113d7         mov        rdx, rbx
    00000001000113da         lea        rsi, qword [0x10001e998]                    ; @selector(containsObject:), argument "selector" for method _objc_msgSend_fixup
    00000001000113e1         call       qword [0x10001e998]                         ; @selector(containsObject:),_objc_msgSend_fixup
    00000001000113e7         dec        al
    00000001000113e9         jne        loc_100011e05
    
    00000001000113ef         mov        qword [rbp+var_98], 0x1
    00000001000113fa         mov        qword [rbp+var_A0], 0xd
    0000000100011405         mov        edx, 0xd
    000000010001140a         mov        ecx, 0x1
    000000010001140f         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011416         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011419         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001141f         mov        rbx, rax
    0000000100011422         mov        qword [rsp+0x2b0+var_250], 0x0
    000000010001142b         lea        rax, qword [cfstring_Z]                     ; @"Z"
    0000000100011432         mov        qword [rsp+0x2b0+var_258], rax
    0000000100011437         lea        rax, qword [cfstring_W]                     ; @"W"
    000000010001143e         mov        qword [rsp+0x2b0+var_260], rax
    0000000100011443         lea        rax, qword [cfstring_V]                     ; @"V"
    000000010001144a         mov        qword [rsp+0x2b0+var_268], rax
    000000010001144f         lea        rax, qword [cfstring_U]                     ; @"U"
    0000000100011456         mov        qword [rsp+0x2b0+var_270], rax
    000000010001145b         lea        rax, qword [cfstring_T]                     ; @"T"
    0000000100011462         mov        qword [rsp+0x2b0+var_278], rax
    0000000100011467         lea        rax, qword [cfstring_S]                     ; @"S"
    000000010001146e         mov        qword [rsp+0x2b0+var_280], rax
    0000000100011473         lea        rax, qword [cfstring_R]                     ; @"R"
    000000010001147a         mov        qword [rsp+0x2b0+var_288], rax
    000000010001147f         lea        rax, qword [cfstring_Q]                     ; @"Q"
    0000000100011486         mov        qword [rsp+0x2b0+var_290], rax
    000000010001148b         lea        rax, qword [cfstring_P]                     ; @"P"
    0000000100011492         mov        qword [rsp+0x2b0+var_298], rax
    0000000100011497         lea        rax, qword [cfstring_O]                     ; @"O"
    000000010001149e         mov        qword [rsp+0x2b0+var_2A0], rax
    00000001000114a3         lea        rax, qword [cfstring_N]                     ; @"N"
    00000001000114aa         mov        qword [rsp+0x2b0+var_2A8], rax
    00000001000114af         lea        rax, qword [cfstring_M]                     ; @"M"
    00000001000114b6         mov        qword [rsp+0x2b0+var_2B0], rax
    00000001000114ba         lea        r9, qword [cfstring_H]                      ; @"H"
    00000001000114c1         lea        r8, qword [cfstring_F]                      ; @"F"
    00000001000114c8         lea        rcx, qword [cfstring_E]                     ; @"E"
    00000001000114cf         lea        rdx, qword [cfstring_D]                     ; @"D"
    00000001000114d6         lea        rsi, qword [0x10001ebc8]                    ; @selector(arrayWithObjects:), argument "selector" for method _objc_msgSend_fixup
    00000001000114dd         mov        rdi, r13                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000114e0         xor        eax, eax
    00000001000114e2         call       qword [0x10001ebc8]                         ; @selector(arrayWithObjects:),_objc_msgSend_fixup
    00000001000114e8         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000114eb         mov        rdx, rbx
    00000001000114ee         lea        rsi, qword [0x10001e998]                    ; @selector(containsObject:), argument "selector" for method _objc_msgSend_fixup
    00000001000114f5         call       qword [0x10001e998]                         ; @selector(containsObject:),_objc_msgSend_fixup
    00000001000114fb         dec        al
    00000001000114fd         jne        loc_100011e05
    
    0000000100011503         mov        qword [rbp+var_A8], 0x1
    000000010001150e         mov        qword [rbp+var_B0], 0xe
    0000000100011519         mov        edx, 0xe
    000000010001151e         mov        ecx, 0x1
    0000000100011523         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    000000010001152a         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001152d         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011533         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011536         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    000000010001153d         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011543         dec        eax
    0000000100011545         jle        loc_100011e05
    
    000000010001154b         mov        qword [rbp+var_B8], 0x1
    0000000100011556         mov        qword [rbp+var_C0], 0xe
    0000000100011561         mov        edx, 0xe
    0000000100011566         mov        ecx, 0x1
    000000010001156b         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011572         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011575         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001157b         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001157e         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011585         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    000000010001158b         cmp        eax, 0x9
    000000010001158e         jg         loc_100011e05
    
    0000000100011594         mov        qword [rbp+var_C8], 0x1
    000000010001159f         mov        qword [rbp+var_D0], 0x9
    00000001000115aa         mov        edx, 0x9
    00000001000115af         mov        ecx, 0x1
    00000001000115b4         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000115bb         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000115be         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000115c4         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000115c7         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000115ce         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000115d4         test       eax, eax
    00000001000115d6         js         loc_100011e05
    
    00000001000115dc         mov        qword [rbp+var_D8], 0x1
    00000001000115e7         mov        qword [rbp+var_E0], 0x9
    00000001000115f2         mov        edx, 0x9
    00000001000115f7         mov        ecx, 0x1
    00000001000115fc         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011603         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011606         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001160c         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001160f         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011616         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    000000010001161c         cmp        eax, 0x7
    000000010001161f         jg         loc_100011e05
    
    0000000100011625         mov        qword [rbp+var_E8], 0x1
    0000000100011630         mov        qword [rbp+var_F0], 0x13
    000000010001163b         mov        edx, 0x13
    0000000100011640         mov        ecx, 0x1
    0000000100011645         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    000000010001164c         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001164f         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011655         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011658         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    000000010001165f         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011665         test       eax, eax
    0000000100011667         js         loc_100011e05
    
    000000010001166d         mov        qword [rbp+var_F8], 0x1
    0000000100011678         mov        qword [rbp+var_100], 0x13
    0000000100011683         mov        edx, 0x13
    0000000100011688         mov        ecx, 0x1
    000000010001168d         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011694         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011697         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001169d         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000116a0         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000116a7         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000116ad         cmp        eax, 0x6
    00000001000116b0         jg         loc_100011e05
    
    00000001000116b6         mov        qword [rbp+var_108], 0x1
    00000001000116c1         mov        qword [rbp+var_110], 0x14
    00000001000116cc         mov        edx, 0x14
    00000001000116d1         mov        ecx, 0x1
    00000001000116d6         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000116dd         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000116e0         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000116e6         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000116e9         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000116f0         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000116f6         test       eax, eax
    00000001000116f8         js         loc_100011e05
    
    00000001000116fe         mov        qword [rbp+var_118], 0x1
    0000000100011709         mov        qword [rbp+var_120], 0x4
    0000000100011714         mov        edx, 0x4
    0000000100011719         mov        ecx, 0x1
    000000010001171e         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011725         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011728         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001172e         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011731         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011738         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    000000010001173e         cmp        eax, 0x5
    0000000100011741         jle        loc_100011e05
    
    0000000100011747         mov        qword [rbp+var_128], 0x1
    0000000100011752         mov        qword [rbp+var_130], 0x4
    000000010001175d         mov        edx, 0x4
    0000000100011762         mov        ecx, 0x1
    0000000100011767         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    000000010001176e         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011771         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011777         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001177a         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011781         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011787         cmp        eax, 0x9
    000000010001178a         jg         loc_100011e05
    
    0000000100011790         mov        qword [rbp+var_138], 0x1
    000000010001179b         mov        qword [rbp+var_140], 0x5
    00000001000117a6         mov        edx, 0x5
    00000001000117ab         mov        ecx, 0x1
    00000001000117b0         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000117b7         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000117ba         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000117c0         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000117c3         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000117ca         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000117d0         cmp        eax, 0x2
    00000001000117d3         jle        loc_100011e05
    
    00000001000117d9         mov        qword [rbp+var_148], 0x1
    00000001000117e4         mov        qword [rbp+var_150], 0x5
    00000001000117ef         mov        edx, 0x5
    00000001000117f4         mov        ecx, 0x1
    00000001000117f9         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011800         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011803         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011809         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001180c         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011813         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011819         cmp        eax, 0x6
    000000010001181c         jg         loc_100011e05
    
    0000000100011822         mov        qword [rbp+var_158], 0x1
    000000010001182d         mov        qword [rbp+var_160], 0x6
    0000000100011838         mov        edx, 0x6
    000000010001183d         mov        ecx, 0x1
    0000000100011842         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011849         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001184c         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011852         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011855         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    000000010001185c         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011862         test       eax, eax
    0000000100011864         js         loc_100011e05
    
    000000010001186a         mov        qword [rbp+var_168], 0x1
    0000000100011875         mov        qword [rbp+var_170], 0x6
    0000000100011880         mov        edx, 0x6
    0000000100011885         mov        ecx, 0x1
    000000010001188a         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011891         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011894         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001189a         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001189d         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000118a4         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000118aa         cmp        eax, 0x5
    00000001000118ad         jg         loc_100011e05
    
    00000001000118b3         mov        qword [rbp+var_178], 0x1
    00000001000118be         mov        qword [rbp+var_180], 0xf
    00000001000118c9         mov        edx, 0xf
    00000001000118ce         mov        ecx, 0x1
    00000001000118d3         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000118da         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000118dd         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000118e3         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000118e6         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000118ed         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000118f3         cmp        eax, 0x4
    00000001000118f6         jle        loc_100011e05
    
    00000001000118fc         mov        qword [rbp+var_188], 0x1
    0000000100011907         mov        qword [rbp+var_190], 0xf
    0000000100011912         mov        edx, 0xf
    0000000100011917         mov        ecx, 0x1
    000000010001191c         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011923         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011926         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    000000010001192c         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001192f         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011936         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    000000010001193c         cmp        eax, 0x8
    000000010001193f         jg         loc_100011e05
    
    0000000100011945         mov        qword [rbp+var_198], 0x1
    0000000100011950         mov        qword [rbp+var_1A0], 0x10
    000000010001195b         mov        edx, 0x10
    0000000100011960         mov        ecx, 0x1
    0000000100011965         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    000000010001196c         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    000000010001196f         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011975         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011978         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    000000010001197f         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011985         cmp        eax, 0x2
    0000000100011988         jle        loc_100011e05
    
    000000010001198e         mov        qword [rbp+var_1A8], 0x1
    0000000100011999         mov        qword [rbp+var_1B0], 0x10
    00000001000119a4         mov        edx, 0x10
    00000001000119a9         mov        ecx, 0x1
    00000001000119ae         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000119b5         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000119b8         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    00000001000119be         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    00000001000119c1         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    00000001000119c8         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    00000001000119ce         cmp        eax, 0x8
    00000001000119d1         jg         loc_100011e05
    
    00000001000119d7         mov        qword [rbp+var_1B8], 0x1
    00000001000119e2         mov        qword [rbp+var_1C0], 0xa
    00000001000119ed         mov        edx, 0xa
    00000001000119f2         mov        ecx, 0x1
    00000001000119f7         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    00000001000119fe         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011a01         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011a07         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011a0a         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011a11         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011a17         cmp        eax, 0x3
    0000000100011a1a         jle        loc_100011e05
    
    0000000100011a20         mov        qword [rbp+var_1C8], 0x1
    0000000100011a2b         mov        qword [rbp+var_1D0], 0xa
    0000000100011a36         mov        edx, 0xa
    0000000100011a3b         mov        ecx, 0x1
    0000000100011a40         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011a47         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011a4a         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011a50         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011a53         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011a5a         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011a60         cmp        eax, 0x7
    0000000100011a63         jg         loc_100011e05
    
    0000000100011a69         mov        qword [rbp+var_1D8], 0x1
    0000000100011a74         mov        qword [rbp+var_1E0], 0xb
    0000000100011a7f         mov        edx, 0xb
    0000000100011a84         mov        ecx, 0x1
    0000000100011a89         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011a90         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011a93         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011a99         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011a9c         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011aa3         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011aa9         test       eax, eax
    0000000100011aab         js         loc_100011e05
    
    0000000100011ab1         mov        qword [rbp+var_1E8], 0x1
    0000000100011abc         mov        qword [rbp+var_1F0], 0xb
    0000000100011ac7         mov        edx, 0xb
    0000000100011acc         mov        ecx, 0x1
    0000000100011ad1         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011ad8         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011adb         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011ae1         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011ae4         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011aeb         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011af1         cmp        eax, 0x8
    0000000100011af4         jg         loc_100011e05
    
    0000000100011afa         mov        qword [rbp+var_1F8], 0x1
    0000000100011b05         mov        qword [rbp+var_200], 0x15
    0000000100011b10         mov        edx, 0x15
    0000000100011b15         mov        ecx, 0x1
    0000000100011b1a         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011b21         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011b24         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011b2a         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011b2d         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011b34         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011b3a         test       eax, eax
    0000000100011b3c         jle        loc_100011e05
    
    0000000100011b42         mov        qword [rbp+var_208], 0x1
    0000000100011b4d         mov        qword [rbp+var_210], 0x15
    0000000100011b58         mov        edx, 0x15
    0000000100011b5d         mov        ecx, 0x1
    0000000100011b62         lea        rsi, qword [0x10001f168]                    ; @selector(substringWithRange:), argument "selector" for method _objc_msgSend_fixup
    0000000100011b69         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011b6c         call       qword [0x10001f168]                         ; @selector(substringWithRange:),_objc_msgSend_fixup
    0000000100011b72         mov        rdi, rax                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011b75         lea        rsi, qword [0x10001f178]                    ; @selector(intValue), argument "selector" for method _objc_msgSend_fixup
    0000000100011b7c         call       qword [0x10001f178]                         ; @selector(intValue),_objc_msgSend_fixup
    0000000100011b82         cmp        eax, 0x8
    0000000100011b85         jg         loc_100011e05
    
    0000000100011b8b         lea        rdx, qword [cfstring_AD_W942_Q543_S665_O306] ; @"AD-W942-Q543-S665-O306"
    0000000100011b92         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011b99         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011b9c         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011ba2         test       al, al
    0000000100011ba4         jne        loc_100011e05
    
    0000000100011baa         lea        rdx, qword [cfstring_AD_F961_U165_H585_C643] ; @"AD-F961-U165-H585-C643"
    0000000100011bb1         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011bb8         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011bbb         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011bc1         test       al, al
    0000000100011bc3         jne        loc_100011e05
    
    0000000100011bc9         lea        rdx, qword [cfstring_AD_C750_B974_T684_A445] ; @"AD-C750-B974-T684-A445"
    0000000100011bd0         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011bd7         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011bda         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011be0         test       al, al
    0000000100011be2         jne        loc_100011e05
    
    0000000100011be8         lea        rdx, qword [cfstring_AD_V840_H043_M864_I181] ; @"AD-V840-H043-M864-I181"
    0000000100011bef         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011bf6         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011bf9         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011bff         test       al, al
    0000000100011c01         jne        loc_100011e05
    
    0000000100011c07         lea        rdx, qword [cfstring_AD_N634_T340_D886_I656] ; @"AD-N634-T340-D886-I656"
    0000000100011c0e         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011c15         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011c18         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011c1e         test       al, al
    0000000100011c20         jne        loc_100011e05
    
    0000000100011c26         lea        rdx, qword [cfstring_AD_G732_E873_H967_C266] ; @"AD-G732-E873-H967-C266"
    0000000100011c2d         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011c34         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011c37         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011c3d         test       al, al
    0000000100011c3f         jne        loc_100011e05
    
    0000000100011c45         lea        rdx, qword [cfstring_AD_G750_U070_R463_V001] ; @"AD-G750-U070-R463-V001"
    0000000100011c4c         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011c53         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011c56         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011c5c         test       al, al
    0000000100011c5e         jne        loc_100011e05
    
    0000000100011c64         lea        rdx, qword [cfstring_AD_G632_R255_T474_C687] ; @"AD-G632-R255-T474-C687"
    0000000100011c6b         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011c72         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011c75         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011c7b         test       al, al
    0000000100011c7d         jne        loc_100011e05
    
    0000000100011c83         lea        rdx, qword [cfstring_AD_V941_W447_Z777_O017] ; @"AD-V941-W447-Z777-O017"
    0000000100011c8a         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011c91         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011c94         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011c9a         test       al, al
    0000000100011c9c         jne        loc_100011e05
    
    0000000100011ca2         lea        rdx, qword [cfstring_AD_N950_C058_Q257_C294] ; @"AD-N950-C058-Q257-C294"
    0000000100011ca9         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011cb0         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011cb3         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011cb9         test       al, al
    0000000100011cbb         jne        loc_100011e05
    
    0000000100011cc1         lea        rdx, qword [cfstring_AD_R645_A141_O564_O175] ; @"AD-R645-A141-O564-O175"
    0000000100011cc8         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011ccf         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011cd2         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011cd8         test       al, al
    0000000100011cda         jne        loc_100011e05
    
    0000000100011ce0         lea        rdx, qword [cfstring_AD_G852_S763_F676_O457] ; @"AD-G852-S763-F676-O457"
    0000000100011ce7         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011cee         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011cf1         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011cf7         test       al, al
    0000000100011cf9         jne        loc_100011e05
    
    0000000100011cff         lea        rdx, qword [cfstring_AD_V934_S244_S568_O574] ; @"AD-V934-S244-S568-O574"
    0000000100011d06         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011d0d         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011d10         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011d16         test       al, al
    0000000100011d18         jne        loc_100011e05
    
    0000000100011d1e         lea        rdx, qword [cfstring_AD_O754_W647_E775_S550] ; @"AD-O754-W647-E775-S550"
    0000000100011d25         lea        rsi, qword [0x10001e7c8]                    ; @selector(isEqualTo:), argument "selector" for method _objc_msgSend_fixup
    0000000100011d2c         mov        rdi, r12                                    ; argument "instance" for method _objc_msgSend_fixup
    0000000100011d2f         call       qword [0x10001e7c8]                         ; @selector(isEqualTo:),_objc_msgSend_fixup
    0000000100011d35         test       al, al
    0000000100011d37         jne        loc_100011e05
    ... ...
    

    这个逻辑判断显得非常长,并没有校验Name,可以得出的信息是注册码格式如下:
    AD-G632-R255-T474-C687
    开头固定为AD,每节字符串开头字母随机选择生成,而且每位数字取值有大小限制。

    0x2 Keygen算法

    根据分析,编写了一个Keygen App。其中部分算法如下。

        NSString *string0 = @"AD";
        NSArray *array1 = @[@"B", @"C", @"D", @"F", @"G", @"H", @"M", @"N", @"O", @"P", @"Q", @"R"];
        NSArray *array2 = @[@"A", @"B", @"C", @"E", @"F", @"G", @"H", @"I", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U"];
        NSArray *array3 = @[@"A", @"B", @"C", @"D", @"G", @"H", @"I", @"J", @"K", @"O", @"P", @"S", @"T", @"U"];
        NSArray *array4 = @[@"D", @"E", @"F", @"H", @"M", @"N", @"O", @"P", @"Q", @"R", @"S"];
        NSMutableString *string1 = [NSMutableString stringWithString:[self randomItemInArray:array1]];
        [string1 appendString:[self randomBetween:0x5 andUpper:0x9]];
        [string1 appendString:[self randomBetween:0x2 andUpper:0x6]];
        [string1 appendString:[self randomBetween:0x0 andUpper:0x5]];
        NSMutableString *string2 = [NSMutableString stringWithString:[self randomItemInArray:array2]];
        [string2 appendString:[self randomBetween:0x0 andUpper:0x7]];
        [string2 appendString:[self randomBetween:0x3 andUpper:0x7]];
        [string2 appendString:[self randomBetween:0x0 andUpper:0x8]];
        NSMutableString *string3 = [NSMutableString stringWithString:[self randomItemInArray:array3]];
        [string3 appendString:[self randomBetween:0x0 andUpper:0x6]];
        [string3 appendString:[self randomBetween:0x4 andUpper:0x8]];
        [string3 appendString:[self randomBetween:0x2 andUpper:0x8]];
        NSMutableString *string4 = [NSMutableString stringWithString:[self randomItemInArray:array4]];
        [string4 appendString:[self randomBetween:0x0 andUpper:0x6]];
        [string4 appendString:[self randomBetween:0x0 andUpper:0x9]];
        [string4 appendString:[self randomBetween:0x0 andUpper:0x8]];
        NSArray *array = @[string0,string1,string2,string3,string4];
        NSString *key =[array componentsJoinedByString:@"-"];
    

    运行,可以得出一个有效Serial。测试验证Success!

    Snip20171017_7.png

    相关文章

      网友评论

          本文标题:如何生成AppDelete注册机

          本文链接:https://www.haomeiwen.com/subject/oewjuxtx.html