吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 93255|回复: 551

[Android 原创] 《教我兄弟学Android逆向01 编写第一个Android程序》

    [复制链接]
会飞的丑小鸭 发表于 2017-9-30 14:27
本帖最后由 会飞的丑小鸭 于 2018-7-19 10:19 编辑


前言

之所以准备写这系列逆向的教程是因为有一些同学私信我说自己想学习Android逆向但是不知道怎么去学习 包括自己身边的一些计算机专业的同学 在大学里面老师讲的那些东西要么是自己不感兴趣 要么是自己上课不学习 大学美好的时光都浪费在了陪同学一起去网吧打游戏上面了 反正大学几年过去了 自己也没有学到一些有用的知识 现在他们即将面临着毕业要出去找工作 但是自己什么都不会 而且计算机相关的工作又分为好多种 自己也不知道怎么去选择以后从事的工作 所以就会感到很迷茫   网上教程是找到一大堆 大多讲的都很杂 看了都看不懂 云里雾里的感觉 也有不少同学刚接触Android逆向或者说也学习了一段时间的逆向了 但是还是不知道自己学的啥 感到很迷茫 然后一些同学就找到了我 想跟我学习Android逆向  让我教他们一些逆向相关的知识 当然其中也有我的一个好兄弟-威 威就是这样一个即将面临毕业 对于未来很迷茫 想通过学习Android逆向知识找到未来方向的一个人 但是他之前从来没有接触过逆向 完完全全小白一个 现在他的目的只有一个 从现在开始跟我学习Android逆向 学习三到四个月 也就是到明年二月份之前找到一份Android逆向相关的工作 由于他和我不是在同一所大学 我没法通过面对面方式的去教他逆向 所以就有了《教我兄弟学Android逆向》系列教程的出现 从今天开始我会通过写教程的方式手把手的教他学习逆向 教程也会放到吾爱上面让更多想学习逆向的同学们得以练习 教程会通过由浅入深的方式给大家呈现 那么想学习逆向当然是离不开正向编程的相关知识的 于是第一篇教程《教我兄弟学Android逆向01 编写第一个Android程序》就这样出现了

下面开始今天的课程:

一.  编写第一个Android程序

1 在自己电脑上下载Android Studio程序 下载地址:http://www.android-studio.org/index.php/download/hisversion 这里我用的是2.2.3版本 安装过程自己百度
2 安装完成后打开程序按照以下截图顺序 填写和选择对应的内容 一路Next最后点Finsh 建立完成第一个Android项目(详细的不介绍 不懂的百度"AS编写第一个Android项目")
1.png
2.png
3.png
4.png
5.png

3 进入到主程序 这里选择Project 然后点击MyApplication\app\src\main\res\layout 目录下的activity_main.xml
6.png
7.png

4.把拖拉框上面的Textview,Plain Test ,Button控件拖拉到屏幕上来 通过更改右侧对应的ID和text内容控制控件的属性 完成如图所示
这里拖拉了两个Textview,两个Plain Test和一个Button控件

8.png
5.点开MainActivity页面 编写相应的Android代码
package hfdcxy.com.myapplication;
import android.support.v7.app.AppCompatActivity
;
import android.os.Bundle
;
import android.view.View
;
import android.widget.Button
;
import android.widget.EditText
;
import android.widget.Toast
;

public class MainActivity extends AppCompatActivity {
EditText Name;
//定义Plain Test控件第一个输入框的名字
EditText Pass;
//定义Plain Test控件第二个输入框的名字
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
;
setContentView(R.layout.activity_main)
;
Name = (EditText) findViewById(R.id.TEXT_NAME);
//通过findViewById找到输入框控件对应的id并给它起一个名字
Pass = (EditText) findViewById(R.id.TEST_PASS);
//通过findViewById找到输入框控件对应的id并给它起一个名字
Button Login = (Button) findViewById(R.id.BTN_Login);
//通过findViewById找到按钮控件对应的id并给它起一个名字
Login.setOnClickListener(new View.OnClickListener() {
//监听有没有点击按钮控件 如果点击了就会执行onClick函数
@Override
public void onClick(View view) {
check(Name.getText().toString().trim(),Pass.getText().toString().trim());
//调用check函数
}
})
;
}
public void check(String name,String pass)
//自定义函数check 这里用来检查用户名和密码是否是hfdcxy和1234
{
if(name.equals("hfdcxy")&&pass.equals("1234"))
{
Toast.makeText(MainActivity.this,"登录成功", Toast.LENGTH_SHORT).show();
//弹框
}
else
Toast.makeText(MainActivity.this,"登录失败", Toast.LENGTH_SHORT).show();
//弹框
}
}

