首页
社区
课程
招聘
[原创]抛砖,无导入表程序的实现以及自我补丁
发表于: 2014-1-18 15:35 12393

[原创]抛砖,无导入表程序的实现以及自我补丁

2014-1-18 15:35
12393

【文章标题】: 抛砖,求转正,无导入表程序的实现以及自我补丁
【文章作者】: 白吃
【作者声明】: 我很菜,但我很诚心的想交些朋友。
--------------------------------------------------------------------------------
【详细过程】
  感谢看雪分享技术的前辈们的分享让我学习了不少,学习之路无尽头, 学习之中求朋友,我想以此抛个砖,望求一些志同道合的朋友
  为什么选择写个远程序控制软件呢?
  因为这涉及的知识面比较广(如果服务端很多,怎么去写一个能承受的服务器,或者说有什么办法可以通过web来管理这些机器),我想这应该可以成为一个项目,而且可以用来实践各种技术
  我打算能认识几个朋友,把源码放到github或者oschina上,大家一起玩。
  还有就是建个群,对于提交源码和对此感兴趣的朋友可在群里一起讨论。如觉得可行的可以加我。加我注明来自看雪。
  
  简单说下源码:
  
  1.无导入表
  通过函数的Hash值来调用函数
  
  2.采用了简单的补丁
  就是将代码段设为可写,将原来通过函数Hash寻找函数地址来调用函数的方式,改变成直接调用函数地址的形式,当再次执行到这段代码的时候省去了重新寻找函数地址的麻烦
  
  主要是通过代码里自己实现的_invoke函数来实现.具体见源码里的.imports.inc说明
  
  ;举个StdCall的例子,如果是C call处理办法类似(如ntdll.dll里的 memcpy等就是C call的调用方式)
  


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 5
支持
分享
最新回复 (24)
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
无导入表动态代码?
2014-1-18 16:23
0
雪    币: 350
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用不用这么麻烦...用delayload就可以, 无须修改现有代码, 给你个bin看看
上传的附件:
2014-1-18 16:26
0
雪    币: 6566
活跃值: (4526)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4
我很菜,但我很诚心的想交些朋友。
2014-1-18 19:16
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2014-1-18 21:14
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
6
就是想不使用导入表来写代码,其实原本是想如何写个程序用记事本打开看不到使用了什么函数,后来发现其实可以实现的,而且代码还是有可读性的。反正就是和来尝试各种好玩的东西。
2014-1-19 02:03
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
其实并不感觉麻烦啊,不知道觉得哪麻烦了,我逆向很菜,没源码我分析不了你的bin
2014-1-19 02:04
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
8
好像都没人理解我要表达的意思,看来我的表达能力太差了,得先去补补语文……
2014-1-19 02:19
0
雪    币: 350
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你的还要patch, 还要写上千行asm
我的编译出来就天生没有IAT
2014-1-19 02:21
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
10
没有要上千行吧,你看代码了吗,我patch只是为了下次再调用这段代码时不需要再去GetProcessAddress而已……,你能分享下你的源码不,bin看了半天没看懂,用记事本打开倒是看到了一些函数名
2014-1-19 02:26
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
11
我再看了下improts.asm 边空行什么的加起来都没150行代码,再写个invoke宏简化下_invoke的调用,也不会超过160行吧。而所有的代码是包含了安装服务,还有一个cmd shell的代码还有socket连接还有简单的一个包的解析函数
2014-1-19 02:32
0
雪    币: 19
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
看完了。
2014-1-19 08:24
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
13
没必要这么麻烦,loadLIb(),然后加密lib导入信息,用不着汇编
而且现在的云杀毒是通过在云端预执行代码来检测的
真想学东西就多看些开源项目,做些逆向
2014-1-19 13:04
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
14
不是写木马……
2014-1-19 18:13
0
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
mark
2014-1-20 08:41
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
16
想写远程控制了。。还不算是木马额
2014-1-20 09:34
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
mark
2014-1-20 16:29
0
雪    币: 80
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
记得好多年前小鱼的教程就是这么讲的
2014-1-21 17:01
0
雪    币: 119
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
感谢分享,今年第一次冒泡
2014-2-4 17:02
0
雪    币: 163
活跃值: (1623)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
20
用IDA6.1看,照样能看到输入表信息.
2014-2-7 09:57
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
还以为已经有了一个exe,然后运行你的程序以后这个exe就没有导入表了,原来是源代码里面生成就弄掉呀。
2014-2-7 10:53
0
雪    币: 138
活跃值: (306)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
22
我一般是直接写shellcode
2014-2-7 11:05
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
你这个有任何处理导入表的问题?还是被任何修改导入表?

void DelayFunc()
{
    ...;
}

int print(char* format, ...)
{
    va_list ;
    ....;
}

void __stdcall TimerProc (PVOID TimerContext, ULONG TimerLowValue, LONG TimerHighValue )
{
    print("%p\n", TimerContext);
}

void entrypoint()
{
    HANDLE TimerHandle;
    NTSTATUS status = STATUS_UNSUCCESSFUL;
    if( NT_SUCCESS(NtCreateTimer(&TimerHandle, 0x1F0003, 0, 1)) )
    {
        LARGE_INTEGER DueTime;
        DueTime.LowPart = 0xFD050F80;
        DueTime.HighPart = -1;
        status = NtSetTimer(TimerHandle, &DueTime, TimerProc, 0xC350, NULL);
        NtClose(TimerHandle);
    }
    if (NT_SUCCESS(status))
    {
        print("start\n");
        DelayFunc();
    }
}
2014-2-7 11:27
0
雪    币: 108
活跃值: (44)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
标记,学习。
2014-2-7 14:00
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
25
在我们眼里,程序就是程序,没什么木马杀软三类九别。
你去找找就知道,有些部分,木马里的代码和杀软里的代码没啥区别
2014-2-9 06:44
0
游客
登录 | 注册 方可回帖
返回
//