第二届广东省大学生网络攻防大赛 simple_re

流程总结:(思路原文出自 JANlittle 师傅)
程序将关键函数以对象元素的形式存在对象里,然后在申请内存中搭配指针间接调用,关键是把内存空间中对应位置的函数和变量用流程图梳理清除。
sub_140002110 有反调试,主要是 IsDebuggerPresent 和获取 ThreadContext 并检测是否有硬件断点。
加密流程为先打乱每个字节的比特顺序,其实就是把比特串倒过来;然后利用打乱比特顺序的前 4 字节输入 SMC 解密一段代码,并开一个线程检测 SMC 解密后的代码段是否有 0xcc,有的话说明前 4 字节输入错误;之后调用上述代码段进行魔改 XTEA 加密。
.
.
下载程序,照例扔入 exeinfope 中查看信息:

.
.
64 位 exe 文件,无壳,照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:



.
.
第一部分是输入字符比特流倒序,接下来我们看第二部分:







.
.
第二部分的 SMC 解密处后面再说,因为要用到第三部分的数据,所以卡住不要紧张,说不定答案在后面呢。现在我们来看第三部分:






.
.
第三部分——用 Str1 的前 4 个字节生成 SMC 代码:

b=[  0x27, 0x44, 0x7F, 0xEB, 0x3A, 0x8F, 0x1A, 0x2E, 0xFB, 0x41, 0xE6, 0x46, 0xFB, 0x59, 0xEE, 0x42, 0xFB, 0x49, 0xD6, 0x46, 0xF9, 0x49, 0xEE, 0x85, 0x72, 0x85, 0xB3, 0xF6, 0x3A, 0x87, 0xB3, 0x16, 0xF9, 0x4C, 0xF2, 0x87, 0x37, 0xF8, 0x31, 0x4B, 0x82, 0x0C, 0xF6, 0x0E, 0x72, 0xCB, 0xB3, 0xE2, 0x0D, 0xA0, 0x9C, 0x89, 0xB5, 0x49, 0x0A, 0x0E, 0x72, 0x0C, 0xF6, 0x85, 0x37, 0xF0, 0xCD, 0x4B, 0x62, 0x03, 0x75, 0x8A, 0x72, 0x0C, 0xF6, 0x85, 0x37, 0xF8, 0x7B, 0x1A, 0xB7, 0x0C, 0xF6, 0x0E, 0x72, 0x87, 0xB3, 0xFA, 0xB3, 0xE4, 0xF0, 0x3F, 0xB0, 0x87, 0xB3, 0xFA, 0x73, 0xCE, 0x7D, 0x4B, 0x82, 0x8F, 0x16, 0x0D, 0x3A, 0x81, 0xFA, 0x8B, 0x72, 0x0C, 0xF6, 0x0E, 0x3A, 0x87, 0xB3, 0x2E, 0x3A, 0x0D, 0x3E, 0x85, 0x7A, 0x87, 0xB3, 0xFE, 0x73, 0xC4, 0xC7, 0xDE, 0x73, 0x49, 0x0E, 0x85, 0x37, 0xE0, 0xF7, 0x4B, 0x82, 0x87, 0xB3, 0xF6, 0xFF, 0x18, 0x33, 0x0E, 0x72, 0x0C, 0xF6, 0x85, 0x37, 0xF4, 0x37, 0xE6, 0x74, 0x3D, 0x34, 0x85, 0x37, 0xF4, 0xF7, 0xCC, 0xF9, 0x49, 0x06, 0xCF, 0x9A, 0x07, 0x7F, 0xCE, 0xF1, 0xEC, 0xF5, 0x46, 0xFF, 0x00, 0x73, 0x0E, 0x72, 0x0C, 0xF6, 0x46, 0xF9, 0x49, 0xD6, 0x46, 0x73, 0xC4, 0x7D, 0x06, 0xF9, 0x49, 0x06, 0x0F, 0xBA, 0x3D, 0x26, 0x0F, 0x37, 0xF8, 0x75, 0x4B, 0x8E, 0x0D, 0x1F, 0x7E, 0x8D, 0xF3, 0x09, 0x46, 0xF9, 0x49, 0xEE, 0x85, 0x27, 0xF4, 0x7F, 0x1E, 0x3A, 0x87, 0xB3, 0x16, 0x3A, 0x8F, 0x36, 0x0A, 0xF9, 0x59, 0x02, 0x87, 0x62, 0x9C, 0xBE, 0x8D, 0xB6, 0x2C, 0xAB, 0xCD]Str1=[0x72, 0x0C, 0xF6, 0x0E]address=0x140042000
for i in range(232):patch_byte(address+i,Str1[i%4]^b[i])print("success")



