首页
社区
课程
招聘
[旧帖] OD脚本如何调用带字符串API或Call 0.00雪花
发表于: 2016-4-11 20:01 2530

[旧帖] OD脚本如何调用带字符串API或Call 0.00雪花

2016-4-11 20:01
2530
如果要调用一个API,如MessageBoxA,需要传入2个字符串,这时候该怎么写?求指教

我准备写的脚本是:
调试模块中有一个负责解密的Call,需要传入一个字符串作为参数,我的想法是找到它所有的加密字符串,然后用"ask"指令输入,然后调用解密call,将解密结果输出出来。

或者一个可能的方式是在脚本中申请一段内存,将字符串拷贝过去,然后将内存指针传给该call,但不知道在脚本中怎么实现

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 659
活跃值: (484)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
摸索了下,自己找到方法了,申请一段内存,把字符串拷贝过去,然后查找API地址,用寄存器传过去,然后在exec中调用即可:

#log

var pszEncrypt
var pMem
var dwSize
var dwEax
var dwEcx

mov pszEncrypt, "test"
len pszEncrypt
mov dwSize, $RESULT
inc dwSize
alloc dwSize
test $RESULT, $RESULT
jz l_End

mov pMem, $RESULT
mov [pMem], pszEncrypt
gpa "MessageBoxA", "user32.dll"

//store eax, ecx
mov dwEax, eax
mov dwEcx, ecx
mov ecx, $RESULT
mov eax, pMem

exec
pushad

push 0
push eax
push eax
push 0
call ecx

popad
ende

free pMem
mov eax, dwEax
mov ecx, dwEcx
l_End:
ret
2016-4-11 21:29
0
游客
登录 | 注册 方可回帖
返回
//