首页
社区
课程
招聘
[原创]一个嵌入大量代码的玩具。
2017-1-8 18:10 4388

[原创]一个嵌入大量代码的玩具。

2017-1-8 18:10
4388
内置一个(如果你够贪心,放一堆也行)动态链接库,让你的程序胖起来。如果你放了一大堆东西,反汇编时被当作数据忽略了,那基本上没有增加难度。
    这个例子中放了WinXP的shell32.dll,故意做了一个调用表(为简单起见,我忽略了形参个数和堆栈平衡,其实根本不会调用它们),用IDA反汇编时会逐个分析这些导出函数。如果你想做得有点迷惑性,需要处理文件头(清零、随机填充或者掐掉文件头重新计算偏移量),对字符串做特征消隐,把导出的函数名全部清掉(都是体力活),并且跟代码放到同一个段中(例子中是.xtext)。
    如果是做注册校验,可以把校验函数跟这些导出函数混在一起(增加、替换、……都行啊,随便你啦。这是手工活,可以做得很简陋,也可以做得很精致),这么大的switch-case逐个静态分析很费事。你需要做的就是如何保证输错了不会把程序崩掉,也不会把操作系统挂掉(这个是技术活,但不难,略)。
    示例而已,没任何实际用途。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 353
活跃值: (57)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
DoItFreely 3 2017-1-8 18:16
2
0
这个是用来转换dll的。使用的是.xtext段,属性是initialized, readonly, execute.

提示一下:比如第一个形参要求是一个有效指针,而你能保证第一个实参永远是0/NULL的话,这样的函数不需要处理,你怎么调用它也不会导致程序崩溃或者系统挂掉。
上传的附件:
雪    币: 435
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqsunqiang 2017-1-8 18:20
3
0
谢谢楼主的分享。
游客
登录 | 注册 方可回帖
返回