摘要: https://bbs.pediy.com/thread-260358-1.htm 阅读全文
posted @ 2020-10-01 19:08 Papayo 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 看见给了静态链接库和动态链接库 猜测重要函数应该在链接库里 果然存在一个名为string_to_long 的check函数 还不会逆向lib文件,所以分析dll文件 直接搜索string_to_long函数 找到后分析 这里的技巧就是 只针对我们的输入串找对应函数 因为IDA会高亮相同串 🈶️勾的 阅读全文
posted @ 2020-09-24 18:45 Papayo 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 借鉴于https://www.cnblogs.com/harmonica11/p/13417084.html 这个混淆不清楚叫什么 但是xn 和yn都没有变 所以某些分支永远成立,某些分支永远成立 写脚本去混淆 addr= while(addr<): next_addr = NextHead(add 阅读全文
posted @ 2020-09-24 14:55 Papayo 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 写题解之前我只想说 angr yyds 这里可以确定输入字符串长度为22 直接把标准输入放内存 因为对该内存对值有改变,所以我们存两份到不同到地方 然后开一下优化 sm.one_active.options.add(options.LAZY_SOLVES) 直接跑,然后,然后就出了 这里用的是win 阅读全文
posted @ 2020-09-23 23:35 Papayo 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 跳转到了这里 然后计算得到第一个自解密的首地址 第一个自解密代码 #include<idc.idc> static main() { auto i = 0; for(i=0;i<=0x151;i++) { PatchByte(0x004051FC + i,Byte(0x004051FC + i) ^ 阅读全文
posted @ 2020-09-22 12:45 Papayo 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 阅读ASM发现只有一处运算 其他都是一些内置函数的调用和下标的自增 直接吧result里面转成字符串后每一位异或0x42 发现前四位的偶数位是flag的正确字母 于是我们奇数为不做异或处理 得到flag s = '662e61257b26301d7972751d6b2c6f355f3a38742d7 阅读全文
posted @ 2020-09-21 17:16 Papayo 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 给了flag的格式 根据table运算出flag 直接爆破k验证即可 最开始v186 %= 0x10000 看成了 10000 一直没有跑出来呜呜呜 /* v186 %= 0x10000u; v185 = 8; while ( v185 ) { --v185; for ( j = 22; j; v1 阅读全文
posted @ 2020-09-20 11:59 Papayo 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 有点像base64加密 但是细看结果不太像 因为逻辑很简单 每四位分组加密 直接爆破 table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234{}789+/=" s = "9E9B9C B5FE70 D30FB2 D14F9C 阅读全文
posted @ 2020-09-20 00:08 Papayo 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 这里用到了socket 监控那个端口 收到正确的东西 才会走到‘祝贺’ https://bbs.pediy.com/thread-223473-1.htm 用脚本爆破 得到值 0xa2 然后用这个值进行了自解密 写脚本给IDA #include <idc.idc> static main() { a 阅读全文
posted @ 2020-09-18 23:01 Papayo 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 脚本取自 https://github.com/cq674350529/deflat 首先去平坦化 然后去虚假控制流 之后逆向举行了 主要是了解一下平坦化和虚假控制流 import libnum #unk_402170的前0x30个值 a = [ 0x96,0x62,0x53,0x43,0x6D,0 阅读全文
posted @ 2020-09-17 21:27 Papayo 阅读(445) 评论(0) 推荐(0) 编辑