ifox 发表于 2010-6-2 20:12:39

PX Instant Screen Capture 6.0暴破

本帖最后由 ifox 于 2010-6-2 20:30 编辑

启动程序,输入任意注册信息,得到注册码无效提示字符串,OD载入查找到相关字符串,分析注册码判断的要点:004CB1F5|> \66:83BB 3A030>cmp   word ptr , 0
004CB1FD|.0F84 CA000000 je      004CB2CD
004CB203|.6A 01         push    1
004CB205|.8D55 F0       lea   edx, dword ptr
004CB208|.8B83 28030000 mov   eax, dword ptr
004CB20E|.E8 8508F8FF   call    0044BA98
004CB213|.8B45 F0       mov   eax, dword ptr
004CB216|.50            push    eax
004CB217|.8D55 EC       lea   edx, dword ptr
004CB21A|.8B83 18030000 mov   eax, dword ptr
004CB220|.E8 7308F8FF   call    0044BA98
004CB225|.8B55 EC       mov   edx, dword ptr
004CB228|.59            pop   ecx
004CB229|.8B83 3C030000 mov   eax, dword ptr
004CB22F|.FF93 38030000 call    dword ptr             ;是否注册成功,成功则不跳,不成功则跳,跟入分析
004CB235|.84C0          test    al, al
004CB237|.74 65         je      short 004CB29E
004CB239|.6A 30         push    30
004CB23B|.8D55 E8       lea   edx, dword ptr
004CB23E|.A1 2C074F00   mov   eax, dword ptr
004CB243|.8B00          mov   eax, dword ptr
004CB245|.E8 BE08FAFF   call    0046BB08
004CB24A|.8B45 E8       mov   eax, dword ptr
004CB24D|.E8 8698F3FF   call    00404AD8
004CB252|.50            push    eax
004CB253|.68 60B34C00   push    004CB360                         ;thank you for registering
004CB258|.8D55 E0       lea   edx, dword ptr
004CB25B|.A1 2C074F00   mov   eax, dword ptr
004CB260|.8B00          mov   eax, dword ptr
004CB262|.E8 A108FAFF   call    0046BB08
004CB267|.FF75 E0       push    dword ptr
004CB26A|.68 84B34C00   push    004CB384                         ;.
004CB26F|.8D45 E4       lea   eax, dword ptr
004CB272|.BA 03000000   mov   edx, 3
004CB277|.E8 2497F3FF   call    004049A0
004CB27C|.8B45 E4       mov   eax, dword ptr
004CB27F|.E8 5498F3FF   call    00404AD8
004CB284|.50            push    eax                              ; |Text
004CB285|.A1 2C074F00   mov   eax, dword ptr           ; |
004CB28A|.8B00          mov   eax, dword ptr              ; |
004CB28C|.8B40 30       mov   eax, dword ptr           ; |
004CB28F|.50            push    eax                              ; |hOwner
004CB290|.E8 07C3F3FF   call    <jmp.&user32.MessageBoxA>      ; \MessageBoxA
004CB295|.8BC3          mov   eax, ebx
004CB297|.E8 68D6F9FF   call    00468904
004CB29C|.EB 2F         jmp   short 004CB2CD
004CB29E|>6A 30         push    30
004CB2A0|.8D55 DC       lea   edx, dword ptr
004CB2A3|.A1 2C074F00   mov   eax, dword ptr
004CB2A8|.8B00          mov   eax, dword ptr
004CB2AA|.E8 5908FAFF   call    0046BB08
004CB2AF|.8B45 DC       mov   eax, dword ptr
004CB2B2|.E8 2198F3FF   call    00404AD8
004CB2B7|.50            push    eax                              ; |Title
004CB2B8|.68 88B34C00   push    004CB388                         ; |invalid user name or product id. please try again.
004CB2BD|.A1 2C074F00   mov   eax, dword ptr           ; |
004CB2C2|.8B00          mov   eax, dword ptr              ; |
004CB2C4|.8B40 30       mov   eax, dword ptr           ; |
004CB2C7|.50            push    eax                              ; |hOwner
004CB2C8|.E8 CFC2F3FF   call    <jmp.&user32.MessageBoxA>      ; \MessageBoxA
004CB2CD|>33C0          xor   eax, eax
004CB2CF|.5A            pop   edx
004CB2D0|.59            pop   ecx
004CB2D1|.59            pop   ecx
004CB2D2|.64:8910       mov   dword ptr fs:, edx
004CB2D5|.68 11B34C00   push    004CB311
004CB2DA|>8D45 DC       lea   eax, dword ptr
004CB2DD|.BA 04000000   mov   edx, 4

