爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
123
返回列表 发新帖
楼主: xhjjxm
收起左侧

[测试 & 讨论] 破解KI !

[复制链接]
发表于 2005-10-10 17:22:02 | 显示全部楼层
Memory Viewer BIN文件源码:
#name MMV. Memory Viewer
;------------------------------

#define        mmv_7fff        0b85262h
#define mmvPtr                37h:3500h
#define mmvID                mmvPtr+6
#define mmv_textID1        13BAh
#define mmv_textID2        13BBh

base        20h:0

org        20h:0
mmv_main:
        mov        r12, #pof(mmv_7fff)
        mov        r13, #pag(mmv_7fff)
        calls        dspAlert
        mov        r4, #mmv_textID1
        callr        mmv_setTextID

mmv_dispMem:
        mov        [-r0], r9
        mov        [-r0], r8
        mov        [-r0], r7
        mov        [-r0], r6
        sub        r0, #200h
        mov        r8, r0
        mov        [-r0], r8

        callr        mmv_getTextID
        mov        r13, #0
        calls        resetTextID

        callr        mmv_getTextID
        add        r12, #2
        mov        r13, #0
        calls        resetTextID

        mov        r4, #'Me'
        callr        mmv_storeW
        mov        r4, #'m '
        callr        mmv_storeW

        mov        r4, #pof(mmvPtr)
        extp        #pag(mmvPtr), #3
        mov        r7, [r4+]
        mov        r9, [r4+]
        mov        r6, [r4+]
        jmpr        cc_Z, mmv_pos02                        ; 0000:0000
        cmp        r6, #4
        jmpr        cc_ULT, mmv_posOK
        add        r6, #1
        cmp        r6, #7
        jmpr        cc_UGT, mmv_pos02
mmv_posOK:
        add        r6, r8
;        add        r6, #1
mmv_pos02:
        and        r9, #3FFh
        and        r7, #3FFCh
        mov        [-r0], r7

        mov        r7, r9
        callr        mmv_hex4
        movb        rl4, #':'
        callr        mmv_store1
        mov        r7, [r0+]
        callr        mmv_hex4                ; .0000:0000 (1)

        movb        rl4, #0
        callr        mmv_store1

        mov        r6, #0
        callr        mmv_getTextID
        add        r12, #2
        mov        r13, [r0]
        and        r13, #3FFFh
        mov         r14, DPP1
        mov         r15, #0
        calls        convText2ID

        mov        r8, [r0]
        mov        r5, #6
mmv_loop1:
        cmp        r7, #4000h
        jmpr        cc_UGE, mmv_dend

        callr        mmv_hex4
        movb        rl4, #':'
        callr        mmv_store1

        mov        r1, #4
mmv_loop2:
        movb        rl4, #' '
        callr        mmv_store1
        extp        r9, #1
        movb        rl4, [r7+]
        callr        mmv_hexDig
        sub        r1, #1
        jmpr        cc_NZ, mmv_loop2
        movb        rl4, #13
        callr        mmv_store1
        sub        r5, #1
        jmpr        cc_NZ, mmv_loop1

mmv_dend:
        movb        rl4, #0
        callr        mmv_store1

        callr        mmv_getTextID
        mov        r13, [r0+]
        and        r13, #3FFFh
        mov         r14, DPP1
        mov         r15, #0
        calls        convText2ID

        callr        mmv_getTextID
        mov        r14, #pof(mmv_TextList1)
        mov        r5, #pof(mmv_WndClass1)
        cmp        r12, #mmv_textID1
        jmpr        cc_Z, mmv_t02
        add        r14, #pof(mmv_TextList2)-pof(mmv_textList1)
        mov        r5, #pof(mmv_WndClass2)
mmv_t02:
        xor        r12, #mmv_textID1^mmv_textID2
        mov        r4, r12
        callr        mmv_setTextID

        mov        r13, #pag(mmv_WndClass1)
        mov        [-r0], r13
        mov        [-r0], r14
        mov        r12, r5
        calls        dspAlert00

        mov        r4, #0ah
        add        r0, #200h
        mov        r6, [r0+]
        mov        r7, [r0+]
        mov        r8, [r0+]
        mov        r9, [r0+]
        rets

mmv_setTextID:
        extp        #pag(mmvPtr), #1
        mov        pof(mmvID), r4
        ret

mmv_getTextID:
        extp        #pag(mmvPtr), #1
        mov        r12, pof(mmvID)
        ret

mmv_storeW:
        callr        mmv_store1
        movb        rl4, rh4
        jmpr        cc_UC, mmv_store1

mmv_hex4:
        movb        rl4, rh7
        callr        mmv_hexDig
        movb        rl4, rl7
mmv_hexDig:
        movb        rl3, rl4
        shr        r4, #4
        callr        mmv_puthex1
        movb        rl4, rl3
        callr        mmv_puthex1
        ret

mmv_puthex1:
        andb        rl4, #0Fh
        addb        rl4, #'0'
        cmpb        rl4, #'9'
        jmpr        cc_ULE, mmv_store1
        addb        rl4, #7
