飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5896|回复: 13

说说关于exe添加api的应用!

  [复制链接]
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-6-3 11:54:03 | 显示全部楼层 |阅读模式
    本帖最后由 whypro 于 2010-6-3 13:01 编辑

    #include <stdio.h>
    void main(){
            printf("自己试试\n");
    }

    上面这段小程序大家都明白吧!编译连接生成test.exe。
    下面od上场,载入编译好的test.exe。
    我们来到这里(用字符搜索“自己试试”)

    Snap1.gif
    其中push add.0042201C正好是printf的参数,但是我们想加一点东西进去。
    比如改成“自己看看”,但我们这次要加入函数MessageBoxA
    第一步 打开LordPE点击PE编辑器载入text.exe。
    Snap2.gif
    再选目录
    Snap3.gif
    再选输入表
    Snap4.gif
    我们常用的api都是靠他导入的,下面我们来加一个函数MessageBoxA。
    在kernel32.dll 上单击右键
    Snap5.gif
    选择添加导入表出现对话框如图
    Snap6.gif
    键入你要的函数,然后点加号
    Snap7.gif
    我们点击USER32.DLL看看,注意一下:
    thunkRva:0002C019这个我们会用到的
    Snap8.gif
    PE上的东东搞定了。(别忘记点击保存O(∩_∩)O~)
    我们开始搞一下test.exe
    让我们的MessageBoxA运行起来!
    载入od我们来到这里
    Snap9.gif
    我们的目的是先运行MessageBoxA然后运行printf
    但是我们没有地方写代码呀!
    00401028  |.  68 1C204200   push add.0042201C                                  ; /Arg1 = 0042201C
    0040102D  |.  E8 2E000000   call add.00401060                                  ; \add.00401060
    参数和printf连个缝隙都没有,哎没有办法我们自己造!
    我们alt+m打开内存。看看.text有多大
    Snap10.gif
    401000+00021000=00422000
    我们看看422000以内有没有空位,我们占个座!
    Snap11.gif
    好多00,这回有的玩了,我们就选00411890了。
    好了键入代码
       push add.0042201C改成jmp 0x411890
    在地址411890下打入
       xor ebx,ebx
       push ebx                                 
       push 0x0                                 
       push 0x0                                 
       xor eax,eax                           
       push eax                                
       call dword ptr ds:[0x42C019]<-------400000+0002C019<----thunkRva+基址<---MessageBoxA
       push add2.0042201C<-----printf的参数
       jmp add2.0040102D<-----返回到函数printf开始调用
    我都写好了哈哈!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-4-26 10:19
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2010-6-3 12:05:27 | 显示全部楼层
    都做起了PE的二次开发啦?/:good
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    3 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2010-6-3 12:14:59 | 显示全部楼层
    我觉得Hook 来的直接~~

    用DLL实现,更加方便~

    也是本人最常用的方式。。。呵呵
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-10-9 09:15
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-6-3 13:02:23 | 显示全部楼层
    可以把以前的修改记事本的文章copy过来
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2010-6-3 13:05:20 | 显示全部楼层
    /:012  这回真是自己动手做的!
    高手你手下留情呀!
    PYG19周年生日快乐!
  • TA的每日心情

    2017-7-19 15:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-6-3 13:09:11 | 显示全部楼层
    用LordPE添加API会给程序加个区段,这样编程就不美了,还是手动添加的好/:018
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2010-6-3 13:12:49 | 显示全部楼层
    本帖最后由 whypro 于 2010-6-3 13:22 编辑

    yayazhi大牛 我水平有限呀! 谢谢关注
    PYG19周年生日快乐!
  • TA的每日心情

    2017-7-19 15:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-6-3 13:38:05 | 显示全部楼层
    我多嘴了:shutup:,莫怪
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2010-6-3 13:46:25 | 显示全部楼层
    没事的,我倒是想知道完全手工是怎么搞定了!谢谢yayazhi大牛
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-2-19 14:43
  • 签到天数: 69 天

    [LV.6]常住居民II

    发表于 2010-6-3 13:54:56 | 显示全部楼层
    高手些~~~我一个一个学!!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表