跟入后,发现好象是用了BASE64算法,具体算法没跟,发现了一个设置标志位的通用方法,只要EAX=1,则软件为注册版本,调用此标志位的地方有两处,直接修改比较的内容,使其设置标志位EAX=1即可。004CB92C/$55            push    ebp
004CB92D|.8BEC          mov   ebp, esp
004CB92F|.6A 00         push    0
004CB931|.6A 00         push    0
004CB933|.6A 00         push    0
004CB935|.6A 00         push    0
004CB937|.6A 00         push    0
004CB939|.6A 00         push    0
004CB93B|.6A 00         push    0
004CB93D|.53            push    ebx
004CB93E|.56            push    esi
004CB93F|.57            push    edi
004CB940|.894D F8       mov   dword ptr , ecx
004CB943|.8955 FC       mov   dword ptr , edx
004CB946|.8BD8          mov   ebx, eax
004CB948|.8B45 FC       mov   eax, dword ptr
004CB94B|.E8 7891F3FF   call    00404AC8
004CB950|.8B45 F8       mov   eax, dword ptr
004CB953|.E8 7091F3FF   call    00404AC8
004CB958|.33C0          xor   eax, eax
004CB95A|.55            push    ebp
004CB95B|.68 A5BA4C00   push    004CBAA5
004CB960|.64:FF30       push    dword ptr fs:
004CB963|.64:8920       mov   dword ptr fs:, esp
004CB966|.C645 F7 00    mov   byte ptr , 0
004CB96A|.A0 B8BA4C00   mov   al, byte ptr
004CB96F|.50            push    eax
004CB970|.8D45 E4       lea   eax, dword ptr
004CB973|.50            push    eax
004CB974|.33C9          xor   ecx, ecx
004CB976|.BA C4BA4C00   mov   edx, 004CBAC4
004CB97B|.8B45 FC       mov   eax, dword ptr
004CB97E|.E8 9521F4FF   call    0040DB18
004CB983|.8B45 E4       mov   eax, dword ptr
004CB986|.8D55 E8       lea   edx, dword ptr
004CB989|.E8 76D0F3FF   call    00408A04
004CB98E|.837D E8 00    cmp   dword ptr , 0
004CB992|.0F84 E5000000 je      004CBA7D
004CB998|.837D F8 00    cmp   dword ptr , 0
004CB99C|.0F84 DB000000 je      004CBA7D
004CB9A2|.8D45 F0       lea   eax, dword ptr
004CB9A5|.BA D0BA4C00   mov   edx, 004CBAD0                  ;life
004CB9AA|.E8 118DF3FF   call    004046C0
004CB9AF|.8D45 EC       lea   eax, dword ptr
004CB9B2|.BA E0BA4C00   mov   edx, 004CBAE0                  ;is soft and moody
004CB9B7|.E8 048DF3FF   call    004046C0
004CB9BC|.33C9          xor   ecx, ecx
004CB9BE|.B2 01         mov   dl, 1
004CB9C0|.A1 0C6C4C00   mov   eax, dword ptr
004CB9C5|.E8 2EC7FFFF   call    004C80F8
004CB9CA|.8BF0          mov   esi, eax
004CB9CC|.8B0D 88814C00 mov   ecx, dword ptr           ;spx.004C81D4
004CB9D2      8B53 38       mov   edx, dword ptr
004CB9D5|.8BC6          mov   eax, esi
004CB9D7|.E8 C4DEFEFF   call    004B98A0
004CB9DC|.8D4D F0       lea   ecx, dword ptr
004CB9DF|.8B55 E8       mov   edx, dword ptr
004CB9E2|.8BC6          mov   eax, esi
004CB9E4|.8B38          mov   edi, dword ptr
004CB9E6|.FF57 54       call    dword ptr
004CB9E9|.8BC6          mov   eax, esi
004CB9EB|.8B10          mov   edx, dword ptr
004CB9ED|.FF52 44       call    dword ptr
004CB9F0|.8BC6          mov   eax, esi
004CB9F2|.E8 217EF3FF   call    00403818
004CB9F7|.33C9          xor   ecx, ecx
004CB9F9|.B2 01         mov   dl, 1
004CB9FB|.A1 18B54B00   mov   eax, dword ptr
004CBA00|.E8 E7E2FEFF   call    004B9CEC
004CBA05|.8BF0          mov   esi, eax
004CBA07|.8B0D B8C54B00 mov   ecx, dword ptr           ;spx.004BC604
004CBA0D|.8B53 3C       mov   edx, dword ptr
004CBA10|.8BC6          mov   eax, esi
004CBA12|.E8 89DEFEFF   call    004B98A0
004CBA17|.8D4D EC       lea   ecx, dword ptr
004CBA1A|.8B55 F8       mov   edx, dword ptr
004CBA1D|.8BC6          mov   eax, esi
004CBA1F|.8B38          mov   edi, dword ptr
004CBA21|.FF57 58       call    dword ptr
004CBA24|.8BC6          mov   eax, esi
004CBA26|.8B10          mov   edx, dword ptr
004CBA28|.FF52 44       call    dword ptr
004CBA2B|.8BC6          mov   eax, esi
004CBA2D|.E8 E67DF3FF   call    00403818
004CBA32|.8B45 F0       mov   eax, dword ptr           ;EAX和下面给的EDX内容比较相同则注册成功
004CBA35      8B55 EC       mov   edx, dword ptr           ;直接修改代码为mov   edx, dword ptr ,注册和BuyNow都去掉了。
004CBA38|.E8 E78FF3FF   call    00404A24
004CBA3D|.0F94C0      sete    al                               ;设置判断注册信息是否正确设置标志位
004CBA40|.8843 34       mov   byte ptr , al
004CBA43|.807B 34 00    cmp   byte ptr , 0
004CBA47|.74 34         je      short 004CBA7D
004CBA49|.8D43 40       lea   eax, dword ptr
004CBA4C|.8B55 FC       mov   edx, dword ptr
004CBA4F|.B9 FF000000   mov   ecx, 0FF
004CBA54|.E8 638EF3FF   call    004048BC
004CBA59|.8D83 40010000 lea   eax, dword ptr
004CBA5F|.8B55 F8       mov   edx, dword ptr
004CBA62|.B9 FF000000   mov   ecx, 0FF
004CBA67|.E8 508EF3FF   call    004048BC
004CBA6C|.807D 08 00    cmp   byte ptr , 0
004CBA70|.74 07         je      short 004CBA79
004CBA72|.8BC3          mov   eax, ebx
004CBA74|.E8 4F020000   call    004CBCC8
004CBA79|>C645 F7 01    mov   byte ptr , 1
004CBA7D|>33C0          xor   eax, eax
004CBA7F|.5A            pop   edx
004CBA80|.59            pop   ecx
004CBA81|.59            pop   ecx
004CBA82|.64:8910       mov   dword ptr fs:, edx
004CBA85|.68 ACBA4C00   push    004CBAAC
004CBA8A|>8D45 E4       lea   eax, dword ptr
004CBA8D|.BA 04000000   mov   edx, 4
004CBA92|.E8 B58BF3FF   call    0040464C
004CBA97|.8D45 F8       lea   eax, dword ptr
004CBA9A|.BA 02000000   mov   edx, 2
004CBA9F|.E8 A88BF3FF   call    0040464C
004CBAA4\.C3            retn
004CBAA5   .^ E9 0285F3FF   jmp   00403FAC
004CBAAA   .^ EB DE         jmp   short 004CBA8A
004CBAAC   .8A45 F7       mov   al, byte ptr
004CBAAF   .5F            pop   edi
004CBAB0   .5E            pop   esi
004CBAB1   .5B            pop   ebx
004CBAB2   .8BE5          mov   esp, ebp
004CBAB4   .5D            pop   ebp
004CBAB5   .C2 0400       retn    4
保存修改,程序启动无NAG,POPMENU里没有了BuyNow菜单,About里显示的注册信息。注册信息

注册信息被加密保存到C:\Documents and Settings\XXXXXXXXXXXXXXXXX\Local Settings\Application Data\Moodysoft\odbc32.crc(XXXXX为WIN系统用户。)

老万 发表于 2010-6-2 20:56:19

学习了,谢谢楼主

drawangel 发表于 2010-7-14 15:29:25

呃,传说中的标志位爆破
页: [1]
查看完整版本: PX Instant Screen Capture 6.0暴破