6.点击Build 点击Build Apk 生成第一个Android程序
9.png
10.png
7 点击Build Apk 完成后右上角会出现 Show in Explorer 点击它 然后打开命令行 输入命令adb install 把app-debug.apk拉到命令行中完成后点回车 我们编译出的apk程序就成功安装到手机上了
11.png
12.png



二 . 总结:本篇文章通过手把手的方式带大家走近Android的世界  目的是为了以后的反编译做准备 想学Android逆向必须要懂的正向编程 那么这篇文章也是一个抛砖引玉的过程 过程讲的可能不这么的详细 有不懂的地方大家自行百度 尝试着自己去编写一些android的小程序 那么本节课也给大家留了一个作业:用AS编写一个包含姓名 年龄 生日 邮箱 兴趣爱好的用户注册页面 要求:点击注册按钮会把注册的信息显示在另一个页面上 那么下节课我将教大家怎么去破解我们所编写的这个小程序
下一篇 教我兄弟学Android逆向02  破解第一个Android程序  》


下面的附件是本节课的Demo
链接:https://pan.baidu.com/s/1o9FaUYQ 密码:xv14






免费评分

参与人数 212吾爱币 +220 热心值 +207 收起 理由
Tiny14 + 1 + 1 谢谢@Thanks!
yiyunlee + 1 谢谢@Thanks!
特洛卡 + 1 + 1 谢谢@Thanks!
FeiyuYip + 1 + 1 很好的教程,受益匪浅。但是按着教程做了,编译没有问题,安装后无法打开,.
墨笙仁 + 1 + 1 我很赞同!
爱尚优物 + 1 + 1 用心讨论,共获提升!
pow188 + 1 + 1 得照着教程做啊
ftp1234 + 1 + 1 谢谢@Thanks!
努恩泰戈尔 + 1 + 1 d=====( ̄▽ ̄*)b
曲终收拨当心画 + 1 + 1 用心讨论,共获提升!
blue16深蓝梦境 + 1 + 1 谢谢@Thanks!
苗亚辉 + 1 + 1 我很赞同!
苏州小受受 + 1 + 1 谢谢@Thanks!
果汁分妳一半 + 1 吾爱破解论坛有你更精彩!
迅捷烈火 + 1 + 1 谢谢@Thanks!
gyf9835 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
街望 + 1 + 1 热心回复!
y869177843 + 1 + 1 弄完以后...图标堆在一起了..啊好难
lz4342990156 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Smpwegtd + 1 + 1 感谢大神教程,今日从零学起
樱落丶未央 + 1 + 1 我很赞同!
1127363108 + 1 谢谢@Thanks!
kojety + 1 + 1 用心讨论,共获提升!
wxy123 + 1 + 1 我很赞同!
xiaofeng0521 + 1 + 1 谢谢@Thanks!
liton + 1 谢谢@Thanks!
zhy0212ZHY + 1 + 1 我很赞同!
夹缝中流水 + 1 + 1 我很赞同!
erh + 1 + 1 鼓励转贴优秀软件安全工具和文档!
liyu6056 + 1 + 1 已完成,就是第1个程序的Layout布局这没说清楚,耗了些时间
hellokett + 1 + 1 楼主,我也想做你兄弟
Kandashayu + 1 谢谢@Thanks!
天使的练习 + 1 + 1 谢谢@Thanks!
LDSMDBZD + 1 + 1 我很赞同!
Loongstyle + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
iceyi + 1 + 1 我很赞同!
Transcend + 1 + 1 谢谢@Thanks!
fly123456 + 1 + 1 谢谢@Thanks!
saswapj711 + 1 + 1 热心回复!
whp07 + 1 + 1 热心回复!
凯旋飘逸3 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
jadespider + 1 + 1 谢谢@Thanks!
ljz199795 + 1 + 1 谢谢@Thanks!
三岁小孩儿 + 1 + 1 谢谢@Thanks!
silvanevil + 1 + 1 谢谢@Thanks!
zfy + 1 + 1 厉害了我的哥!!
13GA + 1 + 1 我很赞同!
王毛 + 1 + 1 谢谢@Thanks!
Aliangabugui + 1 + 1 收藏一博~~~
文远张辽 + 1 + 1 再次回顾,终于学会啦
hu007 + 1 + 1 谢谢@Thanks!
念安 + 1 + 1 谢谢@Thanks!
一日就是一天 + 1 + 1 谢谢@Thanks!
52user + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tong_xing + 1 + 1 谢谢@Thanks!
FASThunter + 1 + 1 谢谢@Thanks!我也学会了,我的第一个安卓程序
a3832106 + 1 我很赞同!
msxw888 + 1 + 1 谢谢@Thanks!
Woodmon + 1 + 1 鼓励转贴优秀软件安全工具和文档!
裤衩随风fei + 1 + 1 我很赞同!
半坡海 + 1 + 1 谢谢@Thanks!
chenst + 1 + 1 谢谢@Thanks!
metroman + 1 + 1 谢谢@Thanks!
十立 + 1 + 1 用心讨论,共获提升!
buyouyuan + 1 谢谢@Thanks!
烟火倾城 + 1 + 1 谢谢@Thanks!
jnez112358 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
(り帕克先森 + 1 + 1 用心讨论,共获提升!
ptlantu + 1 + 1 谢谢@Thanks!
jason94 + 1 + 1 谢谢@Thanks!
palmer680 + 1 + 1 谢谢@Thanks!
wuwuwu123 + 1 + 1 百度云盘挂了,能更新一下吗
吾爱Live + 1 + 1 谢谢
丶Strayer + 1 + 1 谢谢@Thanks!
HJ小毛眉 + 1 + 1 热心回复!
xjun + 3 + 1 我很赞同!
静叶流云 + 1 + 1 谢谢@Thanks!
凄凉小风 + 1 热心回复!
zhj373 + 1 + 1 热心回复!
断了风筝的线 + 1 + 1 十分感谢
芝士就是力量 + 1 + 1 谢谢@Thanks!
小小金 + 1 + 1 已答复!
Menzel3 + 1 666
dong_xx + 1 + 1 谢谢@Thanks!
saidom1949 + 1 谢谢@Thanks!
zhenglc0103 + 1 + 1 我很赞同!
晨已落 + 1 谢谢@Thanks!
hejialong + 2 + 1 谢谢@Thanks!
莫问刀 + 1 + 1 666666666666666666支持
tangshengyi + 1 谢谢@Thanks!
花生666 + 1 + 1 热心回复!
siriusst + 1 + 1 谢谢@Thanks!
九处 + 1 + 1 我很赞同!
大九丶 + 1 + 1 谢谢@Thanks!
helloooworlddd + 1 + 1 用心讨论,共获提升!
liunai201 + 1 用心讨论,共获提升!
管大侠 + 1 + 1 谢谢@Thanks!
寒蝉鸣泣之时 + 1 + 1 热心回复!
李小豆 + 1 + 1 谢谢@Thanks!
与谁共 + 1 有个问题想请教作者,我在回帖中详细说下

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 会飞的丑小鸭 发表于 2017-9-30 14:45

会的 以后还会有很多教程要发
与谁共 发表于 2017-11-14 22:54
本帖最后由 与谁共 于 2017-11-16 23:04 编辑

建立完工程,打开activity_main.xml后,弹出了异常如下,同时找不到text view,也无法把左面的东西拖到右面:
java.lang.NoClassDefFoundError: Could not initialize class android.support.v7.internal.widget.ActionBarOverlayLayout
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:413)
        at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105)
        at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:177)
        at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:214)
        at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:142)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
        at com.android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.java:84)
        at com.android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.java:56)
        at com.android.layoutlib.bridge.impl.RenderSessionImpl.createActionBar(RenderSessionImpl.java:1691)
        at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:362)
        at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
        at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
        at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497)
        at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485)
        at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
        at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485)
        at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590)
        at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480)
        at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
        at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
        at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
        at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
        at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
        at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
        at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
        at com.intellij.util.Alarm$Request$1.run(Alarm.java:351)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
这个问题解决了,是Android Studio版本的问题,默认装的是1.x的,装2.3的好了
coolicer 发表于 2017-9-30 14:38
1941368542 发表于 2017-9-30 15:00
继续出下去吧~~~~
singfornt 发表于 2017-9-30 15:13
为楼主打call,顺便学习一个
coolicer 发表于 2017-9-30 15:19
会飞的丑小鸭 发表于 2017-9-30 14:45
会的 以后还会有很多教程要发

已经做好第一个了
sunnylds7 发表于 2017-9-30 15:21
继续哦不要停哈哈
头像被屏蔽
huafang 发表于 2017-9-30 15:31
感谢发布原创作品,吾爱破解论坛因你更精彩!
失意问答 发表于 2017-9-30 16:14
呵呵,也做了一个
往昔520 发表于 2017-9-30 16:59
前排留名学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2019-9-23 23:34

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表