exe逆向,首先查壳,发现有upx壳,upx -d脱壳,拖进ida
找到主函数

这里可以看到创建了两个线程,先沿着StartAddress,

一直找到sub_411940,这里有一个问题,当使用f5是,会显示

这是由于堆栈不平衡导致的,看汇编部分

这里要将 -04改为00

改完后

之后再次f5

找到了加密函数,这是将字符串进行了替换,当字符是大写字母时,替换为off_418000处-38,小写则替换后-96
这时回过头来看第二个线程

这个函数使对字符串的加密是隔一个字加密,也就是在奇数位时加密,偶数位时不变,

看一下数据

写解密脚本

off_418000 = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"

off_418004 = "TOiZiZtOrYaToUwPnToBsOaOapsyS"

flag=''

for i in range(len(off_418004)):
if i %2 == 0:
flag += off_418004[i]
continue
for j,k in enumerate(off_418000):
if off_418004[i] == k:
if chr(j+38).isupper():
flag += chr(j+38)
else:
flag += chr(j+96) print flag

得到flag,但最后

在比对时只比对了29位,所以得出的flag少了一位,所以需要再加一位提交。

最新文章

  1. tomcat远程部署应用
  2. 使用System.Drawing.Imaging.dll进行图片的合并
  3. 【练习】ORACLE统计信息--直方图
  4. 介绍一点.NET反编译的知识
  5. XEE介绍
  6. Python进行文本处理
  7. “崩溃了?不可能,我全 Catch 住了” | Java 异常处理
  8. DP的优化总结
  9. [Swift]LeetCode82. 删除排序链表中的重复元素 II | Remove Duplicates from Sorted List II
  10. easyui - 标签属性顺序要对 否则options 错误
  11. Sentinel 简介与API订阅发布
  12. UVA-10318 Security Panel (DFS+剪枝)
  13. 设计模式之——visitor模式
  14. The record of Rf module debugging (1)
  15. 记录一次teamview无法远程连接对方teamview的过程
  16. python基础(4)
  17. caffe2安装教程
  18. sql语句中的问号是干什么的???
  19. 备份当前的ubuntu系统生成iso
  20. ZOJ1608 Two Circles and a Rectangle

热门文章

  1. DTS
  2. geometry_msgs的ros message 类型赋值
  3. 六、SQL语句进行多条件查询,并解决参数为空的情况
  4. vue之click事件绑定
  5. C++ KMP文本匹配
  6. Gitbook环境搭建及制作——2019年10月24日
  7. JavaSE---JDK提供的命令行工具---javap
  8. linux开机启动jar
  9. MongoDB笔记【2】——基本概念和基本指令
  10. boost algorithm