C语言:应用程序增加库函数rand的步骤

         rand函数用来生成随机数,函数原型为int rand( void );

         返回值为生成的随机数,范围0~32767。在调用rand之前可以用srand函数初始化随机数发生器来生成更随机的数。

        可以通过%取模运算来生成一定范围内的随机数。

        在应用程序,希望通过生成随机数,来产生20~26范围之间的浮点数。用OD打开应用程序,在函数导入表中没找到rand,需要手动添加。好在Stub_PE工具可以很方便导入库函数。

        用Stub_PE打开应用程序,在Functions窗格。

 

        点击右键,选择Add New Import

        Dll Select选择MSVCRTD.DLL,Select func.选择rand,点击Add to list,因为只想增加rand函数,最后点击ADD按钮

        Stub_PE增加newimp节,里面为rand函数。

 

 

        OD打开应用程序,右键选择查打-当前模块的名称(标签),可以看到导入函数表中有rand函数,地址为0x00681174。

 

        在导入函数的空余位置,点击汇编,输入jmp dword ptr ds:[0x681174]

 

当前地址为0x0054A372.

        在需要插入rand函数处,输入汇编call 0054A372 ,OD自动识别出调用函数rand

 

         然后对5000取模,转成浮点数,除以200,加上20.3基数,应用程序就可以生成20~26之间的浮点数了~

posted @ 2020-12-11 14:47  webccaa  阅读(171)  评论(0编辑  收藏  举报