代码混淆还能还原吗(代码混淆是什么意思)

代码混淆还能还原吗(代码混淆是什么意思)

作者 | kingly

来源 | Github

来源:微信微信官方账号:知识小集

出处:https://mp.weixin.qq.com/s/a1mPjrw0EBupSacQLVly5Q

01 理论

iOS随着各种事件的曝光,应用安全越来越受到重视。那针对iOS应用安全能做些什么?如何让我们开发的应用更安全?要知道如何安全,就要知道iOS为什么应用不安全?现在,随着越狱技术的改进和各种工具的改进,逆向分析iOS应用已经成为一件容易的事情。所以,要做的iOS应用更安全,从逆向工程的各个阶段层层阻挡。当然,这只是增加逆向难度~。

iOS逆向分析分为静态分析和动态分析。分析的前提是有一个越狱设备,然后应用去壳,使用工具去壳后的应用 class-dump导出文件(先泄露,本文针对它,哈哈~),用于分析程序逻辑和设计实现,并使用它IDA 或Hoper反汇编。以上两种方法是静态分析。利用LLDB动态调试验证应用,这种方法是动态分析。逆向的事情不多说(就知道这些-_-|),本文的设计是为了增加导出头文件分析的难度,让逆向人员看着头文件,两眼冒金星~~

为达到一眼两眼冒金星的效果,现计划混淆以下内容:

1.文件名

2.类名

3.协议名

4.属性名

5.函数名

你觉得袁芳怎么样?混淆上述内容后,编译发布。这样使用 class-dump导出的第一个文件也应该混淆。这也达到了我们的目的。

混淆的方式是什么?混淆只不过是将原始单词解释的关键字变得不可读,这很简单,直接调用系统本身md5加密算法可以加密。

混淆很简单。混淆似乎指日可待~

混淆原理:提取上述需要混淆的关键词,然后md加密,然后更换工程中的关键字。

原则很简单,应该考虑哪些问题?

1.如何提取关键字?

2.混淆算法很简单,这不是问题…

3.混淆替换混淆后的原始关键字?

4.混淆后的项目还会恢复吗?

5.如何实现混淆程序?

1.如何提取关键字?

提取关键字,当然,根据各种关键字自身的特点,使用工具自动完成提取。手动提取并不疯狂!!!如果工具提取,包括系统在内的所有符合规定的关键字都会被提取出来吗?这个程序还能被编译吗?也就是说,提取关键字,只能提取自定义,不能提取系统本身生成或使用。这有点麻烦~~~。

2.混淆算法

md5.这是不可逆转的,所以混淆后要保留关键词和加密后的对应表,以便后续排除bug用。

3.混淆替换混淆后的原始关键字?

当然,这是用工具批量更换的。遇到以下情况怎么办?

原字符串:This is my fish.” 要将is” 替换为”is not。当然,我们希望的是:This is not my fish.” 而不是“This not is not my fis noth.” 。也就是说,要达到预期的目的,必须是单词匹配替换,这是非常重要的。

4.混淆后的项目还会恢复吗?

能混淆,当然能还原,但似乎没必要哦~~,那就不考虑还原了,我的地盘听我的,呵呵。

5.如何实现混淆程序?

首先当然是脚本,命令行工具丰富,可以用。可惜要一个个学。

还有什么场景?没了就开始整个~

02 实现

针对设计描述的一般思路,现在针对各个问题点给出实现方法

脚本大致使用的工具如下:vi、grep、sed、find、awk、cut、sort、uniq、cat、md5等。

对于要加密的内容,给出关键字提取脚本命令。

脚本中 $ROOTFOLDER 代表工程根目录, $EXCLUDE_DIR 代表排除的目录如下:

ROOTFOLDER="demoProject" EXCLUDE_DIR="–exclude-dir=*.framework –exclude-dir=include –exclude-dir=libraries –exclude-dir=Libs –exclude-dir=lib"关键字提取1.文件名

第一步是将包含路径的文件名写入文件

find $ROOTFOLDER -type f | sed "/\\/\\./d" >f.list

第二步提取文件名称

cat f_rep.list | awk -F/ '{print $NF;}'| awk -F. '{print $1;}' | sed "/^$/d" | sort | uniq

但从文件名提取的功能来看,上述两个步骤可以完全合并为一个步骤,但在实际功能实现中,上述步骤仍需分为两个步骤

2.类名

grep -h -r -I "^@interface" $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]' | sed "s/ /" |awk '{split($0,s," ");print s[2];}'|sort|uniq

