吐槽:去年没写出的题,现在终于可以上手了,昂哥nb

  1. 动调发现直接卡着不动了,怀疑是反调试,果然有好几处反调试

  2. 这里选择就不先nop了,先让程序跑起来,然后attach,在输入函数下面下个断点,attach可以理解成接管了程序的运行,个人理解

    所以eip会停在输入函数的里面,我们需要在输入函数下面下断就ok了。



    emmm,下面的反调试已经被我nop掉了,并且发现这个函数已经被hook掉了,然后会陷入死循环,好家伙

  3. 然后开始动调,花指令动调的话,就不用去了,我尝试去,发现挺麻烦的,尤其是这个自修改的eip,还是动调方便



    来到这两个函数,第一个函数跟进去,f7半天,不要f8,f8会直接退出,毕竟这个和常规栈帧还是有区别的!,没啥用,第二个才是重点

  4. f7进去第二个函数进行分析,纯看汇编,苦力活



    计算长度



    将4个字节,小端排序,改成大端



    将前面的结果左移32-某数组[i]的值和前面的值左移某一数组的[i]想与

    后面还有一些移位,就不多阐述了,看汇编就懂了,耐心点

    后面就是前面一个和后面一个每4个字节进行相异或。

  5. exp

c=[0x8C2C133A, 0x0F74CB3F6, 0x0FEDFA6F2, 0x0AB293E3B, 0x26CF8A2A, 0x88A1F279]
k=[3, 16, 13, 4, 19, 11]
t=[]
p=[]
t.append(0x8C2C133A)
for i in range(5):
t.append(c[i]^c[i+1])
print(t)
for i in range(6):
temp=t[i]^(1<<k[i])
temp=(temp>>16)&0xffff|(~(temp<<16)&0xffff0000)
temp=((temp<<k[i])|(temp>>(32-k[i])))&0xffffffff
p.append(str(hex(temp)))
print(p)
for i in p:
print(chr(eval("0x"+i[2:4]))+chr(eval("0x"+i[4:6]))+chr(eval("0x"+i[6:8]))+chr(eval("0x"+i[8:10])),end="")

最新文章

  1. [jv-convert] Error 1,[all-recursive] Error 1
  2. Scalaz(45)- concurrency :Task-函数式多线程编程核心配件
  3. ThinkPHP讲解(五)——数据库配置及Model数据模型层、查询
  4. MySQL 函数积累
  5. 8、网页制作Dreamweaver(jQuery基础:安装、语法)
  6. (function($){...})(jQuery)是什么意思
  7. 【英语】Bingo口语笔记(58) - blow系列
  8. DLL Export 报错
  9. windows 设置脚本IP
  10. 七牛云数据存储Demo
  11. ibatis .net $与#的区别
  12. 2018-2019-2 20165313《网络对抗技术》Exp1 缓冲区溢出实验
  13. CSS深入
  14. MP实战系列(十一)之封装方法详解(续一)
  15. eclipse 格式化快捷键(Ctrl+shift+f)不起作用的解决办法
  16. 【vue】Mac上安装Node和NPM
  17. POJ 2229 Sumsets(技巧题, 背包变形)
  18. WebLogic中WLS 组件漏洞(CVE-2017-10271)专项检测工具
  19. [Vue]组件——使用.native和$listeners将控件的原生事件绑定到组件
  20. ubuntu sudo不能用的解决办法

热门文章

  1. IT行业新闻事件
  2. Jenkins实战应用–Jenkins构建中tag的应用
  3. javascript获取日期,年月,日
  4. YOLO v1到YOLO v4(下)
  5. TensorRT 3:更快的TensorFlow推理和Volta支持
  6. 使用PCAST检测散度以比较GPU和CPU结果
  7. Docker系列——Grafana+Prometheus+Node-exporter微信推送(三)
  8. 开源电路分享のFalling Star Board
  9. Django(58)viewsets视图集详解
  10. 1482. 制作 m 束花所需的最少天数