二进制学习记录
看了一段时间二进制,本来想着挖点其他的洞缓一下心情。以为下载的代码是.net或java的,没想到居然是... 呃,算了,试一下也好。会pwn的大表哥发烧烧麻了不在,还好ChatGPT还在。。
Embarc. Delphi XE7 - v10.4 [ Embarcadero Delphi for Win32 compiler version 32.0 (25.0.29899.2631) ]
Microsoft Visual C++ ver. 8.0 DLL - cmp [esp][8],1 ,
Overlay : Signed
一、确定web代码在整个软件系统中的位置
点击启动程序,网站可以打开了,但是web代码并不在启动程序上(那么多的exe还有dll,哪个有web代码)
Process Explorer和Process Monitor定位到了多个exe,比较麻烦,于是我重新想了两个办法。
1、网站抓数据包,全局搜索数据包里面的关键字(路由、参数),就可以找到web代码
2、netstat 查看网站的端口对应的PID,任务管理器看一下PID对应的程序大概率是web服务的。
其实想了三个方法,后面会解释为什么第三个方法没有写。
二、定位代码逻辑
现在找到了放着web代码的可执行程序位置,那么下一步呢,呃,,(脑门一拍),这个参照web代码审计的方法吧。。。先看看路由规则,鉴权方法,sink点。。嗯,大差不差。
网站随便抓了几个数据包,开始搜索字符串定位代码的位置。结果您猜怎么着,菜狗踩坑多!
左边是x64dbg右边是IDA,一个能搜到字符串,一个搜不到(我保证IDA加载完成了)。这里其实让我踩坑挺多的,因为最早我是用IDA一个一个程序搜代码找的web程序,都没搜着!!(能搜到就怪了#方法三)
三、新工具
一直重复 "x64dbg搜字符拿位置,IDA找位置再反编译"
真的受够了,,
入坑Ghidra:
左边IDA 右边Ghidra
个人感觉Ghidra反编译完更舒服哈,代码看起来像是个web系统的。(可能是Ghidra的自动分析系统起作用了,IDA应该需要使用者再修正一下)。
Ghidra字符串搜索也没问题,反编译未报错(IDA部分函数报错了)。
不过感觉还是需要再补点逆向的技能在里面,因为路由和鉴权那块看懂看的挺头大的。
原文始发于微信公众号(星期天不睡懒觉):拿错代码之web?二进制!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论