其中sort,排序;uniq 去除重复。

3.协议名

grep -h -r -I "^@protocol" $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]'| sed "s/[\\<,;].*$//g"|awk '{print $2;}' | sort | uniq4.属性名

grep -r -h -I ^@property $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]' | sed "s/(.*)/ /g" | sed "s/<.*>//g" |sed "s/[,*;]/ /g" | sed "s/IBOutlet/ /g" |awk '{split($0,s," ");print s[3];}'|sed "/^$/d" | sort |uniq

其中

sed "/^$/d"

去除空行。

5.函数名

grep -h -r -I "^[-+]" $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]' |sed "s/[+-]//g"|sed "s/: *\\^\\/\\{]/ /g"|sed "s/[ ]*</</"|awk '{split($0,b," ");print b[2];}'| sort|uniq |sed "/^$/d"|sed "/^init/d"

目前,函数名提取只是提取函数名第一段的名称,如:

-(void)funName:(NSString *)param1 secondParam:(NSString *)param2;

然后脚本只会提取funName。脚本中

是函数中的以 init因为,oc默认情况下,初数init`一开始,如果混淆了这种函数,就会有问题。

然后,上述脚本可以收集各种关键字,合并成文件,然后重复排序。

小小结

从上述脚本中提取的关键字包括系统本身和我们自己添加的关键字。如果所有这些都被混淆了,那么我们混淆的程序肯定无法运行,甚至无法通过编译。那我们该怎么办?这个问题是设计文章中提出的麻烦多事。最容易想到的方法是判断关键词是否是系统自用的。如果是,就不要混淆,而是混淆。系统如何使用哪些关键字?很简单,就是用上面提到的脚本提取系统使用的关键词,作为系统自用的保留词。这个问题可以通过排除来解决。虽然笨拙,但有效。

所以第一步是制作一个系统来保留字典库。可以用上述脚本完成。

第二步是提取要替换的关键字。如果你仔细看上面的脚本,你会发现一个问题。提取文件名时,提取所有文件名,包括排除的目录。因此,这个地方会有问题。提取文件名时,应排除排除的目录或将排除的目录文件名作为临时保留字。

过滤和加密保留字

过滤上述两个步骤获得的关键字。

cat $SOURCECODEKEYWORDS | while read line do if grep $line $RESKEYSALL then echo filter1: $line else md5 -r -s $line | sed s/\\"//g >> $REPLACEKEYWORDS fi done

其中$SOURCECODEKEYWORDS是从ROOTFOLDER提取要混淆的关键词

更换工程中的关键字

这一步是本功能的核心。为了实现文件中的关键字替换,这是错误的。准确地说,它应该是文件中的关键字替换。这是设计文章中提到的问题。

愿字符串:"This is my fish.” 要将is” 替换为”is not“。当然,我们想要的是:This is not my fish.” 而不是“This not is not my fis noth.” 。也就是说,要达到预期的目的,必须是单词匹配替换,这是非常重要的。实践证明,OS X版的sed单词匹配替换没有实现,只能用字符串替换匹配正则表达式行,即替换后是我们不想要的结果。这可肿吗?幸运的是,经过一番挖掘,找到了一种笨拙的方法,效果如下,又要发挥愚公的精神。

sed -i '' ' '"$v2"'s/)'"$var2"':/)'"$var1"':/g '"$v2"'s/('"$var2"':/('"$var1"':/gn '"$v2"'s/ '"$var2"':/ '"$var1"':/gn '"$v2"'s/\"'"$var2"':/\"'"$var1"':/gn ' $v1 n

其中,v2代表行号;var2代表要替换的关键字,即例子中的“is”;var1是混淆后的字符串;v1 是指文件路径,包括文件名;-i表示直接修改文件,后面必须带两个单引号,要不然会有错误,单引号内容应该是要备份的文件名,在此不需要备份所以为空;在第一行和最后一行之间的意思是,描述单词出现时的各种场景,要想达到单词匹配的效果,那就在此必须列举所有情景,这个真够蛋疼的~~,愚公上吧!!!

替换属性设置方法

cat repProperty.txt |n while read linen do n ar=(`echo "$line"|cut -f 1-2 -d " "`)n first=`echo ${ar[1]}|cut -c -1| sed "y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/"`n second=`echo ${ar[1]}|cut -c 2-`n lastFind=`echo set$first$second`n lastRep=`echo setZ${ar[0]}m`n rm -f rep.tmpn if grep -r -n -I -w "$lastFind" $ROOTFOLDER $EXCLUDE_DIR –include="*.[mhc]" –include="*.mm" –include="*.storyboard" –include="*.xib" >rep.tmpn then n cat rep.tmp |n while read ln do n v1=$(echo "$l"|cut -d: -f 1 )n v2=$(echo "$l"|cut -d: -f 2 )n sed -i '' ''"$v2"'s/'"$lastFind"'/'"$lastRep"'/g' $v1 n echo "step3:"$l n done n else n echo "step3:do not find:"$lastFind n fi n done n

这个也是相对比较麻烦的,因为oc的属性系统是可以自动合成setter函数的,所以属性的混淆需要额外多考虑点。上面的做法是,根据提取的过滤后的属性关键字,生成属性设置函数,然后查找过程中是否有用到,有就混淆掉。

文件名混淆

cat f_rep.list |n while read linen don echo "old name:"$line n v1=$(echo "$line" | sed "s/\// /g" | awk '{print $NF}')n echo "v1="$v1 n v2=$(echo $v1 | sed "s/\./ /g" | awk '{print $1}')n echo "v2="$v2 n if grep -w $v2 $RESKEYSALL n then n echo "find." n else n v3=$(echo $v1 | sed "s/\./ /g" | awk '{print "."$2}')n echo "v3="$v3 n v4=$(md5 -q -s "$v2" | sed "s/.*/z&m/g")n echo "v4="$v4 n v5=$(echo "$line" | sed "s/"$v1"//g")n echo "v5="$v5 n mv $line $v5$v4$v3 n echo "new name:"$v5$v4$v3 n fin donen

文件名混淆的原理就是将需要混淆的文件路径,提取出要混淆的部分,然后组合成最终的文件名,使用mv命令完成文件名混淆。

至此,设计篇中提及的要混淆的内容已经全部完成混淆。

注意事项

1.需要将工程名称作为临时保留关键字

如:工程名称demoProject,那么demoProject要作为保留字,否则混淆后,可能target的名称也会被混淆掉,这个不是我们期望的;

2.需要将工程中的子目录名称作为临时保留关键字

如:在工程目录下有子文件夹AFNetworking,在Xcode工程的导航里也可以看到AFNetworking的分组,此时,如果AFNetworking也被混淆,那么工程中的分组会变成混淆后的字符串,但是工程目录下的子文件夹AFNetworking并没有改变,所以此时,会找不到响应的文件;根本原因是我们的混淆没有对文件夹名进行混淆。

3.需要将访问网络时组织的参数名称作为临时保留关键字

如:有一个属性名为:passport;恰好在组织网络参数时,有一个字段也叫passport,如果作为属性关键字passport被混淆了,那么组织网络参数时用的passport也会被混淆掉,所以此时传给后台的关键字passport就变了,导致后台无法识别;因此,出现这个情况时,要添加到临时的保留字中;如果编码规范的话,不用添加临时保留字也会避免~

4……

03 使用

全部 KYConfuse.sh ,实现代码如下:

#!/bin/bashnecho "#########################################"necho "File Name:KYConfuse.sh "necho "Copyright (c) 2018 KYConfuse"necho "Email:362108564@qq.com"necho "Create:2018.05.28"necho "#######################################"necho "用户修改区-开始"n#要替换的源代码所在的根目录,该脚本文件与根目录处于同级文件夹nROOTFOLDER="KYSecurityDefenseDemo"n#要排除的文件夹,例如demo中用到的第三方库AFNetworking,pods的第三方库等nEXCLUDE_DIR=" –exclude-dir=Pods –exclude-dir=buildAppstore –exclude-dir=Carthage –exclude-dir=Images.xcassets –exclude-dir=Assets.xcassets –exclude-dir=Certificates –exclude-dir=fastlane –exclude-dir=fastlanelog"necho "用户修改区-结束"nn#自定义的保留关键字,相当与白名单,添加到该文件中,一行一个,加入该文件的关键字将不被混淆;如工程中自定义的文件夹名称nRESCUSTOM="resCustom.txt"nn#保留关键字文件不可删除nRESERVEDKEYWORDS="./reskeys.txt"n#最终的保留关键字=保留关键字+文件名nRESKEYSALL="./reskeysall.txt"n#提取的所有关键字nSOURCECODEKEYWORDS="./srckeys.txt"n#过滤后,最终要替换的关键字,混淆结束后,不删除,用于bug分析nREPLACEKEYWORDS="./replacekeys.txt"nn#删除已经存在的临时文件nrm -f $SOURCECODEKEYWORDSnrm -f $REPLACEKEYWORDSnrm -f $RESKEYSALLnrm -f temp.resnn#提取文件名列表nrm -f f.listnfind $ROOTFOLDER -type f | sed "/\/\./d" >f.listn#根据要排除的文件目录,将文件列表分离n#Exclude=$(echo $EXCLUDE_DIR | sed "s/–exclude-dir\=//g" |sed "s/ $//g" | sed "s/[*.]//g" | sed "s/ /\\\|/g")nExclude=$(echo $EXCLUDE_DIR | sed "s/–exclude-dir\=//g" |sed "s/ $//g" | sed "s/ /\\\|/g")n#保留文件列表nrm -f f_res.listncat f.list | grep "$Exclude" >f_res.listn#混淆文件列表nrm -f f_rep.listncat f.list | grep -v "$Exclude" >f_rep.listnrm -f f.listn#提取文件名nrm -f filter_file.txtncat f_rep.list | awk -F/ '{print $NF;}'| awk -F. '{print $1;}' | sed "/^$/d" | sort | uniq >filter_file.txtnn#从源代码目录中提取要过滤的函数关键字nrm -f filter_fun.txtngrep -h -r -I "^[-+]" $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]' |sed "s/[+-]//g"|sed "s/[();,: *\^\/\{]/ /g"|sed "s/[ ]*</</"|awk '{split($0,b," ");print b[2];}'| sort|uniq |sed "/^$/d"|sed "/^init/d" >filter_fun.txtnn#从源代码目录中提取要过滤的属性关键字nrm -f filter_property.txtngrep -r -h -I ^@property $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]' | sed "s/(.*)/ /g" | sed "s/<.*>//g" |sed "s/[,*;]/ /g" | sed "s/IBOutlet/ /g" |awk '{split($0,s," ");print s[3];}'|sed "/^$/d" | sort |uniq >filter_property.txtnn#从源代码目录中提取要过滤的类关键字nrm -f filter_class.txtngrep -h -r -I "^@interface" $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]' | sed "s/[:(]/ /" |awk '{split($0,s," ");print s[2];}'|sort|uniq >filter_class.txtnn#从源代码目录中提取要过滤的协议关键字ngrep -h -r -I "^@protocol" $ROOTFOLDER $EXCLUDE_DIR –include '*.[mh]'| sed "s/[\<,;].*$//g"|awk '{print $2;}' | sort | uniq >>filter_class.txtnn#合并要过滤的关键字,并重新排序过滤nrm -f $SOURCECODEKEYWORDSncat filter_fun.txt filter_property.txt filter_class.txt filter_file.txt |sed "/^$/d" | sort | uniq >$SOURCECODEKEYWORDSnrm -f filter_fun.txtnrm -f filter_class.txtnrm -f filter_file.txtnn#自动获取保留字,工程名等nrm -f temp.resncat `cat f_rep.list | grep project.pbxproj` | grep -w productName | sed "s/;//g"|awk '{print $NF;}'>temp.resn#提取要保留的文件名ncat f_res.list | awk -F/ '{print $NF;}'| awk -F. '{print $1;}' | sed "/^$/d" | sort | uniq >>temp.resnrm -f f_res.listn#合并自定义保留字n#判断自定义保留字文件是否存在,不存在即创建一个空的nif [ ! -f "$RESCUSTOM" ]; thenntouch "$RESCUSTOM" nfincat $RESERVEDKEYWORDS $RESCUSTOM temp.res | sort |uniq >$RESKEYSALLnrm -f temp.resnn#过滤保留字,将需要混淆的关键字加密后写入文件nrm -f $REPLACEKEYWORDSncat $SOURCECODEKEYWORDS |nwhile read linendonif grep $line $RESKEYSALLnthennecho filter1: $linenelsen#使用md5对关键字进行加密nmd5 -r -s $line | sed s/\"//g >> $REPLACEKEYWORDSnfindonenrm -f $SOURCECODEKEYWORDSnn#开始混淆,替换源代码中的关键字为加密后的,防止开头为数字的情况ncat $REPLACEKEYWORDS |nwhile read linendonvar1=$(echo "$line"|awk '{print "z"$1"m"}')nvar2=$(echo "$line"|awk '{print $2}')nrm -f rep.tmpnif grep -r -n -I -w "[_]\{0,1\}$var2" $ROOTFOLDER $EXCLUDE_DIR –include="*.[mhc]" –include="*.mm" –include="*.pch" –include="*.storyboard" –include="*.xib" –include="*.nib" –include="contents" –include="*.pbxproj" >rep.tmpnthenncat rep.tmp |nwhile read -r lndon#获取文件路径nv1=$(echo "$l"|cut -d: -f 1 )n#获取行号nv2=$(echo "$l"|cut -d: -f 2 )n#获取指定行数据nv3=$(sed -n "$v2"p "$v1")n##sed自带文件文本替换功能,不符合我们的期望,故放弃使用;有无适合的脚本命令,还希望脚本高手予以指点~n#sed -i '' ''"$v2"'s/'"$var2"'/'"$var1"'/g' $v1n#特殊字符转义替换,echo中 输出的变量 一定要加双引号!!!nv4=$(echo "$v3" | awk '{gsub(/"/, "\\\"", $0);gsub(/</, "\\\<", $0);gsub(/>/, "\\\>", $0);gsub(/\*/, "\\\*", $0);gsub(/\//, "\\\/", $0);gsub(/\[/, "\\\[", $0);gsub(/\]/, "\\\]", $0);gsub(/\{/, "\\\{", $0);gsub(/\}/, "\\\}", $0);gsub(/\&/, "\\\\\&", $0); print $0;}')n#单词替换nvar3=$(./KYReplacewords.run "$v4" "$var2" "$var1")n#整行替换nsed -i '' "$v2"'s/.*/'"$var3"'/g' "$v1"necho "step2:$l"ndonenelsenecho "step2:do not find:$var2"nfindonenrm -f tmp.txtnn#过滤保留字,用于属性设置函数混淆,将需要混淆的关键字加密后写入文件nrm -f repProperty.txtncat filter_property.txt |nwhile read linendonif grep $line $RESKEYSALLnthennecho filter1: $linenelsenmd5 -r -s $line | sed s/\"//g >> repProperty.txtnfindonenrm -f filter_property.txtnn#开始混淆,替换属性前带下划线的地方ncat repProperty.txt |nwhile read linendonar=(`echo "$line"|cut -f 1-2 -d " "`)nlastFind=`echo _${ar[1]}`nlastRep=`echo _z${ar[0]}m`nrm -f rep.tmpnif grep -r -n -I -w "$lastFind" $ROOTFOLDER $EXCLUDE_DIR –include="*.[mhc]" –include="*.mm" –include="*.storyboard" –include="*.xib" >rep.tmpnthenncat rep.tmp |nwhile read lndonv1=$(echo "$l"|cut -d: -f 1 )nv2=$(echo "$l"|cut -d: -f 2 )nsed -i '' ''"$v2"'s/'"$lastFind"'/'"$lastRep"'/g' $v1necho "step3:"$lndonenelsenecho "step3:do not find:"$lastFindnfindonenrm -f rep.tmpnn#开始混淆,替换属性设置函数ncat repProperty.txt |nwhile read linendonar=(`echo "$line"|cut -f 1-2 -d " "`)nfirst=`echo ${ar[1]}|cut -c -1| sed "y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/"`nsecond=`echo ${ar[1]}|cut -c 2-`nlastFind=`echo set$first$second`nlastRep=`echo setZ${ar[0]}m`nrm -f rep.tmpnif grep -r -n -I -w "$lastFind" $ROOTFOLDER $EXCLUDE_DIR –include="*.[mhc]" –include="*.mm" –include="*.storyboard" –include="*.xib" >rep.tmpnthenncat rep.tmp |nwhile read lndonv1=$(echo "$l"|cut -d: -f 1 )nv2=$(echo "$l"|cut -d: -f 2 )nsed -i '' ''"$v2"'s/'"$lastFind"'/'"$lastRep"'/g' $v1necho "step3:"$lndonenelsenecho "step3:do not find:"$lastFindnfindonenrm -f rep.tmpnrm -f repProperty.txtnncat f_rep.list |nwhile read linendonecho "old name:"$linen#获取文件名,带后缀nv1=$(echo "$line" | sed "s/\// /g" | awk '{print $NF}')necho "v1="$v1n#获取文件名,不带后缀nv2=$(echo $v1 | sed "s/\./ /g" | awk '{print $1}')necho "v2="$v2nif grep -w $v2 $RESKEYSALLnthennecho "find."nelsen#获取后缀nv3=$(echo $v1 | sed "s/\./ /g" | awk '{print "."$2}')necho "v3="$v3n#对不带后缀的文件名加密nv4=$(md5 -q -s "$v2" | sed "s/.*/z&m/g")necho "v4="$v4n#获取路径nv5=$(echo "$line" | sed "s/"$v1"//g")necho "v5="$v5n#修改文件名nmv $line $v5$v4$v3necho "new name:"$v5$v4$v3nfindonennrm -f f_rep.listnrm -f $RESKEYSALLnnecho "########################### 恭喜您,代码混淆完成!###########################"necho "########################### 运行混淆后的工程!###########################"nnexitn

在终端执行,切换到 KYConfuse.sh 所在目录,执行脚本

# ./KYConfuse.shn

即可,混淆工程的文件名,类名,协议名,属性名,函数名的混淆。

混淆后的工程如下:

代码混淆还能还原吗(代码混淆是什么意思)

作者 | kingly

来源 | Github

来源:微信公众号:知识小集

出处:https://mp.weixin.qq.com/s/a1mPjrw0EBupSacQLVly5Q

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至827202335@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.eztwang.com/dongtai/51759.html

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2022年12月27日 10:17
下一篇 2022年12月27日 10:21

相关推荐

  • 找手工活在哪个平台上找比较真实可靠(外发加工接单平台)

    关于手工活代加工你知道多少?前两天跟一个朋友聊天,他跟我聊起来这个话题,我对这方面不懂,然后就听他给我讲。 大概去年三月份时候,他在1688上面找了一个手工活代加工的,当时说的很好很好,还给他看了他们的营业执照和签订合同,想着营业执照什么都看了应该没什么事。当时他就激情澎湃了,脑子一热当时就让他们发了第一批货。 第一批货到了,是需要快递到付,付了四百多块,是…

    2024年3月25日
    1400
  • 拼多多开店要钱吗(网上开店铺需要什么流程)

    拼多多作为中国的电商平台之一,吸引了越来越多的商家入驻。本文将详细介绍在拼多多开店的流程以及所需的费用。 一、拼多多开店流程1. 注册账号首先需要在拼多多官网上注册一个账号,填写正确的手机号码,并设置密码。平台会通过短信验证码的方式验证手机号是否正确,并完成账号的注册。2. 完善店铺信息在注册账号后,需要填写店铺的基本信息,包括店铺名称、店铺LOGO、经营类…

    2024年3月24日
    900
  • 兼职拿我身份证开淘宝网店(别人拿我的身份证开网店)

    遥想当年,电商刚开始发力的阶段,身边经常有人借身份证开淘宝店铺。究其原因,主要就是平台规定一人一店,所以为了多开店铺提高成功率,“七大姨八大姑”借了个遍,甚至村里的留守老人都不放过。时至今日,还不乏这样的人存在。 再说几年前,不少之前的电商创业者成了大老板,事业飞黄腾达,开了公司,买了奔驰。虽然小日子越过越滋润,但也遇到烦心事。 “啥事呢”? “不能大声说的…

    2024年3月24日
    1400
  • 闲鱼一键转卖怎么赚钱(闲鱼的一键转卖是赚佣金吗)

    “现在去闲鱼上买东西,刷好几屏都是职业卖家,真正卖闲置物品的个人越来越少了。”有网友吐槽。 知乎、百度等平台上也充斥着闲鱼赚钱攻略:“去1688、拼多多、义乌购、微商手里找货源找文案,自己不要的东西,低于均价快速卖出刷好评,提升闲鱼账号的成交量,带动流量和活跃度,权重也会变高。” 就像闲鱼的Slogan所说的,闲鱼本身是一个“卖闲置,淘二手”的平台,因其只需…

    2024年3月24日
    2100
  • 不小心把收款码发给别人了怎么办(如何重置微信收款二维码)

    众所周知,微信付款二维码不能随便发给人。但是,收款二维码能不能随便发给别人呢,会不会存在什么风险呢?事实上,还是存在一定风险的。下面简单分析一下: 1、财务风险 我们都知道,收款码是我们向别人收钱的二维码。如果发给别人,别人扫码了,我们也只是进账资金,财务上不可能会造成损失,反而是赚了钱。但是,如果正当的钱,我们可以收。如果进账的是不正当的钱,那就会给自己带…

    2024年3月24日
    34300
  • 闲鱼到付安全吗(闲鱼卖家顺丰到付对谁有利)

    贩卖二手商品,可以直接把家中闲置物品换成真金白银,把不常用的、或者根本不用的东西变卖后,购入更加常用、更加心仪的产品。对比在各大电子平台开店售卖的方式,二手交易平台是更加合理的选择。 闲鱼平台是小编用着最好的闲置物品贩卖平台,下面我所教的基本内容也是适合个人“开店”的方法。此文为经验交流,并不是教授论文,希望各位看官摆平姿态,吸收干货。 第一,取得开门红。 …

    2024年3月24日
    900
  • 1688开店铺需要多少钱(入驻1688一年要多少钱)

    阿里巴巴国际站-重庆 阿里巴巴国际站有22年的建站历史,目前已经成为全球最大的做外贸B2B(批发)网站,主要招商对象是中国商家,买家分布在200多个海外国家和地区。国际站俗称“1688海外版/英文版”,其实国际站除了有1688相似的找批发买家流量提供之外,还提供了出口、报关退税、出口物流,还有现如今最受关注的收外汇等多项国际贸易辅助业务。 先来说说入驻费用:…

    2024年3月24日
    1000
  • 抖音商城怎么开店(怎样在抖音上开店铺卖商品)

    抖音上怎么开店,目前在抖音很多用户都在推销自己的视频时候,都附带了很多商店的连接,其中的流量可想而知,对于很多刷抖音的人来说这里是最好的推销地方,那么如何在抖音上开店呢?开店铺需要什么条件?下面就跟小编一起来看看抖音开店教程步骤! 抖音开店教程步骤 1.首先你要有自己的抖音号,注册一个并且登录,在“我”这个页面右上角有三条整齐的横线“三”点开,底下有个“设置…

    2024年3月24日
    500
  • 淘宝中评对卖家的影响(淘宝中评多久显示)

    淘宝的评价系统规定只有在商家购买了商品之后才能对其进行评价,一般来说,买家购买的商品只要不和商家描述的有太大出入的话,那么买家是不会恶意给中评的,除了恶评师。店铺很可能会因为顾客的一个差评或者一个中评而对店铺的权重产生影响,从而使店铺的销量下降和声誉受损。那么一个淘宝店铺被给于中评,会对其产生什么影响?以下是关于淘宝的评价系统的介绍。 一、淘宝店被中评有啥影…

    2024年3月24日
    900
  • 女生学美甲赚钱吗(女孩子做美甲行业好吗)

    有很多人问我当美甲师一个月能挣多少钱?我告诉你挣不了多少钱。很多女孩喜欢去做美甲,美甲师看似很挣钱,不过挣的也是辛苦钱。美甲师的月收入一般有两种:一种是有底薪的,一种是底薪加提成。在一般城市的美甲师底薪不超过3000,另一种底薪不高,一般提成在20%-30%左右,是一项多劳多得的技术。 美甲师的工资还和很多因素有关: ·1.所在地消费水平不同。消费水平高的城…

    2024年3月23日
    2800
  • 速卖通是b2c还是c2c(速卖通跨境电商)

    今天,我们将探索的是“速卖通”——被誉为“国际版淘宝”的跨境电商平台! 速卖通作为阿里巴巴旗下的跨境电商平台,在中国,它是最大的跨境出口B2C平台之一。同时,速卖通也在俄罗斯、西班牙等国家排名榜首,站点覆盖超过200个国家,广受欢迎。 平台费用与平台物流 速卖通的费用模式相对灵活,只需要支付佣金,佣金范围为3%到8%,并且享有无月租费优势。收款方面,买家确认…

    2024年3月23日
    700
  • 一般什么地方招暑假工(暑假临时工招聘网)

    马上就要放暑假了,各位大学生们的暑假工作是不是找好了呢。还没有找到的小伙伴们不要着急,我们现在就来分享一下2022网上找暑假工比较靠谱的软件。看看有没有让你心仪的那一款呢?可以根据以下平台来选择,比较可靠真实: 1. BOSS直聘、58同城、赶集网、智联招聘、前程无忧51Job、拉勾招聘等平台都有海量的优质岗位,可以根据自己的需求选择合适的平台。 2. 探儿…

    2024年3月23日
    600
  • 美甲店一天能挣1000吗(开美甲店会亏钱吗)

    我是一家个人美甲店,每天能赚多少钱呢? 我是一家个人美甲店,位于谷埠街国际商城。今天的收入达到了1200元,其中包括两个指甲的美甲服务、一个美睫和一个眉毛。 ·第一位顾客是通过抖音视频找到我的,她看到我们家有特色的建构养甲项目,毫不犹豫地选择了纯色加建构的服务,价格为49.9元。 ·第二位顾客是我的老顾客,一直对我的技术非常认可。上个月她在我这里做了一个不开…

    2024年3月23日
    800
  • 开网店卖什么东西好赚钱(网店初学者适合卖什么)

    开网店卖小饰品是一种越来越受欢迎的创业方式。随着人们对个性化产品和定制化服务的需求不断增加,小饰品作为一种简单易行、价格亲民的商品形式,具有很大的市场潜力。 虽然开网店卖小饰品是一种相对容易入门的创业方式,但是赚钱并不是轻松的事情。首先,您需要有一个新颖独特的产品系列,以吸引消费者的吸意力;其次,您需要掌握一些基本的营销技巧,例如拍摄高质量的产品图片,并在社…

    2024年3月23日
    500
  • 电商怎么发货才便宜(拼多多无货源在哪里找货源)

    如今快节奏的生活环境下,人们对于生活质量的要求和物质享受的追求也是逐步的提高,单单的吃饱穿暖已经不太符合如今的生活的追求。 创业项目,副业项目,现在已经成为了年轻人们的新选择,尤其是目前互联网创业前景广阔,正适合年轻人大展拳脚。 但同样,经常有人会说十个创业九个死,虽然机会多,但竞争也更大,在潮流中倒下的创业者同样是一波接着一波。 随着拼多多的快速崛起和发展…

    2024年3月23日
    800
  • 初中学历的宝妈适合考什么证(四十多岁还能考什么证)

    初中学历可以考多种证书,以下是一些可供参考的证书类型: 会计从业资格证:初中以上学历,年满18周岁即可报名。 电工操作资格证(上岗证):年满18周岁且符合相关工种规定的年龄要求,经医院体检合格且无妨碍从事相应特种作业的疾病和生理缺陷,初中及以上学历,符合相应特种作业需要的其他条件。 计算机等级证书:考生不受年龄、职业、学历等背景的限制,均可根据自己学习情况和…

    2024年3月23日
    700
  • 什么工作可以在手机上做(手机上的兼职有哪些)

    1.网上问卷调查 网上问卷调查是一个简单的赚钱方法,只需要你花费一些时间填写一些调查问卷,就可以获得一些报酬。一些市场调研公司和在线调查平台,经常需要人们填写一些问卷来帮助他们更好地了解市场和消费者需求。你可以去一些问卷调查网站注册,填写一些问卷调查,一般每份问卷的报酬是2-5元不等,根据问卷的难度不同而有所区别。如果你愿意花费更多时间填写问卷,你可以得到更…

    2024年3月23日
    1500
  • 1688一件代发利润大概在多少(免费一件代发正规平台)

    肯定能啊!不然不赚钱为啥有这么多人去做! 但是也不是说你做了就能赚钱,就跟做生意一个道理,能不能赚钱看的是个人能力! 但是相对来说,一件代发是非常简单的了,机会也比较大,投入和产出的回报比也比较高! 至于题主说的一些费用,很多都没有必要,如果想尝试我建议的是以最小的投资来做。 先简单说说一件代发: “一件代发”顾名思义,就是你作为卖家,哪怕你只卖出一件产品,…

    2024年3月21日
    900
  • 暑假工干什么比较好(暑假工一般找什么工作)

    给你几点建议,希望能帮到你。 01 如果你去电子厂或者机械厂打工,要防止招你的人是不是中介,干多久可以离职,根据我的经验,一般厂里是干三个月才能走,如果你干两个月,到最后离开会很困难,可能到时候干了中介会不断拖你工资。 另外还有一点要注意,在一些APP上找工作,一般招聘者都是中介公司。当你面试之后,不可能马上入职。 就例如我和我同学在58同城找工作去了之后才…

    2024年3月21日
    1000
  • 品牌折扣店的货是真是假(折扣店的东西为什么便宜)

    你在网上看到那些价格很便宜的品牌折扣网站,比如唯品会,会不会想:“这么便宜,质量能保证吗?”今儿我们就讲讲,他们怎么做到比传统的零售商卖的便宜,还是真货。大概四个原因。 第一、品牌折扣平台一般卖的都是品牌的过季产品或者库存产品,品牌商需要清理库存,愿意以很低的价格把产品出掉。 第二,品牌折扣品牌所在的品类一般都是服装和家居产品,这类产品的定价策略一般都是按照…

    2024年3月21日
    700

发表回复

登录后才能评论

联系我们

18312384410

在线咨询: QQ交谈

邮件:827202335@qq.com

添加微信