.
.
最后梳理流程,写解密代码:(代码出自 JANlittle 师傅)**

#include <stdio.h>
#include <stdint.h>void decipher(unsigned int num_rounds,uint32_t v[2],uint32_t const key[4]){unsigned int i;uint32_t v0 = v[0], v1 = v[1], delta = 0x78955381, sum = delta * -num_rounds;for(i = 0; i < num_rounds; i++){v1 -= (((v0 << 3) ^ (v0 >> 6))+v0) ^ (sum + key[(sum >> 11) & 3]);sum += delta;v0 -= (((v1 << 3) ^ (v1 >> 6)) + v1) ^ (sum + key[sum & 3]);} v[0] = v0; v[1] = v1;
}uint8_t rebits(uint8_t n)
{uint8_t count = 0;for(int i = 0; i < 8; i++){count = count *2 + n % 2;         n /= 2;
//超简便的 bit 逆序算法, + n % 2 就是取 8 bit 最后一位,搭配  *2 就是从 0 开始不断把最后一位往前移动,n / 2 是无余数的也就是不断舍弃最后一位 }return count;
}int main(){uint8_t enc[]={0x72, 0x0C, 0xF6, 0x0E, 0x8C, 0x69, 0x23, 0x69, 0x59, 0xA8, 0x06, 0xEF, 0x2A, 0x1A, 0x56, 0xB6, 0x96, 0xAC, 0xEE, 0x92,0x5C, 0xF2, 0xED, 0x0A, 0x5F, 0x36, 0x8E, 0x41, 0xA6, 0x36, 0x86, 0x72, 0x56, 0xD2, 0x54, 0xC2, 0x00, 0xC8, 0xA8, 0x00};uint8_t key1[33] = "Welcome to the g";                            //适用于 IDA 单 bit 或字符串取数 uint8_t key2[32] = "ame!\nYour key: ";        unsigned int r=12;             //这里是加密轮数,自己设置 decipher(r,(uint32_t *)(enc+4),(const uint32_t *)key1);          //适用于 IDA 单个 bit 取数的类型强制转换法 decipher(r,(uint32_t *)(enc+20),(const uint32_t *)key2);for(int i =0; i < 40; i++)enc[i]=rebits(enc[i]);printf("%s",enc);return 0;
}


.
.

.
.
参考博客:
http://blog.leanote.com/post/xp0int/2022-%E5%B9%BF%E4%B8%9C%E7%9C%81%E5%A4%A7%E5%AD%A6%E7%94%9F%E7%BD%91%E7%BB%9C%E6%94%BB%E9%98%B2%E5%A4%A7%E8%B5%9B%E9%83%A8%E5%88%86#p-4

第二届广东省大学生网络攻防大赛 simple_re相关推荐

  1. 戴红计算机网络安全,我校举办第二届信息安全与网络攻防竞赛

    11月28日,我校第二届信息安全与网络攻防竞赛在我校计算机学院实验中心举办.来自全校的十组选手同台竞技,各显神通.最终,计算机学院"戴着小红帽的大灰狼"."黑曼巴&quo ...

  2. “曹光群杯·第二届全国大学生绿色化妆品创新创意大赛”启动仪式在沪举办

    2023年5月12日,"曹光群杯·第二届全国大学生绿色化妆品创新创意大赛"启动仪式在2023中国化妆品产学研协同创新论坛上举行. 曹光群杯·第二届全国大学生绿色化妆品创新创意大赛启 ...

  3. 第七届XCTF国际网络攻防联赛总决赛战队巡礼!

    Super Guesser国际联合战队创建于2020年,成立伊始便在HITCON.SECCON.Dragon CTF等大型国际CTF赛事中大放异彩,接连斩获赛事冠军.2021年,Super Guess ...

  4. 物流设计大赛优秀作品_第四届广东省大学生物流设计大赛之五邑大学校园选拔赛通知...

    比赛介绍 第四届广东省大学生物流设计大赛 为顺应"大众创业.万众创新"的时代大潮,提高大学 生创新精神.创业意识和创新创业能力,加快高素质物流人 才队伍建设,加强各高校师生间的交流 ...

  5. 第二届全国大学生网络安全精英赛初赛笔记

    第二届全国大学生网络安全精英赛初赛笔记 模拟题(一) 1.通信保密阶段开始于20世纪40年代,其时代标志是1949年香农发表的<保密系统的信息理论>,该理论首次将密码学的研究纳入了科学的轨 ...

  6. 计算机应用技能大赛方案,第二届计算机办公软件操作技能大赛策划书

    与<第二届计算机办公软件操作技能大赛策划书>相关的范文 1车工技能大赛策划书 第一章竞赛项目及内容 一.竞赛项目 普通车工.管螺纹车工 二.竞赛内容与方式 各工种的竞赛内容包括理论知识和操 ...

  7. 雷霆复鸣 决战巅峰 | 第七届XCTF国际网络攻防联赛总决赛即刻启航!

    2023年3月29日,第七届XCTF国际网络攻防联赛总决赛回归六朝古都,继首届XCTF联赛总决赛之后,再度于江苏南京盛大举办.本届大赛由XCTF国际网络攻防联赛组委会发起,国家创新与发展战略研究会主办 ...

  8. 太原理工大学计算机学院向洁,第二届中国大学生服装模特大赛决赛入围名单出炉...

    作为第三届中国(深圳)国际时装节的重头戏,有着"中国大学生模特第一赛事"之称的第二届中国大学生服装模特大赛将于2018年1月中旬举行.日前,第三届中国(深圳)国际时装节组委会公布了 ...

  9. 第七届XCTF国际网络攻防联赛总决赛圆满落幕!

    2023年3月30日,第七届XCTF国际网络攻防联赛总决赛正式落幕.本届大赛由XCTF国际网络攻防联赛组委会发起,国家创新与发展战略研究会主办,赛宁网安承办并提供技术支撑,r3kapig战队命题. 在 ...

  10. 第9届全国大学生 GIS 技能大赛下午试题详解(下)附练习数据

    01 数据说明 主要道路.shp:江苏省主要道路数据来源于 OpenStreet 网站. 江苏省省界.shp:江苏省行政区面数据. 江苏市届.shp:江苏省地级市面数据. 江苏县界.shp:江苏省区县 ...

最新文章

  1. [2008.06.10 23:20:00] 心智成熟的旅程
  2. 话里话外:为什么管理咨询业必须走专业化服务之路
  3. [转]Docker 大势已去,Podman 即将崛起
  4. java 反射 内存_Java内存到反射入门
  5. 玩具(BZOJ-1307)
  6. mongodb转mysql思路_脚本 将阿里云 mongodb数据转成mysql
  7. pandas中size方法_eplot,在pandas中流畅的使用pyecharts!
  8. 路由器的地址转换功能
  9. 关于javascript控制系统弹出下载提示 用以下载图片
  10. python 伪多线程_从伪并行的 Python 多线程说起
  11. 小程序发布提审被驳回,提示当前提审小程序代码包中地理位置相关接口wx.getLocation暂未开通
  12. 计算机教案word格式模板,大学授课教案模板Word格式
  13. 魔方心得-20180227
  14. C盘爆红,一个操作将微信缓存踢走
  15. 10分钟搞定图形图像识别
  16. 说说Stack Overflow和Quora
  17. 批处理bat schtasks 启动远程应用
  18. 高次osu(重邮第13届ACM程序设计大赛-网络赛)
  19. edvac是商用计算机吗,EDVAC(eniac与edvac的区别)
  20. 云集品以共享经济为幌子因涉及传销被关闭,做社交电商防止误入

热门文章

  1. 如何做一个基于微信外卖点餐小程序系统毕业设计毕设作品
  2. OBS推流 rtmp服务器(docker) python opencv拉流
  3. no serializer
  4. 人工智能简史+电子版原文
  5. Testbed静态分析
  6. MATLAB 画柱状图并修改横坐标名称
  7. Ruckus 7372 Multimedia Hotzone Wireless AP 配置
  8. [转]CRC8校验详细说明
  9. 关于IE11浏览器不能正确调用ActiveX控件的解决办法
  10. 中国GBA模拟器先驱李可文不幸去世