爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 5461|回复: 24
收起左侧

[Flash修改] 冰大,黑名单v3.2反汇编后成了这么个程序!!!

  [复制链接]
发表于 2009-7-31 13:11:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
下一步不知道该怎么改才能移植到S7Cv47上。有几个地方不懂。。。
源码大部分地方都看不懂,B来BL去的,看不太懂。。。
先弄成能正确编译出来的源码而不能。


又费了一中午时间。。。


#define    AutoAnswer     0xA09DE7AB


                       ADD       R2, R6, #0             //这个和MOV   R2, R6有区别吗?
                       ADD       R0, R5, #0             //一开始就来这两句,都不知道是什么意思。
                       PUSH    {R0-R7,LR}
                       BL           FUNC3
                       BEQ       FUNC2                 //这两个跳转到底是怎么跳的?BL到FUNC3之后能返回值吗?BEQ的条件到底是什么?
                       CMP      R5, #0
                       BEQ       FUNC1
                       CMP      R5, #0xB             //R5是装什么东西的?群组?
                       BGT       FUNC2
                       CMP      R5, #3
                       BLS       FUNC2
                       SUB      R5, #2

FUNC1:
                       BL        FUNC4
                       BEQ     FUNC5

FUNC2:
                       POP     {R0-R7,PC}

FUNC5:
                       POP     {R0-R7}
B           FUNC6

                       NOP

ADD     R2, R6, #0

                       ADD     R0, R5, #0
                       PUSH    {R0-R7,LR}
                       BL      FUNC3
                       BEQ     FUNC8
                       CMP     R5, #0
                       BEQ     FUNC7
                       CMP     R5, #0xB
                       BGT     FUNC8
                       CMP     R5, #3
                       BLS      FUNC8
                       SUB      R5, #2
                       B            FUNC9

FUNC7:
                       MOV     R0, #1
                       SWI     0x7D          //7D: IsIncognitoCall
                       CMP     R0, #0
                       BNE    FUNC9
                       MOV     R5, #0xA

FUNC9:
                      BL      FUNC4
                      BEQ     FUNC10

FUNC8:
                       POP     {R0-R7,PC}

FUNC10:
                       POP     {R0-R7}
                       B            FUNC6

