首页
社区
课程
招聘
[旧帖] [求助]怎么写代码防止函数重复运行 0.00雪花
发表于: 2013-8-7 21:24 2151

[旧帖] [求助]怎么写代码防止函数重复运行 0.00雪花

2013-8-7 21:24
2151
通过劫持ws2_32.dll,运行自己写的函数
ALCDECL MemCode_accept(void)
{
//自己写的函数
mytest();

GetAddress("accept");
        __asm JMP EAX;
}

问题:应该怎么写,让mytest()只在别的程序第一次调用的时候运行,防止被其他程序重复运行。

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
补充一下:因为其他软件会重复调用ws2_32.dll的accept函数,导致mytest()被多次执行,怎么才能只能让其只执行一次,之后的调用都直接跳过。
2013-8-8 11:47
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
static bool bCalled;//声明一个静态变量
if (bCalled == false)
    mytest();
bCalled = true;
2013-8-8 12:02
0
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这样是不行的,因为这个DLL会被别的程序反复的调用,在不同的进程里面会重新运行
2013-8-8 12:46
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
注册表.............
2013-8-11 23:20
0
雪    币: 358
活跃值: (662)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
event、mutex可以用吗?
2013-8-12 00:13
0
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
能不能写个简单的例子呢,谢谢~
2013-8-12 15:40
0
雪    币: 69
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
写出个文件
然后每次调用函数的时候判断文件是否存在
然后加个函数
让别人用的时候在适当时刻删除这个文件。
2013-8-12 16:08
0
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
9
使用特定的进程判定啊 。
比如你的exe为123.exe
使用GetModuleHandle("123.exe") 如果返回不为NULL就表示在你的进程内。然后调用MyTest 在用一个BOOL记录是否运行过了。这样缺点是,模块123.exe名必须唯一,不能还有进程也是123.exe。否则会误判
2013-8-12 16:18
0
雪    币: 358
活跃值: (662)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
可以看msdn, 也可以在网上面搜,一搜一大把!
2013-8-13 16:00
0
游客
登录 | 注册 方可回帖
返回
//