mmv_store1:
        cmp        r8, r6
        jmpr        cc_NZ, mmv_st02
        movb        rh4, #'<'
        movb        [r8], rh4
        movb        [r8+#1], rl4
        movb        rl4, #'>'
        add        r8, #2
mmv_st02:
        movb        [r8], rl4
        add        r8, #1
        ret



mmv_keyHdl:
        mov        r1, #pof(mmvPtr)
        extp        #pag(mmvPtr), #3
        mov        r2, [r1+]
        mov        r3, [r1+]
        mov        r5, [r1+]                        ; 0000:0000 (0)
        cmp        r5, #6
        jmpr        cc_ULE, mmv_a01
        mov        r5, #0
mmv_a01:
        shl        r5, #1
        extp        #pag(mmvAdd), #1
        mov        r1, [r5+#pof(mmvAdd)]
        shr        r5, #1

        cmp        r14, #19h                ; NEXT
        jmpr        cc_Z, mmv_process
        cmp        r14, #18h                ; PREV
        jmpr        cc_NZ, mmv_test1
        neg        r1

mmv_process:
        cmp        r5, #1
        jmpr        cc_ULT, mmv_r2p
        cmp        r5, #3
        jmpr        cc_UGT, mmv_r2p
        add        r3, r1
        cmp        r3, #3FFh
        jmpr        cc_SLE, mmv_r3t1
        mov        r3, #0
mmv_ok1:
        mov        r4, #pof(mmvPtr)+6
        extp        #pag(mmvPtr), #3
        mov        [-r4], r5
        mov        [-r4], r3
        mov        [-r4], r2
        jmps        mmv_dispMem

mmv_r3t1:
        cmp        r3, #0
        jmpr        cc_SGE, mmv_ok1
        mov        r3, #3FFh
        jmpr        cc_UC, mmv_ok1

mmv_r2p:
        add        r2, r1
        cmp        r2, #4000h
        jmpr        cc_SLT, mmv_r2t1
        mov        r2, #0
        jmpr        cc_UC, mmv_ok1

mmv_r2t1:
        cmp        r2, #0
        jmpr        cc_SGE, mmv_ok1
        and        r2, #3FFFh
        jmpr        cc_UC, mmv_ok1

mmv_test1:
        cmp        r14, #0ah                ; EXIT
        jmpr        cc_NZ, mmv_test2
        jmps        doIDLE

mmv_test2:
        cmp        r14, #14h                ; LEFT
        jmpr        cc_NZ, mmv_test3
        sub        r5, #1
        jmpr        cc_SGE, mmv_ok1
        mov        r5, #6
        jmpr        cc_UC, mmv_ok1

mmv_test3:
        cmp        r14, #17h                ; RIGHT
        jmpr        cc_NZ, mmv_test4
        add        r5, #1
        cmp        r5, #6
        jmpr        cc_ULE, mmv_ok1
        mov        r5, #0
        jmpr        cc_UC, mmv_ok1

mmv_test4:
mmv_exit:
        mov        r5, #370ch
        extp        #37h, #4
        mov        [-r5], r15
        mov        [-r5], r14
        mov        [-r5], r13
        mov        [-r5], r12
        extp        #37h, #2
        mov        [-r5], r9
        mov        [-r5], r8
mmv_rets:
        mov        r4, r14
        rets

mmvAdd:
        dw        24,100h,10h,1h,1000h,100h,10h

mmv_sKeyList:
        dw 18h,18h,0ffffh                ;761h;
        dw 30h,32h,0ffffh
        dw 31h,33h,0ffffh
        dw 19h,19h,0ffffh                ;531h

mmv_TextList1:
        dw        mmv_textID1, 7fffh
mmv_TextList2:
        dw        mmv_textID2, 7fffh

mmv_WndClass1:
        dw 4000h                 ; Flag1        47c2
        dw 0                         ; Flag2        6
        dw 22h                         ; Flag3        2=without lines
        dw 0                         ; TimeToKeep
        dw 0                         ; unknown
        dw mmv_textID1+2        ; DialogTitle
        dw 0,0                         ; Handle1
        dw ofs(mmv_keyHdl), seg(mmv_keyHdl)        ; keyHandle
        dw 0,0                         ; Handle3
        dw pof(mmv_SKeyList),pag(mmv_SKeyList)         ; ButtondefOffset
        dw 0                        ; 2=center
        dw 0                         ; dunno

mmv_WndClass2:
        dw 4000h                 ; Flag1        47c2
        dw 0                         ; Flag2        6
        dw 22h                         ; Flag3        2=without lines
        dw 0                         ; TimeToKeep
        dw 0                         ; unknown
        dw mmv_textID2+2        ; DialogTitle
        dw 0,0                         ; Handle1
        dw ofs(mmv_keyHdl), seg(mmv_keyHdl)        ; keyHandle
        dw 0,0                         ; Handle3
        dw pof(mmv_SKeyList),pag(mmv_SKeyList)         ; ButtondefOffset
        dw 0                        ; 2=center
        dw 0                         ; dunno
回复 支持 反对

使用道具 举报

发表于 2005-10-11 09:46:20 | 显示全部楼层
请问,a3a8.cpp在什么环境里运行?
回复 支持 反对

使用道具 举报

发表于 2005-10-25 09:00:20 | 显示全部楼层
顶..................
回复 支持 反对

使用道具 举报

发表于 2005-10-25 11:16:13 | 显示全部楼层
支持一下………………
回复 支持 反对

使用道具 举报

发表于 2005-10-25 13:53:11 | 显示全部楼层
关注,帮顶!希望康大能看到再帮Xinshou 解答一下。
回复 支持 反对

使用道具 举报

发表于 2005-10-25 19:09:50 | 显示全部楼层
可惜,我不懂,呵呵!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-7-16 01:26

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表