欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

使用方法

<span class="pediy"><span class="pediy"> 使用方法

其实就简单嘛,设两个断点,填一下重定位指针的寄存器(或者可能是[ebp+somevalue],就要用上两条指令替换),举例:
fly文章中的upx 脱壳教程
代码:
-----------------------------------------------------------------
003B825E     8A07                mov al,byte ptr ds:[edi]
//EDI=003B7318-当前基址003B0000=00007318  ★ 这就是重定位表的RVA
003B8260     47                  inc edi
003B8261     09C0                or eax,eax
003B8263     74 22               je short EdrLib.003B8287
//重定位数据处理完毕则跳转
003B8265     3C EF               cmp al,0EF
003B8267     77 11               ja short EdrLib.003B827A
003B8269     01C3                add ebx,eax
003B826B     8B03                mov eax,dword ptr ds:[ebx]
003B826D     86C4                xchg ah,al//找到这里
003B826F     C1C0 10             rol eax,10
003B8272     86C4                xchg ah,al
003B8274     01F0                add eax,esi
003B8276     8903                mov dword ptr ds:[ebx],eax
003B8278     EB E2               jmp short EdrLib.003B825C
003B827A     24 0F               and al,0F
003B827C     C1E0 10             shl eax,10
003B827F     66:8B07             mov ax,word ptr ds:[edi]
003B8282     83C7 02             add edi,2
003B8285     EB E2               jmp short EdrLib.003B8269
003B8287     61                  popad
//此时EDI=003B74EA  ★
003B8288     E9 3C8FFFFF         jmp EdrLib.003B11C9
//飞向光明之点巅!
------------------------------------------------------------
003B8276     8903                mov dword ptr ds:[ebx],eax //这一行是写入新的重定位,而ebx是重定位需要的指针,是不断变化的
003B8287     61                  popad //这行设断点是为了使脚本运行结束
因为我的脚本是对重定位的指针位置进行写入操作的指令进行下断,提取指针的部分有用数据……其他的按要求填就是了,到底能不能通用,大家测试吧,的确没太多时间进行(其他DLL)测试……

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功