08067-wp


cm50

  • 程序类型 : .net程序
  • 关键数据 :

int32 pn[] # 存储号码内容

this.point # 存储号码长度

this.contrast[] # 结果对比字符串

  • 关键函数 button12_click
  • 分析得到要求 (根据.net rlector 反编译结果):
  1. 正确结果长度为 5
  2. pn 每个元素 ^4 后 结果为[52 , 60 , 52 ,50 ,51] (this.contrast[])
#根据处理过程逆推 输入的号码
result = [52 , 60 , 52 ,50 ,51]
for i in result:
    print(chr(i ^ 4) , end = " ")  #结果 0 8 0 6 7

cm100

  • 程序类型 : MFC
  • 新的知识点 : od 获取输入框输入的断点 bp GetWindowTextA(W)
    。在命令框中输入文字后程序断在该api处 ,然后使用alt + f9 从 user32块 返回到 CM100的程序段 ,再从 cm100 的调用块 返回到逻辑块 即可找到 目标代码段 ,返回后的地址在 4026A6 , 从ida中找到该地址( 在函数sub_402600中) ,根据下图两个字符串 找到关键函数 (改名为target)


    alt
  • tip :
  • 1.sub_402600 # 最终判断函数
  • 2.sub_402310 # 处理和判断输入函数 :要求 :返回值不为0 即为成功

处理过程 :

  • 1.对输入的 奇偶数位置 的字符交换 如 0 - 1 交换 7轮 外循环
  • 2.对输入的 4的倍数位置交换 4-8 8-12 12-16 3轮 内循环
  • 3 .解题方法 : 逆过程 , 得出结果
result = list("1H@Y1S0718760Dm3")

start = 14
for i in range(7):
    start -= 2
    temp_start = 12
    while temp_start  > 0 :  
        result[temp_start ] , result [temp_start - 4] = result[temp_start - 4] , result[temp_start ]
        temp_start -= 4
    result[start] , result[start + 1] = result[start + 1] , result[start]
for i in result:
    print(i , end="")

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,876评论 0 9
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,708评论 0 3
  • 2018.4.17周二晴暖三年级十二班李淑颖麻麻 嗯,一一整天又是见不上俩孩子,小弟昨晚磕到鼻子啦,当时没看出怎么...
    lsy颖阅读 257评论 0 0
  • 一条线 顺流而下 环抱群岚 缠绕出岁月花红的模样 一声鸟啼,就这样 被镶在了千古绝唱的 卷轴中 珠帘内幽梦般的故事...
    酒酿荼蘼阅读 706评论 3 2
  • 新博客地址:http://gengliming.com Preamble 别说话,快看 关于浏览器 浏览器工作原理...
    CoderGLM阅读 310评论 0 1

友情链接更多精彩内容