首页
社区
课程
招聘
纯汇编怎么调用RegCreateKeyA这个函数?大家指点一下,谢谢
发表于: 2011-8-20 19:15 5613

纯汇编怎么调用RegCreateKeyA这个函数?大家指点一下,谢谢

2011-8-20 19:15
5613
纯汇编怎么调用RegCreateKeyA这个函数?

我只会用汇编调用WinExec这个只有一个参数的简单函数

push 字串首地址
call WinExec

但如果像RegCreateKeyA这种有多个参数的函数,应该如何调用?不要用invoke,因为OD里用不了invoke,希望大家给的建议啊,谢谢了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 31
活跃值: (53)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
从右往左挨个push呀
2011-8-20 21:15
0
雪    币: 38
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个我都会了,不就从又往左的顺序逐个push,push完后就call你要的函数地址
2011-8-20 22:19
0
雪    币: 174
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
参数从右到左一个个push再call

fun(1,2,3)

push 3
push 2
push 1
call fun
2011-8-20 22:28
0
雪    币: 959
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2011-8-20 23:17
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢大家,回头我去试试
2011-8-21 07:59
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
额,没起作用啊,是不是我写错了,大家帮忙看看

00470060   .  53 4F 46 54 5>ASCII "SOFTWARE\\Micros"
00470070   .  6F 66 74 5C 5>ASCII "oft\\Windows\\Cu"
00470080   .  72 72 65 6E 7>ASCII "rrentVersion\\Ex"
00470090   .  70 6C 6F 72 6>ASCII "plorer\\Browser "
004700A0   .  48 65 6C 70 6>ASCII "Helper Objects\\"
004700B0   .  7B 36 39 39 4>ASCII "{699F265D-7009-4"
004700C0   .  45 33 35 2D 3>ASCII "E35-8B91-6B19B01"
004700D0   .  39 36 37 30 4>ASCII "9670C}",0
004700D7      00            DB 00
004700D8 > $  6A 00         PUSH 0
004700DA   .  90            NOP
004700DB   .  6A 00         PUSH 0                                   ; /pHandle = NULL
004700DD   .  68 60004700   PUSH auclt.00470060                      ; |Subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects\\{699F265D-7009-4E35-8B91-6B19B019670C}"
004700E2   .  68 02000080   PUSH 80000002                            ; |hKey = HKEY_LOCAL_MACHINE
004700E7   .  E8 07BC9577   CALL ADVAPI32.RegCreateKeyA              ; \RegCreateKeyA
004700EC   .^ E9 AF2CFFFF   JMP auclt.00462DA0

我已经将程序入口改成了004700D8。写入注册表后将跳至原来的入口
但实际是注册表没写进去,原来的程序也执行不了,请问一下为什么没成功写入注册表?
我就是想创建HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects\\{699F265D-7009-4E35-8B91-6B19B019670C}
这个项
2011-8-21 08:42
0
雪    币: 1121
活跃值: (752)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=bllqbz;992982]额,没起作用啊,是不是我写错了,大家帮忙看看

LONG RegCreateKey(
  HKEY hKey,        // handle to an open key
  LPCTSTR lpSubKey, // subkey name
  PHKEY phkResult   // buffer for key handle
);

第三个参数是个指针,你PUSH 0,怎么接受返回值

不想弄全局变量,简单的创建指针的操作如下(当然,得考虑不能破坏之前的堆栈,这是感染型病毒常用的一些手法)
push 0
push esp
push    //其他参数
2011-8-21 10:44
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
噢 ,原来如此,刚才试了一下,果然可以,谢谢这位朋友 了
2011-8-21 11:05
0
游客
登录 | 注册 方可回帖
返回
//