文号
t18199
阅读
5145
回复
3
收藏
3
快没钱了,再来一个吧——用API做跳转
2009/08/02
IP:北京
也是我写的,就是时间早了点

利用做API跳转及其应用
PS:呵呵,还是潜水好。不敢“胆大妄为”了:)另外高手先闪了吧留给和我一样的菜鸟看,到时候失望不是我的错..
看到这个题目,是不是觉得特别吃惊?用API也能做跳转?当然,WINDOWS下面不可能有直接跳转的API,但我们可以用SEH和API互相搭建一个。
比如说MessageBoxExA,我们先简单编一个小程序

.386
.model flat, stdcall
option casemap :none
include                windows.inc
include                user32.inc
includelib        user32.lib
.code
start:
invoke MessageBox,0,231123,123123,MB_OK
end start

运行一下。居然出错了!错误发生在77D215F7
再看一下出错代码:

但就在这段代码中,M$忘了加SEH,使得我们可以趁机在外层加个SEH,然后直接跳出来
我写了个函数,给大虾们抛砖引玉

使用示例:


呵呵,这样不知道的人就很难看懂了。何况如果再加上一些扰乱的代码呢?

另外一种就是自己做一个JMP

当然了,你还能自己修改一个API函数(用VirtualProtect),再运行。总之一般人是不会跟进API的,用API来隐藏JMP我觉得是可行的
+2000
科创币
我说要有光
2009/08/02
分享底层探索经验
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的