首页
社区
课程
招聘
fxyang你脚本的MutexName指针是基于堆栈还是ebx(以谁为准)?
发表于: 2004-10-1 14:48 5582

fxyang你脚本的MutexName指针是基于堆栈还是ebx(以谁为准)?

2004-10-1 14:48
5582
fxyang你脚本的MutexName指针是基于堆栈还是ebx(以谁为准)?

    fxyang, 你的“arm3.75版以后的从双进程到单进程转换的Script自动运行脚本”为何只能应用到3.75版以后,原理是否利用在OpenMutexA上设bpx断点,Shift+F9运行或通过异常,当中断在OpenMutexA后,只要得到OpenMutexA的MutexName指针(你的edx是否等于中断OpenMutexA入口时堆栈的MutexName指针),是就可以轻松实现任意版的双->单的代码!如果是代码可写成下面这样可以通过吗?我没有玩过,现在也不能玩,但看过好些arm双进程的文章,理解是这样,不知如何?

dbh
var MutexName

gpa "OpenMutexA","kernel32.dll"
bp $RESULT        //若bp断点不能用,可换上硬件断点

eob check
pass:
esto

check:
cmp eip,$RESULT //是否中断在OpenMutexA
jne pass

mov MutexName,esp
add MutexName,0C
mov MutexName,[MutexName]
mov edx,MutexName        //获得MutexName指针

turn-alone:
  exec
    PUSHAD
    PUSH EDX
    push 0
    push 0
    CALL kernel32.CreateMutexA
    POPAD
    jmp kernel32.OpenMutexA
  ende

   bc $RESULT
//上面的代码就是在Script中运行从双进程到单进程的转换//
msg "已经转换成功!"
  ret

讨论 EXEC/ENDE 之实际应用

/*

讨论 EXEC/ENDE 之实际应用(你有更好的见解请务必告知):

1.使用call api,api前面需加相关动态链接库的前缀方能应用(fxyang的脚本点通了我,说明书写了个错误的样版),如:call kernel32.GetProcAddress
2.从EXEC/ENDE的错误应用中得出,该命令会自动寻找00空间,自动一边汇编代码,一边执行和回收!
3.下面设当前堆栈已经压入call GetProcAddress所需的两个参数,希望从addr中得到返回VirtualProtect的地址(事与原违):

*/

var modulebase // 动态链接库基址
var addr
var name        //API函数名指针

mov modulebase,[esp] //设当前esp指向动态链接库基址: kernel32.dll
mov addr,esp
add addr,4        //当前esp+4指向aip字符串地址:"VirtualProtect"
mov name,[addr]
        exec
          pushad
          push {name}
          push {modulebase}
          call kernel32.GetProcAddress
          mov {addr},eax // 测试请擦去下面两行
          xor eax,eax    // 原测试没有以下两行,
          xor [eax],eax //以上两行是发动异常,让你看见EXEC/ENDE进行的地点,后果自理
          popad
        ende
log addr        // 为何我不能从addr获得"VirtualProtect"的地址?addr为何不能返回eax的值?这里addr只能是esp+4的值,难到addr在EXEC/ENDE中只能参与运算,而不能更改???
ret

[课程]Linux pwn 探索篇!

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 2199
活跃值: (1975)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
2
呵呵,因为3.75版后加了个anti debug就是PREFIX LOCK:异常这个大家都知道如果忽略这个异常就会出现解码错误,不停的shift+F9也麻烦。从双进程到单进程的转换简单但是调试次数多了就烦它,每次都需要写相同的代码。所以就写了个Script脚本。3.75版之前的没有这个antia_debug所以不需要这样。
2004-10-1 16:22
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
忽略 != Shift+F9

?????????????????
2004-10-1 16:39
0
雪    币: 2199
活跃值: (1975)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
4
最初由 forgot 发布
忽略 != Shift+F9

?????????????????


应该是不等于吧,忽略了就过不了这个异常,不断的shift+f9能过这个异常。
2004-10-1 18:51
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
5
靠,Shift+F9不就是忽略继续执行...
2004-10-1 18:52
0
雪    币: 2199
活跃值: (1975)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
6
呵呵,可能我的理解错误,但是这个异常只能这样。
2004-10-1 19:07
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
7
:) oh...原来你有研究...
2004-10-1 21:17
0
游客
登录 | 注册 方可回帖
返回
//