远程线程调试(第43课)

远程线程是攻击者常用的手法,通过这种方式,可以达到隐藏自身的目的,也可以注入代码或者动态库。

 

攻击者如果使用远程线程进行注入,肯定会在目标进程中写代码,使用的函数是WriteProcessMemory,这个函数的第二个参数给出了写入的目标地址,记下这个地址。后面攻击者会调用函数RtlCreateUserThread,ResumeThread恢复线程运行。在它调用ResumeThread前,附加到目标进程中,点击菜单栏的“M”选项可以看到此进程的内存信息。在主进程WriteProcessMemory写入的内存地址处设置内存访问断点,然后F9让其运行,接着在回到主进程中让其调用ResumeThread,这样,就可以在目标进程中断下来。

 

定位DllEntry

调试动态库文件的时候,最简单的方式是使用OD载入,OD中的Loaddll.exe会自动加载动态库文件,并定位到入口处,虽然有时候不太准确。这里讲解的是如何手动定位到DllEntry。

 

先借助LordPE获取输出表的方法获取RVA地址。定位DllEntry

 

通过OD获取动态库文件的加载基地址。定位DllEntry

 

通过基址和RVA计算出来VA,定位到入口函数进行分析。定位DllEntry

头像
  • ¥ 999元
  • 市场价:4999元
  • ¥ 169.0元
  • 市场价:299.0元
  • ¥ 199.0元
  • 市场价:899.0元
  • ¥ 159.0元
  • 市场价:398.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: