飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5970|回复: 5

[原创] aspack 处理重定位表的过程

[复制链接]
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-5-30 16:56:21 | 显示全部楼层 |阅读模式
    前两天有同学问我dll重定位的事儿,跟了一下aspack,其实重定位表的处理非常简单,简单记录下。

    1. 100CE1BD    8B03            MOV     EAX, DWORD PTR DS:[EBX]
    2. 100CE1BF    8785 91050000   XCHG    DWORD PTR SS:[EBP+0x591], EAX
    3. 100CE1C5    8B95 7D040000   MOV     EDX, DWORD PTR SS:[EBP+0x47D]    ; 实际加载基址
    4. 100CE1CB    8B85 89050000   MOV     EAX, DWORD PTR SS:[EBP+0x589]    ; PE建议的基址
    5. 100CE1D1    2BD0            SUB     EDX, EAX                         ; 基址正确则不需要走重定位
    6. 100CE1D3    74 79           JE      SHORT kk.100CE24E
    7. 100CE1D5    8BC2            MOV     EAX, EDX
    8. 100CE1D7    C1E8 10         SHR     EAX, 0x10
    9. 100CE1DA    33DB            XOR     EBX, EBX
    10. 100CE1DC    8BB5 95050000   MOV     ESI, DWORD PTR SS:[EBP+0x595]    ; 重定位表
    11. 100CE1E2    03B5 7D040000   ADD     ESI, DWORD PTR SS:[EBP+0x47D]    ; +基址
    12. 100CE1E8    833E 00         CMP     DWORD PTR DS:[ESI], 0x0          ; 完了没有?
    13. 100CE1EB    74 61           JE      SHORT kk.100CE24E
    14. 100CE1ED    8B4E 04         MOV     ECX, DWORD PTR DS:[ESI+0x4]      ; SizeOfBlock
    15. 100CE1F0    83E9 08         SUB     ECX, 0x8
    16. 100CE1F3    D1E9            SHR     ECX, 1                           ; 求得项数base->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION))/2
    17. 100CE1F5    8B3E            MOV     EDI, DWORD PTR DS:[ESI]          ; VirtualAddress
    18. 100CE1F7    03BD 7D040000   ADD     EDI, DWORD PTR SS:[EBP+0x47D]    ; +基址
    19. 100CE1FD    83C6 08         ADD     ESI, 0x8
    20. 100CE200    66:8B1E         MOV     BX, WORD PTR DS:[ESI]            ; TypeOffset
    21. 100CE203    C1EB 0C         SHR     EBX, 0xC
    22. 100CE206    83FB 01         CMP     EBX, 0x1
    23. 100CE209    74 0C           JE      SHORT kk.100CE217
    24. 100CE20B    83FB 02         CMP     EBX, 0x2
    25. 100CE20E    74 16           JE      SHORT kk.100CE226
    26. 100CE210    83FB 03         CMP     EBX, 0x3                         ; IMAGE_REL_BASED_HIGHLOW
    27. 100CE213    74 20           JE      SHORT kk.100CE235
    28. 100CE215    EB 2C           JMP     SHORT kk.100CE243
    29. 100CE217    66:8B1E         MOV     BX, WORD PTR DS:[ESI]
    30. 100CE21A    81E3 FF0F0000   AND     EBX, 0xFFF
    31. 100CE220    66:01041F       ADD     WORD PTR DS:[EDI+EBX], AX
    32. 100CE224    EB 1D           JMP     SHORT kk.100CE243
    33. 100CE226    66:8B1E         MOV     BX, WORD PTR DS:[ESI]
    34. 100CE229    81E3 FF0F0000   AND     EBX, 0xFFF
    35. 100CE22F    66:01141F       ADD     WORD PTR DS:[EDI+EBX], DX
    36. 100CE233    EB 0E           JMP     SHORT kk.100CE243
    37. 100CE235    66:8B1E         MOV     BX, WORD PTR DS:[ESI]
    38. 100CE238    81E3 FF0F0000   AND     EBX, 0xFFF                       ; 去高4位得到rva
    39. 100CE23E    01141F          ADD     DWORD PTR DS:[EDI+EBX], EDX      ; EDi+EBX 基址+ rva,EDX为实际加载基址的差值
    40. 100CE241    EB 00           JMP     SHORT kk.100CE243
    41. 100CE243    66:830E FF      OR      WORD PTR DS:[ESI], 0xFFFF
    42. 100CE247    83C6 02         ADD     ESI, 0x2                         ; next
    43. 100CE24A  ^ E2 B4           LOOPD   SHORT kk.100CE200
    44. 100CE24C  ^ EB 9A           JMP     SHORT kk.100CE1E8                ; next表
    复制代码


    评分

    参与人数 1威望 +4 收起 理由
    maxwell + 4 很详细啊!谢谢!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-31 00:26
  • 签到天数: 77 天

    [LV.6]常住居民II

    发表于 2015-5-30 18:06:47 | 显示全部楼层
    坐沙发,静静的阅读
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-17 22:44
  • 签到天数: 132 天

    [LV.7]常住居民III

    发表于 2015-5-30 18:43:00 | 显示全部楼层
    注释很清晰,学习了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2015-5-30 20:19:33 | 显示全部楼层
    给个目标文件 方便让大家来比对

    点评

    汗。。。已经删除掉了。。。  发表于 2015-5-31 10:49
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 16:07
  • 签到天数: 1093 天

    [LV.10]以坛为家III

    发表于 2015-5-31 09:10:59 | 显示全部楼层

    向楼主学习!向楼主致敬!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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