FUNC4:
                       PUSH    {R1-R7,LR}
                       ADD     R4, R5, #2
                       LDRB    R1, [R6,#1]
                       CMP     R1, #0
                       BEQ    FUNC11
                       MOV     R0, #0
                       B           FUNC12

FUNC11:
                       SWI     0xB6    // B6: GetProfile()

FUNC12:
                       MOV     R1, #0xB          
                       MUL     R0, R1
                       ADD     R0, R0, R6
                       MOV     R5, #0xFF
                       LDRB    R2, [R0,R4]
                       LSL     R2, R2, #1
                       ADD     PC, R2
                       NOP
                       B       RP2
                       B       EndCall
                       B       EndCallBusy
                       B       RP1
                       B       AutoAnswer

EndCallBusy:
                       MOV     R0, #0
                       MOV     R1, #0
                       SWI     0x66              // 66: EndCallBusy
                       B         RP1

EndCall:
                       SWI     0x65            //65: EndCall
                       B       RP1

AutoAnswer:
                       LDR     R5, =AutoAnswer
                       BLX      R5

RP1:
                       MOV     R5, #0

RP2:
                       ADD     R0, R5, #0
                       POP     {R1-R7,PC}
                       NOP

FUNC6:
                     BX      PC
                     DCB    0
                     DCB    0              //直接反汇编出来的有着两句,不知道要不要。。。

                             CODE32        
                    LDMFD   SP!, {LR}     //这个就完全没见过,看不懂什么意思了。。
                    ADD     LR, LR, #4
                    BX      LR

FUNC3:
                             CODE16
                       PUSH    {R0-R5,R7,LR}
                       MOVL    R0, 0xCD00               //
                       ADD     R0, #9                   //这两句反汇编出来的东西很奇怪,怎么不直接MOV RO,0xCD09?
                       SWI      0xC4       //C4: GetBuffer
                       BEQ     PF1
                       ADD     R6, R0, #0

PF1:
                       POP     {R0-R5,R7,PC}

【E71Cv41】黑名单v3.2.vkp

12.98 KB, 下载次数: 3

这是反汇编的原文件

发表于 2009-7-31 14:36:36 | 显示全部楼层
想搞出源代码,想办法把那个列表txt整合进E71。
然后就彻底丢弃S75了。。。
回复 支持 反对

使用道具 举报

发表于 2009-7-31 20:28:58 | 显示全部楼层
ADD       R2, R6, #0 和MOV  R2, R6是一样的

FUNC3 里面改变了CPSR的值(准确的说是在GetBuffer函数里面),返回时并没有被改变,可以直接BEQ

R5里面确实是群组信息

DCB    0
DCB    0  
只是为了下面ARM模式的代码4字节对齐

LDMFD   SP!, {LR}, 看LDM指令吧,

MOV RO,0xCD09,是不能完成的操作,应该是受32位指令的限制吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-1 00:28:32 | 显示全部楼层
ADD       R2, R6, #0 和MOV  R2, R6是一样的

FUNC3 里面改变了CPSR的值(准确的说是在GetBuffer函数里面),返回时并没有被改变,可以直接BEQ

R5里面确实是群组信息

DCB    0
DCB    0  
只是为了下面ARM模式 ...
binghelingxi 发表于 2009-7-31 20:28


修改了几个小地方然后编译。。。
得不到vkp,只能得到elf
并且elf中的对应字串和原始vkp也有部分区别。奇怪了。。。
明明是按反汇的代码来修改的,竟然会出错了。。。
  1. #define    AutoAnswer     0xA09DE7AB
  2. #define    PATCH_ID       0xCD09
  3.         RSEG        BODY
  4.         CODE16

  5. BODY:

  6.                        ADD       R2, R6, #0             //这个和MOV   R2, R6有区别吗?
  7.                        ADD       R0, R5, #0 //一开始就来这两句,都不知道是什么意思。
  8.                        PUSH    {R0-R7,LR}
  9.                        BL           FUNC3
  10.                        BEQ       FUNC2
  11.                        CMP      R5, #0
  12.                        BEQ       FUNC1
  13.                        CMP      R5, #0xB
  14.                        BGT       FUNC2
  15.                        CMP      R5, #3
  16.                        BLS       FUNC2
  17.                        SUB      R5, #2

  18. FUNC1:
  19.                        BL        FUNC4
  20.                        BEQ     FUNC5

  21. FUNC2:
  22.                        POP     {R0-R7,PC}

  23. FUNC5:
  24.                        POP     {R0-R7}
  25.                        B           FUNC6

  26.                        NOP

  27.                        ADD     R2, R6, #0

  28.                        ADD     R0, R5, #0
  29.                        PUSH    {R0-R7,LR}
  30.                        BL      FUNC3
  31.                        BEQ     FUNC8
  32.                        CMP     R5, #0
  33.                        BEQ     FUNC7
  34.                        CMP     R5, #0xB
  35.                        BGT     FUNC8
  36.                        CMP     R5, #3
  37.                        BLS      FUNC8
  38.                        SUB      R5, #2
  39.                        B            FUNC9

  40. FUNC7:
  41.                        MOV     R0, #1
  42.                        SWI     0x7D //7D: IsIncognitoCall
  43.                        CMP     R0, #0
  44.                        BNE    FUNC9
  45.                        MOV     R5, #0xA

  46. FUNC9:
  47.                       BL      FUNC4
  48.                       BEQ     FUNC10

  49. FUNC8:
  50.                        POP     {R0-R7,PC}

  51. FUNC10:
  52.                        POP     {R0-R7}
  53.                        B            FUNC6

  54. FUNC4:
  55.                        PUSH    {R1-R7,LR}
  56.                        ADD     R4, R5, #2
  57.                        LDRB    R1, [R6,#1]
  58.                        CMP     R1, #0
  59.                        BEQ    FUNC11
  60.                        MOV     R0, #0
  61.                        B           FUNC12

  62. FUNC11:
  63.                        SWI     0xB6    // B6: GetProfile()

  64. FUNC12:
  65.                        MOV     R1, #0xB         
  66.                        MUL     R0, R1
  67.                        ADD     R0, R0, R6
  68.                        MOV     R5, #0xFF
  69.                        LDRB    R2, [R0,R4]
  70.                        LSL     R2, R2, #1
  71.                        ADD     PC, R2
  72.                        NOP
  73.                        B       RP2
  74.                        B       EndCall
  75.                        B       EndCallBusy
  76.                        B       RP1
  77.                        B       Answer

  78. EndCallBusy:
  79.                        MOV     R0, #0
  80.                        MOV     R1, #0
  81.                        SWI     0x66 // 66: EndCallBusy
  82.                        B         RP1

  83. EndCall:
  84.                        SWI     0x65 //65: EndCall
  85.                        B       RP1

  86. Answer:
  87.                        LDR     R5, =AutoAnswer
  88.                        BLX      R5

  89. RP1:
  90.                        MOV     R5, #0

  91. RP2:
  92.                        ADD     R0, R5, #0
  93.                        POP     {R1-R7,PC}
  94.                        NOP

  95. FUNC6:
  96.                      BX      PC
  97.                              CODE32        
  98.                     LDMFD   SP!, {LR} //这个就完全没见过,看不懂什么意思了。。
  99.                     ADD     LR, LR, #4
  100.                     BX      LR

  101. FUNC3:
  102.                              CODE16
  103.                        PUSH    {R0-R5,R7,LR}
  104.                        LDR     R0, =PATCH_ID
  105.                        SWI      0xC4       //C4: GetBuffer
  106.                        BEQ     PF1
  107.                        MOV     R6, R0

  108. PF1:
  109.                        POP     {R0-R5,R7,PC}
  110.                        END
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-1 11:38:42 | 显示全部楼层
上面我已经检查不出错在哪里了啊。
想要源代码,给MP里面加一个whitelist.txt项。。。
回复 支持 反对

使用道具 举报

发表于 2009-8-1 19:57:37 | 显示全部楼层
得不到vkp,只能得到elf

用elf2vkp啊
回复 支持 反对

使用道具 举报

发表于 2009-8-1 21:50:49 | 显示全部楼层
就是提示elf2vkp出错不能得到vkp
但是我记得各个地方都关联对了,bat的地址没写错,bin文件名没错。
回复 支持 反对

使用道具 举报

发表于 2009-8-1 23:25:19 | 显示全部楼层
把elf发上来吧,
回复 支持 反对

使用道具 举报

发表于 2009-8-3 01:15:09 | 显示全部楼层
把elf发上来吧,
binghelingxi 发表于 2009-8-1 23:25

发来了,看里面的代码串,和vkp补丁有较大差距。。。

E71Cv41.rar

1 KB, 下载次数: 2

回复 支持 反对

使用道具 举报

发表于 2009-8-3 01:23:05 | 显示全部楼层
这么大个补丁,我好难搞啊。
还是希望冰大出手。把Non addressbook添加进来。
我把那个自定义列表添加进来,还不如你armdebugger一下来得快。
不知道NSG上什么时候能有此补丁。汗,进步比较慢。。。
回复 支持 反对

使用道具 举报

发表于 2009-8-3 19:25:37 | 显示全部楼层
这个ELF我看了,怎么没有HOOK部分
回复 支持 反对

使用道具 举报

发表于 2009-8-3 21:17:46 | 显示全部楼层
我没管hook部分啊,想先把主程序部分弄出来。。。
回复 支持 反对

使用道具 举报

发表于 2009-8-14 22:38:47 | 显示全部楼层
疑问:
中间这几个
  1. ROM:A0066738 C0 46                       NOP
  2. ROM:A006673A 0C E0                       B       loc_A0066756
  3. ROM:A006673A
  4. ROM:A006673C 06 E0                       B       loc_A006674C
  5. ROM:A006673C
  6. ROM:A006673E 01 E0                       B       loc_A0066744
  7. ROM:A006673E
  8. ROM:A0066740 08 E0                       B       loc_A0066754
  9. ROM:A0066740
  10. ROM:A0066742 05 E0                       B       loc_A0066750
复制代码
直接处理成这样的标签不知道行不行,这样子连续的B来B去我不懂什么意思了。
  1. ROM:A0066738 C0 46                       NOP
  2. ROM:A006673A 0C E0                       B       FUND
  3. ROM:A006673A
  4. ROM:A006673C 06 E0                       B        FUNE
  5. ROM:A006673C
  6. ROM:A006673E 01 E0                       B        FUNF
  7. ROM:A006673E
  8. ROM:A0066740 08 E0                       B        FUN0
  9. ROM:A0066740
  10. ROM:A0066742 05 E0                       B        FUNG
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-8-14 23:10:29 | 显示全部楼层
这是我最后得到的东西。。。
  1. #define    adr_AutoAnswer     0xA09DE7AB
  2. #define    PATCH_ID       0xCD09
  3.         RSEG        HOOK1
  4.         CODE16
  5.         LDR        R4, =HOOKA
  6.         BLX        R4
  7.         RSEG        HOOK2
  8.         CODE16
  9.         LDR        R4, =HOOKB
  10.         BLX        R4

  11. HOOKA:
  12.                  CODE32
  13.                  LDR     R12, =BODY1
  14.                  BX      R12
  15. HOOKB:
  16.                  CODE32
  17.                  LDR     R12, =BODY2
  18.                  BX      R12
  19. BODY1:
  20.                  MOV     R2, R6
  21.                  MOV     R0, R5
  22.                  PUSH    {R0-R7,LR}
  23.                  BL      FUN1
  24.                  BEQ     FUN2
  25.                  CMP     R5, #0
  26.                  BEQ     FUN3
  27.                  CMP     R5, #0xB
  28.                  BGT     FUN2
  29.                  CMP     R5, #3
  30.                  BLS     FUN2
  31.                  SUB     R5, #2
  32. FUN3:
  33.                  BL      FUN4
  34.                  BEQ     FUN5
  35. FUN2:
  36.                  POP     {R0-R7,PC}
  37. FUN5:
  38.                  POP     {R0-R7}
  39.                  B       FUN6
  40.                  NOP
  41. BODY2:
  42.                  MOV     R2, R6
  43.                  MOV     R0, R5
  44.                  PUSH    {R0-R7,LR}
  45.                  BL      FUN1
  46.                  BEQ     FUN7
  47.                  CMP     R5, #0
  48.                  BEQ     FUN8
  49.                  CMP     R5, #0xB
  50.                  BGT     FUN7
  51.                  CMP     R5, #3
  52.                  BLS     FUN7
  53.                  SUB     R5, #2
  54.                  B       FUN9
  55. FUN8:
  56.                  MOV     R0, #1
  57.                  SWI     0x7D           //7D: IsIncognitoCall
  58.                  CMP     R0, #0
  59.                  BNE     FUN9
  60.                  MOV     R5, #0xA
  61. FUN9:
  62.                  BL      FUN4
  63.                  BEQ     FUNA
  64. FUN7:
  65.                  POP     {R0-R7,PC}
  66. FUNA:
  67.                  POP     {R0-R7}
  68.                  B       FUN6
  69. FUN4:
  70.                  PUSH    {R1-R7,LR}
  71.                  ADD     R4, R5, #2
  72.                  LDRB    R1, [R6,#1]
  73.                  CMP     R1, #0
  74.                  BEQ     FUNB
  75.                  MOV     R0, #0
  76.                  B       FUNC
  77. FUNB:
  78.                  SWI     0xB6            // B6: GetProfile()
  79. FUNC:
  80.                  MOV     R1, #0xB
  81.                  MUL     R0, R1
  82.                  ADD     R0, R0, R6
  83.                  MOV     R5, #0xFF
  84.                  LDRB    R2, [R0,R4]
  85.                  LSL     R2, R2, #1
  86.                  ADD     PC, R2
  87.                  NOP
  88.                  B       FUND
  89.                  B       FUNE
  90.                  B       FUNF
  91.                  B       FUN0
  92.                  B       FUNG
  93. FUNF:
  94.                  MOV     R0, #0
  95.                  MOV     R1, #0
  96.                  SWI     0x66                      // 66: EndCallBusy
  97.                  B       FUN0
  98. FUNE:
  99.                  SWI     0x65                    //65: EndCall
  100.                  B       FUN0

  101. FUNG:
  102.                  LDR     R5, =adr_AutoAnswer
  103.                  BLX     R5
  104. FUN0:
  105.                  MOV     R5, #0
  106. FUND:
  107.                  MOV     R0, R5
  108.                  POP     {R1-R7,PC}
  109.                  NOP
  110. FUN6:
  111.                  BX      PC
  112.                      CODE32
  113.                  LDMFD   SP!, {LR}
  114.                  ADD     LR, LR, #4
  115.                  BX      LR
  116. FUN1:
  117.                      CODE16                                                                PUSH    {R0-R5,R7,LR}
  118.                  LDR     R0, =PATCH_ID
  119.                  SWI     0xC4                  //C4: GetBuffer
  120.                  BEQ     FUNH
  121.                  MOV     R6, R0
  122. FUNH:
  123.                  POP     {R0-R5,R7,PC}
  124.                  END
复制代码
提示好多错误。。。
  1. Error[401]: Operand syntax error
  2.                  SUB     R5, #2
  3.                  MUL     R0, R1
  4.                  ADD     PC, R2
复制代码
  1. Error[403]: Illegal register, 'PC' is not allowed here
  2.                  BX      PC
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-8-15 12:19:38 | 显示全部楼层
等待冰大指点把此补丁完善。。。
回复 支持 反对

使用道具 举报

发表于 2009-8-15 19:33:36 | 显示全部楼层
SUB     R5, #2
改为SUB   R5, R5, #2
回复 支持 反对

使用道具 举报

发表于 2009-8-15 19:42:57 | 显示全部楼层
FUN6:
                 BX      PC
                     CODE32

改为

FUN6:
                     CODE32
                 BX      PC
回复 支持 反对

使用道具 举报

发表于 2009-8-15 19:53:33 | 显示全部楼层
最后一个error还在啊。。。
Error[403]: Illegal register, 'PC' is not allowed here E:\black3.2\main.asm 114
回复 支持 反对

使用道具 举报

发表于 2009-8-15 20:24:25 | 显示全部楼层
我刚刚那样是错的
FUN6:
                 BX      PC
                     CODE32


在BODY1:上面加CODE16
回复 支持 反对

使用道具 举报

发表于 2009-8-15 21:11:37 | 显示全部楼层
编译能得到elf,但是仍然没有hook部分。。。
最终的源码
  1. #define    adr_AutoAnswer     0xA09DE7AB
  2. #define    PATCH_ID       0xCD09
  3.         RSEG        HOOK1
  4.         CODE16
  5.         LDR        R4, =HOOKA
  6.         BLX        R4
  7.         RSEG        HOOK2
  8.         CODE16
  9.         LDR        R4, =HOOKB
  10.         BLX        R4
  11. HOOKA:
  12.                  CODE32
  13.                  LDR     R12, =BODY1
  14.                  BX      R12
  15. HOOKB:
  16.                  CODE32
  17.                  LDR     R12, =BODY2
  18.                  BX      R12
  19.                  CODE16
  20. BODY1:
  21.                  MOV     R2, R6
  22.                  MOV     R0, R5
  23.                  PUSH    {R0-R7,LR}
  24.                  BL      FUN1
  25.                  BEQ     FUN2
  26.                  CMP     R5, #0
  27.                  BEQ     FUN3
  28.                  CMP     R5, #0xB
  29.                  BGT     FUN2
  30.                  CMP     R5, #3
  31.                  BLS     FUN2
  32.                  SUB     R5, R5, #2
  33. FUN3:
  34.                  BL      FUN4
  35.                  BEQ     FUN5
  36. FUN2:
  37.                  POP     {R0-R7,PC}
  38. FUN5:
  39.                  POP     {R0-R7}
  40.                  B       FUN6
  41.                  NOP
  42. BODY2:
  43.                  MOV     R2, R6
  44.                  MOV     R0, R5
  45.                  PUSH    {R0-R7,LR}
  46.                  BL      FUN1
  47.                  BEQ     FUN7
  48.                  CMP     R5, #0
  49.                  BEQ     FUN8
  50.                  CMP     R5, #0xB
  51.                  BGT     FUN7
  52.                  CMP     R5, #3
  53.                  BLS     FUN7
  54.                  SUB     R5, R5, #2
  55.                  B       FUN9
  56. FUN8:
  57.                  MOV     R0, #1
  58.                  SWI     0x7D           //7D: IsIncognitoCall
  59.                  CMP     R0, #0
  60.                  BNE     FUN9
  61.                  MOV     R5, #0xA
  62. FUN9:
  63.                  BL      FUN4
  64.                  BEQ     FUNA
  65. FUN7:
  66.                  POP     {R0-R7,PC}
  67. FUNA:
  68.                  POP     {R0-R7}
  69.                  B       FUN6
  70. FUN4:
  71.                  PUSH    {R1-R7,LR}
  72.                  ADD     R4, R5, #2
  73.                  LDRB    R1, [R6,#1]
  74.                  CMP     R1, #0
  75.                  BEQ     FUNB
  76.                  MOV     R0, #0
  77.                  B       FUNC
  78. FUNB:
  79.                  SWI     0xB6            // B6: GetProfile()
  80. FUNC:
  81.                  MOV     R1, #0xB
  82.                  MUL     R0, R1
  83.                  ADD     R0, R0, R6
  84.                  MOV     R5, #0xFF
  85.                  LDRB    R2, [R0,R4]
  86.                  LSL     R2, R2, #1
  87.                  ADD     PC, R2
  88.                  NOP
  89.                  B       FUND
  90.                  B       FUNE
  91.                  B       FUNF
  92.                  B       FUN0
  93.                  B       FUNG
  94. FUNF:
  95.                  MOV     R0, #0
  96.                  MOV     R1, #0
  97.                  SWI     0x66                      // 66: EndCallBusy
  98.                  B       FUN0
  99. FUNE:
  100.                  SWI     0x65                    //65: EndCall
  101.                  B       FUN0

  102. FUNG:
  103.                  LDR     R5, =adr_AutoAnswer
  104.                  BLX     R5
  105. FUN0:
  106.                  MOV     R5, #0
  107. FUND:
  108.                  MOV     R0, R5
  109.                  POP     {R1-R7,PC}
  110.                  NOP
  111. FUN6:
  112.                  BX      PC
  113.                      CODE32
  114.                  LDMFD   SP!, {LR}
  115.                  ADD     LR, LR, #4
  116.                  BX      LR
  117. FUN1:
  118.                      CODE16                                                                PUSH    {R0-R5,R7,LR}
  119.                  LDR     R0, =PATCH_ID
  120.                  SWI     0xC4                  //C4: GetBuffer
  121.                  BEQ     FUNH
  122.                  MOV     R6, R0
  123. FUNH:
  124.                  POP     {R0-R5,R7,PC}
  125.                  END
复制代码
E71Cv41.xcl
  1. -carm
  2. -Z(CODE)BODY1=A00666C0-FFFFFFFF
  3. -Z(CODE)HOOK1=A071DC00-FFFFFFFF
  4. -Z(CODE)HOOK2=A071DC0A-FFFFFFFF
  5. -Z(CODE)HOOKA=A082B44C-FFFFFFFF
  6. -Z(CODE)HOOKB=A082B458-FFFFFFFF
复制代码

提示elf2vkp.exe错误:“0x0eedfade,位置0x7c812a6b”

BlackList_v3.2.rar

460 Bytes, 下载次数: 2

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 15:41

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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